发新话题
打印

LINUX编程白皮书[电子书][PDF]

您是本帖第5871个浏览者

LINUX编程白皮书[电子书][PDF]


LINUX编程白皮书[电子书][PDF]

目   录
雷蒙序
简介
Linux文档工程小组“公告”
译者序
第一部分  Linux内核
前言  
第1章  硬件基础与软件基础  6
1.1  硬件基础  6
1.1.1  CPU  7
1.1.2  存储器  8
1.1.3  总线  8
1.1.4  控制器和外设  8
1.1.5  地址空间  9
1.1.6  时钟  9
1.2  软件基础  9
1.2.1  计算机语言  9
1.2.2  什么是操作系统  11
1.2.3  内核数据结构  13
第2章  内存管理  15
2.1  虚拟内存抽象模型  15
2.1.1  请求调页  17
2.1.2  交换  17
2.1.3  共享虚拟内存  18
2.1.4  物理寻址模式和虚拟寻址模式  18
2.1.5  访问控制  18
2.2  高速缓存  19
2.3  Linux页表  20
2.4  页分配和回收  21
2.4.1  页分配  22
2.4.2  页回收  22
2.5  内存映射  22
2.6  请求调页  23
2.7  Linux页缓存  24
2.8  页换出和淘汰  25
2.8.1  减少缓冲区和页缓存大小  25
2.8.2  换出System V共享内存页  26
2.8.3  换出和淘汰页  27
2.9  交换缓存  27
2.10  页换入  28
第3章  进程  29
3.1  Linux进程  29
3.2  标识符  31
3.3  调度  32
3.4  文件  34
3.5  虚拟内存  35
3.6  创建进程  36
3.7  时间和定时器  37
3.8  执行程序  38
3.8.1  ELF  39
3.8.2  脚本文件  40
第4章  进程间通信机制  41
4.1  信号机制  41
4.2  管道  42
4.3  套接字  44
4.3.1  System V的进程间通信机制  44
4.3.2  消息队列  44
4.3.3  信号量  45
4.3.4  共享存储区  47
第5章  PCI  49
5.1  PCI的地址空间  49
5.2  PCI配置头  50
5.3  PCI的I/O和存储地址空间  51
5.4  PCI-ISA桥  51
5.5  PCI-PCI 桥  51
5.5.1  PCI-PCI桥:PCI I/O和存储地址
      空间的窗口  51
5.5.2  PCI-PCI桥:PCI配置周期和PCI
     总线编号  52
5.6  Linux PCI初始化  53
5.6.1  Linux内核PCI数据结构  53
5.6.2  PCI设备驱动程序  53
5.6.3  PCI的BIOS函数  56
5.6.4  PCI修正过程  57
第6章  中断处理与设备驱动程序  60
6.1  中断与中断处理  60
6.1.1  可编程中断控制器  61
6.1.2  初始化中断处理数据结构  61
6.1.3  中断处理  62
6.2  设备驱动程序  63
6.2.1  测试与中断  64
6.2.2  直接存储器访问(DMA)  65
6.2.3  存储器  66
6.2.4  设备驱动程序与内核的接口  66
6.2.5  硬盘  69
6.2.6  网络设备  74
第7章  文件系统  77
7.1  第二个扩展文件系统EXT2  78
7.1.1  EXT2系统的inode节点  79
7.1.2  EXT2系统的超级块  80
7.1.3  EXT2系统的组描述符  80
7.1.4  EXT2系统的目录  81
7.1.5  在EXT2文件系统中查找文件  81
7.1.6  在EXT2文件系统中改变文件
      的大小  82
7.2  虚拟文件系统  83
7.2.1  VFS文件系统的超级块  84
7.2.2  VFS文件系统的inode节点  84
7.2.3  注册文件系统  85
7.2.4  装配文件系统  85
7.2.5  在虚拟文件系统中查找文件  87
7.2.6  卸载文件系统  87
7.2.7  VFS文件系统的inode缓存  87
7.2.8  目录缓存  88
7.3  缓冲区缓存  88
7.3.1  bdflush内核守护进程  90
7.3.2  update进程  90
7.4  /proc文件系统  91
7.5  特殊设备文件  91
第8章  网络  92
8.1  TCP/IP网络概述  92
8.2  Linux中的TCP/IP网络层次结构  95
8.3  BSD套接字接口  96
8.4  INET的套接字层  97
8.4.1  创建BSD套接字  98
8.4.2  为INET BSD Socket绑定地址  99
8.4.3  建立INET BSD Socket连接  99
8.4.4  INET BSD Socket侦听  100
8.4.5  接受连接请求  100
8.5  IP层  100
8.5.1  套接字缓冲区  100
8.5.2  接收IP报文  101
8.5.3  发送IP报文  102
8.5.4  数据分片  102
8.6  地址解析协议  103
8.7  IP路由  104
第9章  内核机制与模块  107
9.1  内核机制  107
9.1.1  Bottom Half控制  107
9.1.2  任务队列  108
9.1.3  定时器  109
9.1.4  等待队列  110
9.1.5  自旋锁  110
9.1.6  信号量  110
9.2 模块  111
9.2.1  模块载入  112
9.2.2  模块卸载  113
第10章  处理器  115
10.1  X86  115
10.2  ARM  115
10.3  Alpha AXP处理器  115
第11章  Linux内核源代码  117
11.1  怎样得到Linux内核源码  117
11.2  内核源码的编排  117
11.3  从何处看起  118
第12章  Linux数据结构  120
附录A  有用的Web和FTP站点  138
附录B  词汇表  139
第二部分  Linux内核模块编程指南
致谢
前言
第1章  Hello, World  145
1.1  内核模块的Makefiles文件  146
1.2  多重文件内核模块  147
第2章  字符设备文件  149
第3章  /proc文件系统  158
第4章  把/proc用于输入  162
第5章  把设备文件用于输入  170
第6章  启动参数  182
第7章  系统调用  185
第8章  阻塞处理  190
第9章  替换printk  199
第10章  任务调度  202
第11章  中断处理程序  207
第12章  对称多处理  211
第13章  常见错误  212
附录A  2.0和2.2之间的差异  213
附录B  其他资源  214
附录C  给出你的评价  215
第三部分  Linux程序员指南
第1章  Linux操作系统  219
第2章  Linux内核  220
第3章  Linux libc包  221
第4章  系统调用  222
第5章  “瑞士军刀”:ioctl  223
第6章  Linux进程间通信  224
6.1  介绍  224
6.2  半双工Unix管道  224
6.2.1  基本概念  224
6.2.2  用C语言创建管道  225
6.2.3  简便方法  229
6.2.4  管道的原子操作  233
6.2.5  关于半双工管道需要注意的几个
      问题  233
6.3  命名管道  234
6.3.1  基本概念  234
6.3.2  创建FIFO  234
6.3.3  FIFO操作  235
6.3.4  FIFO上的阻塞动作  236
6.3.5  SIGPIPE信号  237
6.4  系统V IPC  237
6.4.1  基本概念  237
6.4.2  消息队列  239
6.4.3  信号量  251
6.4.4  semtool:交互式信号量操作
     程序  260
6.4.5  共享内存  267
第7章  声音编程  274
7.1  内部扬声器编程  274
7.2  声卡编程  274
第8章  字符单元图形  276
8.1  libc中的I/O函数  277
8.1.1  格式化输出  277
8.1.2  格式化输入  278
8.2  termcap库  278
8.2.1  前言  278
8.2.2  获得终端描述  279
8.2.3  查看终端描述  279
8.2.4  termcap权能  280
8.3  Ncurses简介  280
8.4  初始化  282
8.5  窗口  283
8.6  输出  284
8.6.1  格式化输出  285
8.6.2  插入字符/行  286
8.6.3  删除字符/行  286
8.6.4  方框和直线  287
8.6.5  背景字符  287
8.7  输入  288
8.8  选项  289
8.8.1  输出选项  289
8.8.2  输入选项  290
8.8.3  终端属性  291
8.8.4  使用选项  291
8.9  更新终端  292
8.10  视频属性与颜色  293
8.11  光标和屏幕坐标  294
8.12  滚动  294
8.13  小键盘  295
8.14  软标签  295
8.15  杂项  295
8.16  低级访问  296
8.17  屏幕转储  296
8.18  Termcap模拟  296
8.19  Terminfo函数  296
8.20  调试函数  297
8.21  Terminfo权能  297
8.21.1  布尔型权能  297
8.21.2  数值型权能  298
8.21.3  字符串型权能  299
8.22  [N]Curses函数概述  306
第9章  I/O端口编程  307
9.1  鼠标编程  307
9.2  调制解调器编程  308
9.3  打印机编程  308
9.4  游戏杆编程  308
第10章  把应用程序移植到Linux上  309
10.1  介绍  309
10.2  信号处理  309
10.2.1  SVR4、BSD和POSIX.1下
       的信号  310
10.2.2  Linux信号选项  310
10.2.3  Linux下的信号  310
10.2.4  Linux支持的信号  311
10.3  终端I/O  311
10.4  进程信息和控制  311
10.4.1  kvm过程  312
10.4.2  ptrace和/proc文件系统  312
10.4.3  Linux下的进程控制  312
10.5  可移植条件编译  313
10.6  补充说明  314
附录  以字母顺序排列的系统调用  315
第四部分  Linux内核概念系统结构
摘要  323
前言  324
第1章  系统结构  325
1.1  系统概述  325
1.2  内核的目标  325
1.3  内核结构的概述  325
1.4  支持多个开发人员  327
1.5  系统数据结构  328
1.5.1  任务列表  328
1.5.2  内存映射  328
1.5.3  索引节点  328
1.5.4  数据连接  329
第2章  子系统的系统结构  330
2.1  进程调度程序系统结构  330
2.1.1  目标  330
2.1.2  模块  330
2.1.3  数据表达  331
2.1.4  依赖性、数据流和控制流  331
2.2  内存管理程序系统结构  331
2.2.1  目标  331
2.2.2  模块  331
2.2.3  数据表示  331
2.2.4  数据流、控制流和依赖性  332
2.3  虚拟文件系统系统结构  333
2.3.1  目标  333
2.3.2  模块  333
2.3.3  数据表示  333
2.3.4  数据流、控制流和依赖性  334
2.4  网络接口系统结构  334
2.4.1  目标  334
2.4.2  模块  334
2.4.3  数据表示  335
2.4.4  数据流、控制流和依赖性  335
2.5  进程间通信系统结构  335
第3章  结论  336
附录A  术语定义  337
附录B  参考文献  338
第五部分  Linux内核具体系统结构
摘要  341
第1章  前言  342
1.1  目标  342
1.2  Linux介绍  342
1.3  软件系统结构的背景知识  342
1.4  方法与途径  343
1.5  适用本书的读者  344
1.6  本部分的章节安排  344
第2章  系统结构  345
第3章  子系统结构  346
3.1  进程调度程序  346
3.1.1  目标  346
3.1.2  外部接口  346
3.1.3  子系统描述  346
3.1.4  数据结构  347
3.1.5  子系统结构  348
3.1.6  子系统依赖性  348
3.2  内存管理程序  348
3.2.1  目标  348
3.2.2  外部接口  349
3.2.3  子系统描述  349
3.2.4  数据结构  350
3.2.5  子系统结构  350
3.2.6  子系统依赖性  351
3.3  虚拟文件系统  352
3.3.1  目标  352
3.3.2  外部接口  352
3.3.3  子系统描述  353
3.3.4  设备驱动程序  353
3.3.5  逻辑文件系统  354
3.3.6  模块  354
3.3.7  数据结构  355
3.3.8  子系统结构  355
3.3.9  子系统依赖性  355
3.4  进程间通信  355
3.4.1  目标  355
3.4.2  外部接口  357
3.4.3  子系统描述  357
3.4.4  数据结构  358
3.4.5  子系统结构  359
3.4.6  子系统依赖性  359
3.5  网络接口  360
3.5.1  目标  360
3.5.2  外部接口  361
3.5.3  子系统描述  361
3.5.4  数据结构  362
3.5.5  子系统结构  363
3.5.6  子系统依赖性  363
第4章  结论  365
附录A  术语定义  366
附录B  参考文献  368
第六部分  附   录
附录A  Linux文档工程拷贝许可证  372
附录B  GNU通用公共许可证  374


下载地址:
本帖隐藏的内容需要回复才可以浏览
天要有蓝和白才好看,我是蓝你是白生活才精彩

TOP

谢谢!

TOP

谢谢

TOP

非常感谢~

TOP

TOP

thank you for your book

TOP

good!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11

TOP

好书,谢谢!

TOP

非常感谢~

TOP

[s:71] [s:71] [s:71] [s:71] [s:71]

TOP

发新话题