图书介绍
Linux体系与编程 基于Linux 0.01版本pdf电子书版本下载
- 卢军,曾茂城编著 著
- 出版社: 北京:中国水利水电出版社
- ISBN:9787508473734
- 出版时间:2010
- 标注页数:324页
- 文件大小:105MB
- 文件页数:336页
- 主题词:Linux操作系统-程序设计-教材
PDF下载
下载说明
Linux体系与编程 基于Linux 0.01版本PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 Linux应用及基础 1
第1章 Linux应用简介 1
1.1 Linux简介 1
1.2 虚拟化软件VirtualBox 2
1.3 CentOS的安装 3
1.4 Linux企业级的一般应用 14
1.4.1 为什么选择Linux 15
1.4.2 文件服务器 15
1.4.3 企业门户网站 16
1.4.4 数据备份 17
本章小结 17
习题一 17
第2章 Linux基本命令详解 18
2.1 命令之路 18
2.2 来自系统的援助——man 18
2.3 目录与文件操作 20
2.3.1 目录浏览与管理 20
2.3.2 文件操作 23
2.4 查找命令与正则表达式 26
2.4.1 grep 26
2.4.2 正则表达式 27
2.4.3 find 30
2.5 有用的小命令以及重定向 32
2.5.1 文本处理 32
2.5.2 date & time 34
2.5.3 重定向 36
2.6 系统管理命令 37
2.6.1 进程管理 38
2.6.2 用户管理 41
2.6.3 权限管理 44
2.7 实用工具与任务管理 46
2.7.1 压缩文件 46
2.7.2 uname 47
2.7.3 容量查看 47
2.7.4 任务管理 48
本章小结 51
习题二 51
第3章 LAMP的基本安装与配置 53
3.1 安装前的注意事项 53
3.2 Apache 53
3.2.1 Apache的安装 54
3.2.2 Apache的配置 54
3.3 MySQL 54
3.3.1 MySQL的安装 55
3.3.2 MySQL的配置 56
3.4 PHP 57
3.4.1 PHP的安装 57
3.4.2 PHP的配置 58
3.5 安装测试 58
本章小结 59
习题三 59
第4章 远程定期自动增量备份 60
4.1 shell脚本的基本语法 60
4.2 数据备份简介 61
4.2.1 数据备份设备 61
4.2.2 数据备份方案 61
4.3 远程定期自动增量备份 62
4.3.1 定期功能——crontab 62
4.3.2 增量功能——find 62
4.3.3 压缩功能——tar 63
4.3.4 远程备份——ftp 63
4.3.5 远程定期自动增量备份综合实例 64
本章小结 64
习题四 65
第二篇 Linux程序设计 66
第5章 Linux编程基础 66
5.1 Vim编辑器 67
5.1.1 使用Vim建立一个名为example.txt的文件 68
5.1.2 进入编辑模式 68
5.1.3 按Esc键返回一般模式 69
5.1.4 退出和存盘 69
5.2 GCC编译器 71
5.2.1 GCC简介 71
5.2.2 第一个Linux下的C程序 73
5.3 GDB调试器 74
5.3.1 GDB简介 74
5.3.2 GDB实例 74
5.4 make 76
5.4.1 Makefile文件 76
5.4.2 make使用实例 76
本章小结 77
习题五 78
第6章 文件和目录 79
6.1 Linux/UNIX的文件结构 79
6.1.1 文件和目录 79
6.1.2 文件和设备 80
6.2 系统调用和设备驱动程序 81
6.3 库函数 81
6.4 文件I/O 82
6.4.1 open函数 82
6.4.2 访问权限的初始化值 83
6.4.3 write函数 83
6.4.4 read函数 84
6.4.5 close函数 84
6.4.6 ioctl函数 85
6.4.7 其他系统调用函数 86
6.5 标准I/O库 87
6.5.1 fopen、freopen和fdopen函数 88
6.5.2 fread函数 89
6.5.3 fwrite函数 89
6.5.4 fclose函数 89
6.5.5 fflush函数 89
6.5.6 fseek函数 90
6.5.7 fgetc、getc和getchar函数 90
6.5.8 fputc、putc和putchar函数 90
6.5.9 fgets、gets函数 90
6.6 格式化输入和输出 91
6.6.1 printf、fprintf和sprintf函数 91
6.6.2 scanf、fscanf和sscanf函数 92
6.6.3 其他流函数 92
6.6.4 文件流错误处理 92
6.7 文件和目录的维护 93
6.7.1 chmod系统调用函数 93
6.7.2 chown系统调用函数 93
6.7.3 unlink系统调用函数 93
6.7.4 mkdir和rmdir系统调用函数 94
6.7.5 chdir系统调用和getcwd函数 94
本章小结 94
习题六 95
第7章 进程控制 96
7.1 Linux进程概述 96
7.1.1 进程简介 96
7.1.2 进程标识 97
7.2 创建进程 97
7.2.1 fork函数 98
7.2.2 vfork函数 100
7.3 终止进程 100
7.4 等待进程 101
7.4.1 wait函数 101
7.4.2 waitpid函数 103
7.5 exec函数 104
7.6 system函数 107
7.7 综合实例 108
本章小结 109
习题七 109
第8章 进程间通信 110
8.1 管道 110
8.1.1 什么是管道 110
8.1.2 popen和pclose函数 112
8.1.3 命名管道FIFO 114
8.2 信号量 118
8.2.1 什么是信号量 118
8.2.2 信号量的相关函数 119
8.2.3 信号量实例 121
8.3 消息队列 124
8.3.1 消息队列 124
8.3.2 消息队列的相关函数 125
8.3.3 消息队列实例 127
本章小结 130
习题八 130
第9章 多线程 132
9.1 什么是线程 132
9.1.1 线程的特点 132
9.1.2 线程的分类 133
9.2 线程编程基础 133
9.2.1 创建线程函数 135
9.2.2 等待线程结束的函数 135
9.2.3 取自己线程ID函数 135
9.2.4 终止线程函数 136
9.3 线程属性 136
9.4 线程访问控制 138
本章小结 144
习题九 144
第10章 Linux网络编程 146
10.1 计算机网络简介 146
10.1.1 IP地址 146
10.1.2 端口 146
10.1.3 域名 146
10.1.4 TCP/IP体系模型 147
10.1.5 C/S模型 147
10.2 套接字简介 148
10.2.1 套接字的概念 148
10.2.2 套接字的分类 148
10.2.3 套接字相关的数据类型 149
10.3 涉及套接字的网络编程 149
10.3.1 面向连接的TCP模型 150
10.3.2 无连接的UDP模型 157
本章小结 162
习题十 162
第11章 Linux综合编程——微博服务器设计简介 163
11.1 有状态和无状态的TCP通信 163
11.2 服务器设计的方案与思路 164
11.2.1 服务器设计涉及的数据结构 164
11.2.2 服务器的实现 167
本章小结 181
习题十一 181
第三篇 Linux 0.01内核分析第12章 Linux和GNU简介 182
12.1 自由的天地:GNU和Linux 182
12.1.1 热爱和享受自由 183
12.1.2 神奇的Linux 184
12.2 在乐趣中获得成功:一起来玩操作系统 186
12.2.1 十一岁开始编程序 187
12.2.2 一种操作系统的诞生 187
12.3 GNU的开发工具 188
本章小结 189
习题十二 189
第13章 操作系统设计入门 190
13.1 操作系统介绍 190
13.2 操作系统的基本功能 191
13.3 操作系统设计的基本准则 191
13.3.1 简单就是优美 191
13.3.2 利用已有的基础 192
13.3.3 良好的设计 192
13.3.4 单内核操作系统和微内核操作系统 192
本章小结 193
习题十三 193
第14章 Linux 0.01内核 194
14.1 Linux 0.01内核简介 194
14.1.1 Linux 0.01内核背景 194
14.1.2 Linux 0.01的技术特色 195
14.1.3 存储管理 196
14.1.4 文件系统 196
14.1.5 硬件平台移植和应用程序 196
14.2 Linux 0.01核心代码目录 197
14.3 核心源代码的目录分布 197
14.3.1 boot目录 198
14.3.2 fs目录 199
14.3.3 include目录 199
14.3.4 init目录 200
14.3.5 kernel目录 201
14.3.6 lib目录 202
14.3.7 mm目录 202
14.3.8 tools目录 202
14.4 Linux 0.01的main.c分析 203
14.5 编译和运行Linux 0.01系统 206
本章小结 207
习题十四 207
第15章 操作系统引导——装载内核 208
15.1 操作系统引导基本知识 208
15.1.1 系统引导设备 208
15.1.2 启动过程简介 208
15.1.3 硬盘主引导扇区简介 210
15.2 Linux 0.01引导代码分析 212
15.2.1 boot.s:BIOS引导代码 212
15.2.2 head.s:Linux的32位引导代码 212
15.3 实例:使用nasm生成引导代码 212
15.3.1 引导代码基础 213
15.3.2 最简单的引导程序 213
15.3.3 如何设置段寄存器 215
15.3.4 在引导程序中装入程序(基于扇区) 215
本章小结 219
习题十五 219
第16章 进程管理和调度 220
16.1 进程的概念 220
16.1.1 进程的定义 220
16.1.2 进程的属性 220
16.2 进程调度 222
16.2.1 进程调度算法的选择 222
16.2.2 进程描述符 222
16.2.3 Linux进程调度源代码分析 223
16.2.4 进程的切换 223
16.3 Linux 0.01内核中的进程调度实例 224
16.3.1 进程调度 224
16.3.2 用户进程和内核线程 225
本章小结 227
习题十六 227
第17章 存储管理和设计 228
17.1 存储管理概述 228
17.1.1 信息的二级存储 228
17.1.2 存储管理的功能 229
17.2 段页式存储管理 230
17.2.1 页式存储管理 230
17.2.2 段式存储管理 231
17.2.3 段页式存储管理 232
17.2.4 3种存储管理方式的对比 232
17.3 物理存储管理 233
17.3.1 技术细节 233
17.3.2 物理存储管理器的组织 234
17.3.3 物理存储管理器的初始化 236
17.3.4 页面分配 237
17.3.5 页面回收 237
17.3.6 映射 237
17.3.7 内存映射 239
17.4 虚拟存储管理 239
17.4.1 技术细节 240
17.4.2 malloc()和free() 240
17.4.3 缺页处理 241
17.4.4 虚拟存储管理的页面分配 242
17.4.5 可执行程序 243
17.4.6 交换 243
17.4.7 总结 244
17.5 malloc()和free()的实现 244
17.6 Linux 0.01存储管理代码分析 245
17.6.1 memory.c分析 245
17.6.2 page.s分析 245
本章小结 246
习题十七 246
第18章 设备管理和调度 247
18.1 Linux设备管理概述 247
18.1.1 设备管理的基本要求 247
18.1.2 驱动程序 248
18.2 Linux 0.01中断处理 249
18.2.1 中断处理的基本过程 249
18.2.2 traps.c文件分析 250
18.2.3 /kernel/asm.s文件分析 250
18.3 如何编写中断服务程序ISR 250
18.4 设备驱动程序实例——利用BIOS的探测系统设备 252
18.5 Linux 0.01设备驱动程序源代码分析 253
18.5.1 终端控制代码:console.c 253
18.5.2 rs323驱动代码:serial.c和rs_io.s 253
本章小结 253
习题十八 254
第19章 磁盘文件系统 255
19.1 硬盘驱动器结构简介 255
19.1.1 硬盘参数解释 255
19.1.2 基本Int 13H调用简介 256
19.1.3 扩展Int 13H简介 256
19.2 UNIX文件系统分析 256
19.3 VFS简介 257
19.3.1 VFS的体系结构 258
19.3.2 文件的表示 259
19.3.3 磁盘布局 260
19.4 文件系统设计步骤 260
19.4.1 步骤一:磁盘函数库 261
19.4.2 步骤二:文件系统 261
19.4.3 步骤三:容错性 263
19.5 实践:自己编写的简单文件系统 263
19.6 Linux 0.01文件系统源代码分析 264
本章小结 265
习题十九 265
第20章 shell编程技术和实例 266
20.1 shell的基本概念 266
20.2 例子:最简单的shell程序 268
20.3 管道和I/O重定向 272
20.3.1 使用dup()重定向I/O 272
20.3.2 使用pipe()和dup() 273
20.3.3 使用dup2()的例子 274
20.4 t-shell实现代码分析 276
20.4.1 shell总体结构(不支持管道) 276
20.4.2 shell总体结构(支持管道) 277
20.4.3 main函数 277
20.4.4 initialization()函数 278
20.4.5 getline()函数 279
20.4.6 parse()函数 279
20.4.7 command()函数 281
20.4.8 execute()函数 282
20.4.9 forkexec()函数 284
20.4.10 check()函数 286
20.4.11 getname()函数 286
20.4.12 t-shell的运行效果 287
本章小结 287
习题二十 288
第21章 Linux 0.01系统调用的实现 289
21.1 Linux系统调用概述 289
21.1.1 系统调用 289
21.1.2 系统调用实现 290
21.1.3 系统调用到int 0x80中断请求的转换 295
21.2 Linux 0.01系统调用实现分析 296
21.2.1 system_call.s 296
21.2.2 sys.c 296
21.3 实例:在Linux中添加新系统调用 296
21.3.1 实现系统调用代码 296
21.3.2 连接新的系统调用 297
21.3.3 重新编译Linux 0.01的内核 297
本章小结 298
习题二十一 298
第四篇 实验 299
实验一 Linux系统的安装 299
实验二 shell编程 300
实验三 进程间通信 301
实验四 文件系统 302
实验五 设备管理 303
实验六 进程调度 305
实验七 内存管理 306
附录 部分习题参考答案 307
参考文献 324