图书介绍

Linux编程白皮书【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

Linux编程白皮书
  • (美)(D.A.罗斯林)David A. Rusling等著;朱珂等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111078047
  • 出版时间:2000
  • 标注页数:378页
  • 文件大小:17MB
  • 文件页数:391页
  • 主题词:UNIX操作系统(学科: 基本知识)

PDF下载


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

下载说明

Linux编程白皮书PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

前言6

第1章 硬件基础与软件基础6

1.1硬件基础6

第一部分 Linux内核6

1.1.1 CPU7

1.1.2存储器8

1.1.3总线8

1.1.4控制器和外设8

1.2软件基础9

1.2.1计算机语言9

1.1.6时钟9

1.1.5地址空间9

1.2.2什么是操作系统11

1.2.3内核数据结构13

第2章 内存管理15

2.1虚拟内存抽象模型15

2.1.1请求调页17

2.1.2交换17

2.1.4物理寻址模式和虚拟寻址模式18

2.1.5访问控制18

2.1.3共享虚拟内存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.1减少缓冲区和页缓存大小25

2.8页换出和淘汰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 ELF39

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章 PCI49

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.2 PCI设备驱动程序53

5.6 Linux PCI初始化53

5.6.1 Linux内核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第二个扩展文件系统EXT278

7.1.1 EXT2系统的inode节点79

7.1.2 EXT2系统的超级块80

7.1.3 EXT2系统的组描述符80

7.1.5在EXT2文件系统中查找文件81

7.1.4 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.6卸载文件系统87

7.2.7 VFS文件系统的inode缓存87

7.2.5在虚拟文件系统中查找文件87

7.2.8目录缓存88

7.3缓冲区缓存88

7.3.1 bdflush内核守护进程90

7.3.2 update进程90

7.4 /proc文件系统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 X86115

10.2 ARM115

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内核模块编程指南145

致谢145

前言145

第1章 Hello,World145

1.1内核模块的Makefiles文件146

1.2多重文件内核模块147

第2章 字符设备文件149

第3章 /proc文件系统158

第4章 把/proc用于输入162

第5章 把设备文件用于输入170

第6章 启动参数182

第7章 系统调用185

第8章 阻塞处理190

第9章 替换printk199

第10章 任务调度202

第11章 中断处理程序207

第12章 对称多处理211

第13章 常见错误212

附录A 2.0和2.2之间的差异213

附录B 其他资源214

附录C 给出你的评价215

第1章Linux操作系统219

第三部分 Linux程序员指南219

第2章Linux内核220

第3章Linux libc包221

第4章 系统调用222

第5章 “瑞士军刀”:ioctl223

第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创建FIFO234

6.3.3 FIFO操作235

6.3.4 FIFO上的阻塞动作236

6.3.5 SIGPIPE信号237

6.4系统V IPC237

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.2.1前言278

8.1.2格式化输入278

8.2 termcap库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.3删除字符/行286

8.6.2插入字符/行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.21.1布尔型权能297

8.21 Terminfo权能297

8.20调试函数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.2信号处理309

第10章 把应用程序移植到Linux上309

10.1介绍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/O311

10.4进程信息和控制311

10.4.2 ptrace和/proc文件系统312

10.4.3 Linux下的进程控制312

10.4.1 kvm过程312

10.5可移植条件编译313

10.6补充说明314

附录 以字母顺序排列的系统调用315

第四部分 Linux内核概念系统结构323

摘要323

前言324

第1章 系统结构325

1.1系统概述325

1.2内核的目标325

1.3内核结构的概述325

1.4支持多个开发人员327

1.5.1任务列表328

1.5.2内存映射328

1.5.3索引节点328

1.5系统数据结构328

1.5.4数据连接329

第2章 子系统的系统结构330

2.1进程调度程序系统结构330

2.1.1目标330

2.1.2模块330

2.2.1目标331

2.2.3数据表示331

2.2.2模块331

2.1.4依赖性、数据流和控制流331

2.2内存管理程序系统结构331

2.1.3数据表达331

2.2.4数据流、控制流和依赖性332

2.3虚拟文件系统系统结构333

2.3.1目标333

2.3.2模块333

2.3.3数据表示333

2.4.2模块334

2.4.1目标334

2.3.4数据流、控制流和依赖性334

2.4网络接口系统结构334

2.4.3数据表示335

2.4.4数据流、控制流和依赖性335

2.5进程间通信系统结构335

第3章 结论336

附录A 术语定义337

附录B 参考文献338

第五部分 Linux内核具体系统结构341

摘要341

1.2 Linux介绍342

1.3软件系统结构的背景知识342

第1章 前言342

1.1目标342

1.4方法与途径343

1.5适用本书的读者344

1.6本部分的章节安排344

第2章 系统结构345

3.1.3子系统描述346

3.1.2外部接口346

3.1.1目标346

3.1进程调度程序346

第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.5子系统结构350

3.2.4数据结构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.4.1目标355

3.4进程间通信355

3.3.8子系统结构355

3.3.7数据结构355

3.3.9子系统依赖性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.3子系统描述361

3.5.2外部接口361

3.5.4数据结构362

3.5.5子系统结构363

3.5.6子系统依赖性363

第4章 结论365

附录A 术语定义366

附录B 参考文献368

第六部分 附录372

附录A Linux文档工程拷贝许可证372

附录B GNU通用公共许可证374

热门推荐