嵌入式Linux系统设计与应用PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:王学龙编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2001
- ISBN:7900635998
- 页数:401 页
第1部分 Linux内核源代码分析 3
第1章 Linux进程管理代码分析 3
1.1 基本概念 3
1.2 进程的状态和标志 4
1.3 Linux中进程间的状态转换 9
1.3.1 进程的创建 9
1.3.2 进程的调度 10
1.3.3 进程间通信 12
1.3.4 进程从运行态到停止态的转换 24
1.3.5 进程从停止态到运行态的转换 25
1.3.6 进程的终止 26
1.4 小结 27
第2章 内存管理分析 29
2.1 概述 29
2.1.1 Linux内存管理的基本特点 29
2.1.2 Linux内存管理的主要实现技术 29
2.1.3 虚拟内存模型 31
2.1.4 页面管理 31
2.2 Linux内存管理数据结构 35
2.2.1 32位虚拟地址 35
2.2.2 Linux的多级页表结构 35
2.2.3 页表项的格式 36
2.2.4 动态地址映射 37
2.2.5 用户进程的虚拟内存结构 38
2.3 进程内存管理数据结构的建立、维护及其系统调用 39
2.3.1 进程载入、创建及内存管理数据结构和链接建立 39
2.3.2 缺页中断服务 42
2.4 主要函数分析 44
2.4.1 内存管理的主要文件 44
2.4.2 内存映射文件 48
2.5 小结 55
第3章 虚拟文件系统 56
3.1 基本概念 56
3.2 VFS的数据结构 57
3.2.1 VFS的超级块结构 57
3.2.2 VFSinode及其相关数据结构 59
3.3 高速缓存的管理 60
3.3.1 缓冲区高速缓存 60
3.3.2 VFSinode高速缓存 66
3.3.3 VFS目录高速缓存 67
3.4 VFS inode资源链 69
3.4.1 资源链的组织及主要操作 69
3.4.2 VFS inode的主要操作 70
3.5 文件系统的管理 73
3.6 文件系统的系统调用 74
3.6.1 sys_open系统调用 74
3.6.2 sys_close()系统调用 75
3.7 小结 76
第4章 EXT2文件系统 77
4.1 概述 77
4.2 EXT2文件系统的数据结构 78
4.2.1 EXT2文件系统的物理布局 78
4.2.2 EXT2文件系统的超级块结构 78
4.2.3 EXT2文件系统的inode结构 81
4.2.4 EXT2文件系统的组描述符 83
4.3 文件管理 84
4.3.1 系统打开文件表 84
4.3.2 EXT2的目录项 85
4.3.3 文件的访问 85
4.3.4 数据块的管理 86
4.4 EXT2文件系统的系统调用 88
4.4.1 sys_mkdir系统调用 88
4.4.2 sys_rmdir系统调用 90
4.5 小结 91
第5章 Linux的网络设备接口 93
5.1 网络设备概述 93
5.2 网络设备的数据结构 95
5.3 网络设备的初始化 99
5.3.1 模块初始化模式的分析 99
5.3.2 启动初始化模式的分析 105
5.4 网络设备的打开和关闭 111
5.5 数据包的传输和接收 113
5.5.1 Socket缓冲区及相关操作 114
5.5.2 数据包的传输 115
5.5.3 数据包的接收 117
5.6 网络设备驱动程序的开发 120
5.6.1 网络设备驱动程序的开发步骤 120
5.6.2 设备驱动程序的开发实例 120
5.7 小结 126
第6章 系统调用的原理 127
6.1 系统调用概述 127
6.2 Linux系统调用流程 127
6.2.1 Linux系统调用的中断机制 127
6.2.2 相关的数据结构及函数 128
6.2.3 Linux系统调用的流程 136
6.3 系统调用的实例分析 141
6.3.1 mlock系统调用简介 141
6.3.2 mlock所用到的主要数据结构和重要常量 142
6.3.3 mlock系统调用代码分析 145
6.4 系统调用的创建 155
6.4.1 系统调用编程 155
6.4.2 系统调用的连接和使用 156
6.5 小结 157
第2部分 Linux系统编程 161
第7章 Bash编程 161
7.1 Bash的编程步骤 161
7.2 Bash中的变量 162
7.2.1 特殊变量 163
7.2.2 Bash中的引号 164
7.3 Bash中的数值运算 164
7.4 Bash中的特殊语句 166
7.4.1 条件语句 166
7.4.2 循环语句 168
7.4.3 移位语句 170
7.5 在Bash中使用函数 170
7.6 正则表达式 171
7.6.1 句点的单字符匹配 171
7.6.2 行首和行尾的匹配 172
7.6.3 星号和反斜杠的使用 172
7.6.4 括号匹配和指定次数匹配 173
7.6.5 Bash脚本中常用的正则表达式 174
7.7 Bash编程实例 175
7.7.1 网络检测脚本 175
7.7.2 备份脚本 175
7.7.3 限制访问脚本 181
7.7.4 清除日志脚本 183
7.8 小结 184
第8章 GNU make管理项目与Gcc编程 185
8.1 make管理项目简介 185
8.2 编写Makefile的规则 186
8.2.1 虚拟目标 187
8.2.2 Makefile的变量 187
8.2.3 make的变量 188
8.2.4 隐式规则 189
8.2.5 模式规则 190
8.3 make命令 190
8.4 Makefile实例分析 191
8.5 Gcc的基本概念 197
8.6 Gcc命令 199
8.7 Gcc扩展简介 202
8.8 Gcc编程实例分析 203
8.8.1 串行口通信程序 203
8.8.2 网络通信程序 205
8.9 小结 207
第9章 GNU C++编程 208
9.1 Gcc与GNU C++的比较 208
9.2 GNU C++程序概述 209
9.3 GNU C++的编译和调试 211
9.3.1 警告与错误 211
9.3.2 编译选项 212
9.3.3 调试技术 217
9.4 GNU C++编程特点 221
9.4.1 内存管理的特点 221
9.4.2 指针使用的特点 222
9.4.3 异常处理的特点 223
9.4.4 类对象复制的特点 226
9.5 GNU C++程序实例分析 227
9.5.1 接收变元的程序示例 227
9.5.2 类对象复制程序示例 229
9.5.3 多重继承程序示例 230
9.5.4 异常处理程序示例 233
9.6 小结 235
第10章 多线程编程 236
10.1 Linux线程简介 236
10.1.1 线程的基本概念 236
10.1.2 线程的实现和创建 236
10.1.3 线程创建源代码 237
10.2 LinuxThreads线程库 242
10.2.1 pthread_create() 243
10.2.2 pthread_join() 243
10.2.3 pthread_self() 243
10.2.4 pthread_detach() 244
10.2.5 pthread_exit() 244
10.2.6 pthread_cancel() 244
10.3 线程间通信 244
10.3.1 pthread_once() 245
10.3.2 pthread_key_create() 245
10.3.3 pthread_getspecific() 246
10.3.4 pthread_setspecific() 246
10.3.5 pthread_mutex_lock() 246
10.3.6 pthread_mutex_unlock() 246
10.3.7 pthread_cond_init() 246
10.3.8 pthread_cond_wait() 247
10.4 守护线程分析 247
10.5 多线程编程实例分析 249
10.5.1 X Window GUI示例程序 249
10.5.2 TCP/IP服务器示例程序 252
10.5.3 生产者和消费者模型示例程序 257
10.5.4 同步线程测试示例程序 258
10.5.5 同步线程读写缓冲区示例程序 259
10.6 小结 260
第3部分 建立嵌入式Linux系统 263
第11章 修改和编译Linux内核 263
11.1 概述 263
11.2 修改Linux内核示例 264
11.2.1 虚拟内存 264
11.2.2 实时调度 304
11.3 编译Linux内核 307
11.3.1 初始化环境 307
11.3.2 配置核心 307
11.3.3 编译内核 307
11.3.4 应用内核 307
11.4 小结 308
第12章 嵌入式Linux系统中的脚本控制 309
12.1 Linux启动和退出过程简介 309
12.2 自定义决定运行级别的脚本 311
12.3 特定运行级别脚本 314
12.4 自定义公共启动脚本 316
12.5 自定义退出脚本 330
12.6 小结 334
第13章 组建嵌入式Linux系统的文件系统 335
13.1 概述 335
13.2 组建嵌入式Linux系统的文件系统脚本 335
13.3 分析嵌入式Linux系统的文件系统 337
13.4 小结 340
第4部分 嵌入式Linux系统的应用 343
第14章 IP电话的实现原理 343
14.1 IP电话应用结构 343
14.2 H.323协议栈结构及应用 344
14.3 H.323系统的组成 346
14.4 H.323协议实体的功能 348
14.4.1 终端功能 348
14.4.2 网关功能 349
14.4.3 网守功能 350
14.4.4 多点通信端点的功能 351
14.5 相关协议简介 352
14.5.1 RAS协议 352
14.5.2 H.255.0 353
14.5.3 H.245 355
14.5.4 RTP 356
14.5.5 RTCP 356
14.5.6 RSVP 357
14.6 小结 358
第15章 利用PPCBOOT引导系统 359
15.1 开发步骤简介 359
15.2 开发模型 360
15.3 修改PPCBOOT源代码 361
15.3.1 与主板有关的文件 361
15.3.2 与CPU有关的文件 362
15.3.3 头文件 364
15.3.4 公共函数文件 368
15.3.5 网络传输代码文件 371
15.3.6 Makefile文件 375
15.4 PPCBoot的监视界面 376
15.5 小结 377
第16章 建立开发平台 378
16.1 安装CDK1.2 378
16.2 设置目标系统 379
16.3 设置开发主机 379
16.3.1 设置DHCP 380
16.3.2 设置TFTP 380
16.3.3 设置NFS 381
16.4 测试目标系统的内核装载与引导 381
16.5 开发平台的调试模型 383
16.5.1 开发应用 383
16.5.2 调试应用 384
16.6 小结 385
第17章 应用软件开发实例 386
17.1 需求分析 386
17.2 使用的协议栈和函数库 386
17.3 应用软件源代码 388
17.3.1 main.cxx 388
17.3.2 main.h 398
17.3.3 version.h 399
17.3.4 Makefile 399
17.4 小结 400
参考文献 401
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《当代翻译美学的理论诠释与应用解读》宁建庚著 2019
- 《计算机辅助平面设计》吴轶博主编 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019