?? 目錄.txt
字號:
目 錄
獻(xiàn)辭
致謝
序(一)
序(二)
歷史注記
上篇 UNIX操作系統(tǒng)版本6源代碼
UNIX操作系統(tǒng)過程分類索引 3
UNIX操作系統(tǒng)文件及過程 5
UNIX操作系統(tǒng)定義的符號列表 7
UNIX操作系統(tǒng)源代碼交叉引用列表 9
第一部分 初始化、進(jìn)程初始化 25
第二部分 陷入、中斷、系統(tǒng)調(diào)用和
進(jìn)程管理 75
第三部分 程序交換、基本輸入/輸出、
塊設(shè)備 109
第四部分 文件和目錄、文件系統(tǒng)、管道 133
第五部分 面向字符的特殊文件 181
下篇 萊昂氏UNIX源代碼分析
前言 207
第1章 緒論 209
1.1 UNIX操作系統(tǒng) 209
1.2 公用程序 209
1.3 其他文檔 210
1.4 UNIX程序員手冊 210
1.5 UNIX文檔 211
1.6 UNIX操作系統(tǒng)源代碼 211
1.7 源代碼中各部分 212
1.8 源代碼文件 212
1.9 分析的使用 212
1.10 對程序設(shè)計水平的一條注釋 212
第2章 基礎(chǔ)知識 214
2.1 處理機(jī) 214
2.2 處理機(jī)狀態(tài)字 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 狀態(tài)寄存器 221
2.12 “i”和“d”空間 221
2.13 啟動條件 221
2.14 專用設(shè)備寄存器 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”預(yù)處理程序 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
第一部分 初始化、進(jìn)程初始化
第5章 兩個文件 241
5.1 文件malloc.c 241
5.1.1 列表維護(hù)規(guī)則 241
5.1.2 malloc(2528) 242
5.1.3 mfree(2556) 243
5.1.4 結(jié)論 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章 系統(tǒng)初啟 249
6.1 操作員的動作 249
6.2 start(0612) 249
6.3 main(1550) 251
6.4 進(jìn)程 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章 進(jìn)程 256
7.1 進(jìn)程映像 256
7.2 proc結(jié)構(gòu)(0358) 257
7.3 user結(jié)構(gòu)(0413) 257
7.4 每個進(jìn)程數(shù)據(jù)區(qū) 258
7.5 段 258
7.6 映像的執(zhí)行 258
7.7 核心態(tài)執(zhí)行 259
7.8 用戶態(tài)執(zhí)行 259
7.9 一個實(shí)例 259
7.10 設(shè)置段寄存器 260
7.11 estabur(1650) 260
7.12 sureg(1739) 261
7.13 newproc(1826) 261
第8章 進(jìn)程管理 263
8.1 進(jìn)程切換 263
8.2 中斷 263
8.3 程序交換 263
8.4 作業(yè) 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 臨界區(qū) 268
第二部分 陷入、中斷、系統(tǒng)調(diào)用
和進(jìn)程管理
第9章 硬件中斷和陷入 269
9.1 硬件中斷 269
9.2 中斷矢量 270
9.3 中斷處理程序 270
9.4 優(yōu)先級 270
9.5 中斷優(yōu)先級 271
9.6 中斷處理程序的規(guī)則 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 核心態(tài)棧 277
第11章 時鐘中斷 279
11.1 clock(3725) 279
11.2 timeout(3845) 281
第12章 陷入與系統(tǒng)調(diào)用 282
12.1 trap(2693) 282
12.2 核心態(tài)陷入 282
12.3 用戶態(tài)陷入 283
12.4 系統(tǒng)調(diào)用 284
12.5 系統(tǒng)調(diào)用處理程序 285
12.6 文件sys1.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 設(shè)置期望動作 288
13.2 對進(jìn)程造成中斷 288
13.3 作用 289
13.4 跟蹤 289
13.5 過程 289
13.5.1 期望動作的設(shè)置 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.12 core(4094) 292
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)(繼續(xù)) 294
13.20 ptrace(4164) 295
13.21 procxmt(4204) 295
第三部分 程序交換、基本輸入
/輸出、塊設(shè)備
第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 系統(tǒng)生成 302
15.6 swap(5196) 302
15.7 競態(tài)條件 303
15.8 可重入 304
15.9 繼續(xù)分析“u.u_ssav” 304
第16章 RK磁盤驅(qū)動器 305
16.1 控制狀態(tài)寄存器RKCS 306
16.2 字計數(shù)寄存器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 標(biāo)志 309
17.2 一個類超高速緩存存儲 309
17.3 clrbuf(5038) 309
17.4 incore(4899) 310
17.5 getblk(4921) 310
17.6 brelse(4869) 310
17.7 binit(5055) 311
17.8 bread(4754) 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
第四部分 文件和目錄、文件
系統(tǒng)、管道
第18章 文件存取和控制 315
18.1 源代碼第四部分 315
18.2 文件特征 315
18.3 系統(tǒng)調(diào)用 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 目錄數(shù)據(jù)結(jié)構(gòu) 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章 文件系統(tǒng) 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
第五部分 面向字符的特殊文件
第22章 面向字符的特殊文件 339
22.1 LP11行式打印機(jī)驅(qū)動程序 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紙帶閱讀機(jī)/穿孔機(jī)驅(qū)動
程序 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結(jié)構(gòu)(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 DL11/KL11終端設(shè)備處理程序 353
24.10 設(shè)備寄存器 354
24.11 接收器狀態(tài)寄存器 354
24.12 接收器數(shù)據(jù)緩存寄存器 354
24.13 發(fā)送器狀態(tài)寄存器 354
24.14 發(fā)送器數(shù)據(jù)緩存寄存器 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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -