莱昂氏UNIX源代码分析PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:(澳)John Lions著;尤晋元译
- 出 版 社:北京:机械工业出版社
- 出版年份:2000
- ISBN:7111080181
- 页数:378 页
上篇 UNIX操作系统版本6源代码 3
UNIX操作系统过程分类索引 3
UNIX操作系统文件及过程 5
UNIX操作系统定义的符号列表 7
UNIX操作系统源代码交叉引用列表 9
第一部分 初始化、进程初始化 25
第二部分 陷入、中断、系统调用和进程管理 75
第三部分 程序交换、基本输入/输出、块设备 109
第四部分 文件和目录、文件系统、管道 133
第五部分 面向字符的特殊文件 181
下篇 莱昂氏UNIX源代码分析 207
前言 207
第1章 绪论 209
1.1 UNIX操作系统 209
1.2 公用程序 209
1.3 其他文档 210
1.4 UNIX程序员手册 210
1.5 UNIX文档 211
1.6 UNIX操作系统源代码 211
1.7 源代码中各部分 212
1.8 源代码文件 212
1.9 分析的使用 212
1.10 对程序设计水平的一条注释 212
第2章 基础知识 214
2.1 处理机 214
2.2 处理机状态字 214
2.3 通用寄存器 214
2.4 指令集 215
2.5 寻址方式 216
2.5.1 寄存器方式 217
2.5.2 寄存器延迟方式 217
2.5.3 自动增1方式 217
2.5.4 自动减1方式 217
2.5.5 变址方式 217
2.5.6 立即方式 218
2.5.7 相对方式 218
2.6 UNIX汇编程序 219
2.7 存储管理 219
2.8 段寄存器 220
2.9 页说明寄存器 220
2.10 存储分配 220
2.11 状态寄存器 221
2.12 “i”和“d”空间 221
2.13 启动条件 221
2.14 专用设备寄存器 221
第3章 阅读“C”程序 222
3.1 某些选出的例子 222
3.2 例1 222
3.3 例2 223
3.4 例3 223
3.5 例4 225
3.6 例5 225
3.7 例6 227
3.8 例7 227
3.9 例8 228
3.10例9 228
3.11 例10 229
3.12 例11 229
3.13 例12 230
3.14 例13 230
3.15 例14 231
3.16 例15 231
3.17 例16 232
3.18 例17 233
第4章 概述 235
4.1 变量分配 235
4.2 全局变量 235
4.3 “C”预处理程序 235
4.4 第一部分 236
4.4.1 第1组“.h”文件 236
4.4.2 汇编语言文件 237
4.4.3 在第一部分中的其他文件 237
4.5 第二部分 237
4.6 第三部分 238
4.7 第四部分 238
4.8 第五部分 239
第一部分 初始化、进程初始化 241
第5章 两个文件 241
5.1 文件malloc.c 241
5.1.1 列表维护规则 241
5.1.2 malloc(2528) 242
5.1.3 mfree(2556) 243
5.1.4 结论 244
5.2 文件prf.c 244
5.2.1 printf(2340) 244
5.2.2 printn(2369) 245
5.2.3 putchar(2386) 246
5.2.4 panic(2419) 247
5.2.5 prdev(2433)、deverror(2447) 247
5.3 包含的文件 247
第6章 系统初启 249
6.1 操作员的动作 249
6.2 start(0612) 249
6.3 main(1550) 251
6.4 进程 252
6.5 proc〔0〕的初始化 252
6.6 sched(1940) 253
6.7 sleep(2066) 253
6.8 swtch(2178) 253
6.9 再回到main 254
第7章 进程 256
7.1 进程映像 256
7.2 proc结构(0358) 257
7.3 user结构(0413) 257
7.4 每个进程数据区 258
7.5 段 258
7.6 映像的执行 258
7.7 核心态执行 259
7.8 用户态执行 259
7.9 一个实例 259
7.10 设置段寄存器 260
7.11 estabur(1650) 260
7.12 sureg(1739) 261
7.13 newproc(1826) 261
第8章 进程管理 263
8.1 进程切换 263
8.2 中断 263
8.3 程序交换 263
8.4 作业 264
8.5 汇编语言过程 264
8.6 savu(0725) 264
8.7 retu(0740) 264
8.8 aretu(0734) 264
8.9 swtch(2178) 265
8.10 setpri(2156) 265
8.11 sleep(2066) 266
8.12 wakeup(2133) 266
8.13 setrun(2134) 266
8.14 expand(2268) 267
8.15 再回到swtch 267
8.16 临界区 268
第二部分 陷入、中断、系统调用和进程管理 269
第9章 硬件中断和陷入 269
9.1 硬件中断 269
9.2 中断矢量 270
9.3 中断处理程序 270
9.4 优先级 270
9.5 中断优先级 271
9.6 中断处理程序的规则 271
9.7 陷入 272
9.8 汇编语言trap 272
9.9 返回 273
第10章 汇编语言“trap”例程 274
10.1 陷入和中断源 274
10.2 fuibyte(0814)与fuiword(0844) 274
10.3 中断 275
10.4 call(0776) 275
10.5 用户程序陷入 276
10.6 核心态栈 277
第11章 时钟中断 279
11.1 clock(3725) 279
11.2 timeout(3845) 281
第12章 陷入与系统调用 282
12.1 trap(2693) 282
12.2 核心态陷入 282
12.3 用户态陷入 283
12.4 系统调用 284
12.5 系统调用处理程序 285
12.6 文件sysl.c 285
12.6.1 exec(3020) 285
12.6.2 fork(3322) 286
12.6.3 sbreak(3354) 286
12.7 文件sys2.c和sys3.c 287
12.8 文件sys4.c 287
第13章 软件中断 288
13.1 设置期望动作 288
13.2 对进程造成中断 288
13.3 作用 289
13.4 跟踪 289
13.5 过程 289
13.5.1 期望动作的设置 289
13.5.2 造成软件中断 289
13.5.3 作用 289
13.5.4 跟踪 290
13.6 ssig(3614) 290
13.7 kill(3630) 290
13.8 signal(3949) 290
13.9 psignal(3963) 291
13.10 issig(3991) 291
13.11 psig(4043) 291
13.13 grow(4136) 292
13.14 exit(3219) 292
13.15 rexit(3205) 293
13.16 wait(3270) 293
13.17 跟踪 293
13.18 stop(4016) 294
13.19 wait(3270)(继续) 294
13.20 ptrace(4164) 295
13.21 procxmt(4204) 295
第三部分 程序交换、基本输入/输出、块设备 297
第14章 程序交换 297
14.1 正文段 297
14.2 sched(1940) 298
14.3 xswap(4368) 299
14.4 xalloc(4433) 299
14.5 xfree(4398) 300
第15章 基本输入/输出介绍 301
15.1 buf.h文件 301
15.2 devtab(4551) 301
15.3 conf.h文件 301
15.4 conf.c文件 302
15.5 系统生成 302
15.6 swap(5196) 302
15.7 竞态条件 303
15.8 可重入 304
15.9 继续分析“u.u_ssav” 304
第16章 RK磁盘驱动器 305
16.1 控制状态寄存器RKCS 306
16.2 字计数寄存器RKWC 306
16.3 磁盘地址寄存器RKDA 306
16.4 rk.c文件 306
16.5 rkstrategy(5389) 306
16.6 rkaddr(5420) 307
16.7 devstart(5096) 307
16.8 rkintr(5451) 307
16.9 iodone(5018) 308
第17章 缓存处理 309
17.1 标志 309
17.2 一个类超高速缓存存储 309
17.3 clrbuf(5038) 309
17.4 incore(4899) 310
17.5 getblk(4921) 310
17.6 brelse(4769) 310
17.7 binit(5055) 311
17.8 bread(4854) 312
17.9 breada(4773) 312
17.10 bwrite(4809) 312
17.11 bawrite(4856) 313
17.12 bdwrite(4836) 313
17.13 bflush(5229) 313
17.14 physio(5259) 313
第四部分 文件和目录、文件系统、管道 315
第18章 文件存取和控制 315
18.1 源代码第四部分 315
18.2 文件特征 315
18.3 系统调用 316
18.4 控制表 316
18.4.1 file(5507) 316
18.4.2 inode(5659) 316
18.5 要求专用的资源 317
18.6 打开一个文件 317
18.7 creat(5781) 317
18.8 open1(5804) 317
18.9 open(5763) 318
18.10 再回到open1 318
18.11 close(5846) 318
18.12 closef(6643) 319
18.13 iput(7344) 319
18.14 删除文件 319
18.15 读和写文件 319
18.16 rdwr(5731) 320
18.17 readi(6221) 321
18.18 writei(6276) 322
18.19 iomove(6364) 322
18.20 bmap(6415) 322
18.21 剩余部分 322
第19章 文件目录和目录文件 323
19.1 文件名 323
19.2 目录数据结构 323
19.3 目录文件 323
19.4 namei(7518) 324
19.5 一些注释 325
19.6 link(5909) 326
19.7 wdir(7477) 327
19.8 maknode(7455) 327
19.9 unlink(3510) 327
19.10 mknod(5952) 327
19.11 access(6746) 328
第20章 文件系统 329
20.1 超级块(5561) 329
20.2 mount表(0272) 329
20.3 iinit(6922) 330
20.4 安装 330
20.5 smount(6086) 330
20.6 注释 331
20.7 iget(7276) 331
20.8 getfs(7167) 332
20.9 update(7201) 332
20.10 sumount(6144) 333
20.11 资源分配 333
20.12 alloc(6956) 334
20.13 itrunc(7414) 334
20.14 free(7000) 335
20.15 iput(7344) 335
20.16 ifree(7134) 335
20.17 iupdat(7374) 335
第21章 管道 337
21.1 pipe(7723) 337
21.2 readp(7758) 337
21.3 writep(7805) 338
21.4 plock(7862) 338
21.5 prele(7882) 338
第五部分 面向字符的特殊文件 339
第22章 面向字符的特殊文件 339
22.1 LP11行式打印机驱动程序 339
22.2 lpopen(8850) 340
22.3 注释 340
22.4 lpoutput(8986) 340
22.5 lpstart(8967) 341
22.6 lpint(8976) 341
22.7 lpwrite(8870) 342
22.8 lpclose(8863) 342
22.9 讨论 342
22.10 lpcanon(8879) 342
22.11 对读者的建议 343
22.12 PC11纸带阅读机/穿孔机驱动程序 344
第23章 字符处理 345
23.1 cinit(8234) 346
23.2 getc(0930) 346
23.3 putc(0967) 347
23.4 字符集 347
23.5 图形字符 348
23.6 UNIX惯例 349
23.7 maptab(8117) 349
23.8 partab(7947) 349
第24章 交互式终端 351
24.1 接口 351
24.2 tty结构(7926) 351
24.3 注释 352
24.4 初始化 352
24.5 stty(8183) 352
24.6 sgtty(8201) 353
24.7 klsgtty(8090) 353
24.8 ttystty(8577) 353
24.9 DLL11/KL11终端设备处理程序 353
24.10 设备寄存器 354
24.11 接收器状态寄存器 354
24.12 接收器数据缓存寄存器 354
24.13 发送器状态寄存器 354
24.14 发送器数据缓存寄存器 354
24.15 单总线地址 354
24.16 软件方面的考虑 355
24.17 中断矢量地址 355
24.18 源代码 355
24.19 klopen(8023) 355
24.20 klclose(8055) 356
24.21 klxint(8070) 356
24.22 klrint(8078) 356
第25章 tty.c文件 357
25.1 flushtty(8252) 357
25.2 wflushtty(8217) 357
25.3 字符输入 358
25.3.1 ttread(8535) 358
25.3.2 canon(8274) 358
25.3.3 前一个字符不是“” 358
25.3.4 前一个字符是“” 358
25.3.5 字符准备 359
25.3.6 已得到1行 359
25.3.7 注释 359
25.3.8 ttyinput(8333) 359
25.4 字符输出 360
25.4.1 ttwrite(8550) 360
25.4.2 ttstart(8505) 360
25.4.3 ttrstrt(8486) 360
25.4.4 ttyoutput(8373) 360
25.4.5 具有受限字符集的终端 361
25.5 结束语 362
第26章 练习 363
罗斯跋 366
奥德尔跋 368
古德哈特跋 370
克林森跋 372
雷杰斯跋 375
作者小传 377
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《分析化学》陈怀侠主编 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《影响葡萄和葡萄酒中酚类特征的因素分析》朱磊 2019
- 《仪器分析技术 第2版》曹国庆 2018
- 《全国普通高等中医药院校药学类专业十三五规划教材 第二轮规划教材 分析化学实验 第2版》池玉梅 2018
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《行测资料分析》李永新主编 2019
- 《药物分析》贡济宇主编 2017
- 《土壤环境监测前沿分析测试方法研究》中国环境监测总站编著 2018
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019