当前位置:首页 > 工业技术
Linux体系与编程  基于Linux 0.01版本
Linux体系与编程  基于Linux 0.01版本

Linux体系与编程 基于Linux 0.01版本PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:卢军,曾茂城编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2010
  • ISBN:9787508473734
  • 页数:324 页
图书介绍:本书针对Linux编程体系,从Linux的应用开始到Linux的内核分析,由浅入深地进行了诠释。全书分为Linux应用、Linux编程、Linux内核分析、实验四篇共21章,内容丰富、循序渐进、通俗易懂、实用性强。本书在Linux内核分析的基础上增加了具有较大实用价值的Linux应用和Linux编程,读者可以通过书中大量的实例,由浅入深地理解Linux的应用技术和程序设计思想。
《Linux体系与编程 基于Linux 0.01版本》目录

第一篇 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

相关图书
作者其它书籍
返回顶部