图书介绍

Linux体系与编程 基于Linux 0.01版本2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Linux体系与编程 基于Linux 0.01版本
  • 卢军,曾茂城编著 著
  • 出版社: 北京:中国水利水电出版社
  • ISBN:9787508473734
  • 出版时间:2010
  • 标注页数:324页
  • 文件大小:105MB
  • 文件页数:336页
  • 主题词:Linux操作系统-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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 虚拟化软件VirtualBox2

1.3 CentOS的安装3

1.4 Linux企业级的一般应用14

1.4.1 为什么选择Linux15

1.4.2 文件服务器15

1.4.3 企业门户网站16

1.4.4 数据备份17

本章小结17

习题一17

第2章 Linux基本命令详解18

2.1 命令之路18

2.2 来自系统的援助——man18

2.3 目录与文件操作20

2.3.1 目录浏览与管理20

2.3.2 文件操作23

2.4 查找命令与正则表达式26

2.4.1 grep26

2.4.2 正则表达式27

2.4.3 find30

2.5 有用的小命令以及重定向32

2.5.1 文本处理32

2.5.2 date & time34

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 uname47

2.7.3 容量查看47

2.7.4 任务管理48

本章小结51

习题二51

第3章 LAMP的基本安装与配置53

3.1 安装前的注意事项53

3.2 Apache53

3.2.1 Apache的安装54

3.2.2 Apache的配置54

3.3 MySQL54

3.3.1 MySQL的安装55

3.3.2 MySQL的配置56

3.4 PHP57

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 定期功能——crontab62

4.3.2 增量功能——find62

4.3.3 压缩功能——tar63

4.3.4 远程备份——ftp63

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 make76

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/O82

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 命名管道FIFO114

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和Linux182

12.1.1 热爱和享受自由183

12.1.2 神奇的Linux184

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 如何编写中断服务程序ISR250

18.4 设备驱动程序实例——利用BIOS的探测系统设备252

18.5 Linux 0.01设备驱动程序源代码分析253

18.5.1 终端控制代码:console.c253

18.5.2 rs323驱动代码:serial.c和rs_io.s253

本章小结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/O272

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.s296

21.2.2 sys.c296

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

热门推荐