Linux体系与编程 基于Linux 0.01版本PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:卢军,曾茂城编著
- 出 版 社:北京:中国水利水电出版社
- 出版年份:2010
- ISBN:9787508473734
- 页数:324 页
第一篇 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
- 《女丹仙道:道教女子内丹养生修炼秘籍 下》董沛文著 2012
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《国内外辐射环境监测体系对比研究》上海市辐射环境监督站 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《我的第一套编程启蒙绘本 看事件 开始了》编程猫教研团队编绘 2019
- 《中国的新型正义体系》黄宗智著 2019
- 《STEM教育丛书 麦昆机器人和Micro:bit图形化编程》张弛责任编辑;(中国)陈宝杰,沙靓雯 2019
- 《早期道教经韵授度体系研究》陈文安著 2019
- 《ROS机器人编程与SLAM算法解析指南》陶满礼 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《中国当代乡土小说文库 本乡本土》(中国)刘玉堂 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《中国铁路人 第三届现实主义网络文学征文大赛一等奖》恒传录著 2019
- 《莼江曲谱 2 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《中国制造业绿色供应链发展研究报告》中国电子信息产业发展研究院 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《中国陈设艺术史》赵囡囡著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《《走近科学》精选丛书 中国UFO悬案调查》郭之文 2019
- 《清至民国中国西北戏剧经典唱段汇辑 第8卷》孔令纪 2018