《Unix內核源碼剖析》node
基本信息算法
做者: (日)青柳隆宏 緩存
譯者: 殷中翔函數
叢書名: 圖靈程序設計叢書學習
出版社:人民郵電出版社網站
ISBN:9787115345219spa
上架時間:2014-2-17操作系統
出版日期:2014 年3月設計
開本:16開unix
頁碼:1
版次:1-1
所屬分類:計算機
更多關於》》》 《Unix內核源碼剖析》
編輯推薦
精讀1萬行代碼,深刻理解操做系統原理!
超級計算機「京」的L1緩存設計者青柳隆宏經典著做!
完全讀懂Unix源代碼!
內容簡介
書籍
計算機書籍
《unix內核源碼剖析》是一本unix v6內核源代碼的閱讀指南。做者結合unix v6已公開的相關文檔,對unix v6的內核源碼進行詳細剖析,旨在讓讀者更深刻地理解進程、中斷、塊i/o系統、文件系統、字符i/o系統、啓動系統等操做系統的基本原理。
《unix內核源碼剖析》適合操做系統的初中級學習者閱讀,特別適合經過大學課程和其餘入門書對操做系統有所瞭解,可是對具體細節缺少深刻理解的讀者,以及那些對操做系統的具體實現有興趣的讀者。
目錄
《unix內核源碼剖析》
第i部分
什麼是unix v6 1
第1章 unix v6的全貌 2
1.1 什麼是unix v6 2
1.2 unix的歷史2
1.3 unix v6內核 4
1.4 構成unix v6運行環境的硬件 4
pdp-11 5
1.5 代碼 9
1.6 手冊 9
1.7 小結 10
第ii部分
進程 11
第2章 進程 12
2.1 進程的概要 12
什麼是進程 12
進程的並行執行 12
進程的執行狀態 14
用戶模式和內核模式 14
交換處理15
2.2 proc結構體和user結構體 15
proc結構體 16
user結構體 17
2.3 爲進程分配的內存 21
代碼段 21
數據段 21
虛擬地址空間 22
變換地址 24
2.4 小結 26
第3章 進程的管理i 27
3.1 進程的生命週期 27
3.2 建立進程 28
進程的複製 28
父進程和子進程 29
系統調用fork 29
newproc() 32
panic() 36
3.3 切換執行進程 37
中斷執行進程 37
進程的執行狀態 37
選擇執行進程的算法 38
上下文切換 39
系統調用wait 39
sleep() 39
swtch() 41
swtch() 的返回位置 44
setpri() 51
wakeup() 51
setrun() 52
3.4 執行程序 53
程序執行文件的格式 53
系統調用exec 54
estabur() 62
sureg() 65
expand() 66
3.5 進程的終止 68
系統調用exit 69
系統調用wait 71
3.6 數據區域的擴展 73
系統調用break 73
3.7 管理內存和交換空間 76
map結構體 76
獲取未使用區域 77
釋放區域 79
3.8 小結 81
第4章 交換處理 82
4.1 什麼是交換處理 82
代碼段和數據段 82
sched() 83
xswap() 87
4.2 共享代碼段的處理 88
xalloc() 90
xfree() 93
xccdec() 93
4.3 小結 94
第iii 部分
中斷 95
第5章 中斷與陷入 96
5.1 什麼是中斷與陷入 96
什麼是中斷 96
什麼是陷入 97
5.2 優先級與向量(vector) 98
中斷優先級和處理器優先級 98
中斷和陷入向量 100
5.3 中斷和陷入的處理流程 100
發生中斷或陷入 101
執行call和trap 104
5.4 時鐘中斷處理函數 107
時鐘設備的規格 107
時鐘中斷處理函數的內容 108
clock() 113
5.5 陷入處理函數 117
trap() 117
grow() 122
5.6 系統調用的處理流程 123
傳遞參數的方法 123
sysent結構體 124
trap() 126
5.7 小結 128
第6章 信號 129
6.1 什麼是信號 129
信號的發送方法 129
確認接收信號 129
信號的種類 130
ssig() 131
kill() 132
signal() 133
psignal() 133
issig() 134
psig() 134
core() 136
在系統調用處理中處理信號 136
6.2 跟蹤功能 137
什麼是跟蹤 137
ipc結構體 138
跟蹤的處理流程 138
stop() 139
ptrace() 140
procxmt() 142
wait() 143
6.3 小結 144
第iv 部分
塊i/o 系統 145
第7章 塊設備子系統 146
7.1 設備的基礎 146
設備的種類 146
設備驅動 146
類別和設備編號 147
特殊文件 147
7.2 塊設備子系統 148
緩衝區 148
b-list和av-list 150
raw 輸入輸出 151
7.3 緩衝區的初始化 152
binit() 152
clrbuf() 153
7.4 緩衝區的獲取和釋放 154
getblk() 154
notavail() 156
brelse() 157
7.5 讀取 158
讀取的種類 158
bread() 159
iowait() 160
iodone() 160
geterror() 161
breada() 161
incore() 162
7.6 寫入 163
寫入的種類 163
bwrite() 164
bawrite() 165
bdwrite() 165
bflush() 166
7.7 raw輸入輸出 167
physio() 167
swap() 169
7.8 小結 171
第8章 塊設備驅動 172
8.1 什麼是塊設備驅動 172
塊設備驅動表 172
設備處理隊列 173
處理流程 173
8.2 rk-11磁盤驅動 174
rk11-d 175
特殊文件 175
設定bdevsw[] 176
中斷處理函數 176
rk11-d 的寄存器 177
rkstrategy() 179
rkstart() 180
rkaddr() 180
devstart() 181
rkintr() 182
raw 輸入輸出 184
8.3 小結 184
第v 部分
文件系統 185
第9章 文件系統 186
9.1 什麼是文件系統 186
inode 186
樹狀結構的命名空間 187
掛載 187
訪問權限 188
根磁盤 189
9.2 塊設備的區域 189
用於啓動的區域 190
超級塊 190
inode區域 191
存儲區域 193
9.3 掛載 193
mount結構體 193
系統調用mount 194
getmdev() 196
系統調用umount 197
9.4 inode的獲取和釋放 198
inode[] 198
iget() 201
iput() 203
iupdat() 204
9.5 inode與存儲區域的對應關係 205
bmap() 208
itrunc() 211
9.6 分配塊設備中的塊 213
ialloc() 213
ifree() 216
alloc() 217
free() 220
getfs() 222
badblock() 222
9.7 將路徑變爲inode 223
目錄的內容 223
namei() 224
access() 230
9.8 初始化與同步 232
iinit() 232
update() 232
9.9 小結 234
第10章 文件處理 235
10.1 用戶程序對文件的處理 235
10.2 3 個結構體 235
標準輸入輸出 237
10.3 文件的生成和打開處理 237
系統調用creat 238
maknode() 238
wdir() 239
系統調用open 240
open1() 241
falloc() 242
ufalloc() 243
openi() 243
10.4 文件的讀取和寫入 244
系統調用read、write 244
rdwr() 245
readi() 246
writei() 248
iomove() 250
getf() 252
10.5 指定文件的讀寫位置 252
系統調用seek 252
10.6 關閉文件 254
系統調用close 254
closef() 254
closei() 255
10.7 目錄的生成 255
系統調用mknod 255
10.8 文件的連接 256
系統調用link 257
suser() 258
10.9 刪除文件 258
系統調用unlink 258
10.10 小結 260
第11章 管道 261
11.1 什麼是管道 261
使用管道的優勢 262
11.2 開始管道通訊 262
系統調用pipe 262
11.3 收發數據 264
writep() 264
readp() 266
plock() 267
prele() 267
11.4 結束管道通訊 268
closef() 268
11.5 創建管道通訊的流程 268
創建父子進程間的通訊 268
系統調用dup 272
11.6 小結 273
第vi 部分
字符i/o 系統 275
第12章 字符設備 276
12.1 字符設備驅動 276
字符設備緩衝區 277
對緩衝區的操做 278
初始化緩衝區池 280
12.2 lp11設備驅動 281
什麼是lp11 281
lp11設備驅動的功能 282
lpopen() 284
lpwrite() 285
lpcanon() 285
lpoutput() 287
lpstart() 288
lpint() 288
lpclose() 289
12.3 小結 289
第13章 電傳終端 290
13.1 什麼是電傳終端 290
電傳終端的接口 290
特殊文件 291
tty 結構體 292
maptab[] 295
partab[] 295
kl11/dl11 296
kl11/dl11設備驅動的規格 297
kl11/dl11設備驅動函數 298
13.2 終端的開啓和關閉 298
klopen() 298
klclose() 300
wflushtty() 300
flushtty() 301
13.3 終端的設定 302
gtty() 302
stty() 302
sgtty() 303
klsgtty() 304
ttystty() 304
13.4 從終端輸入文字 305
klrint() 306
ttyinput() 306
13.5 讀取輸入的數據 308
klread() 309
ttread() 309
canon() 310
13.6 向終端輸出數據 313
klwrite() 314
ttwrite() 315
ttyoutput() 316
ttstart() 318
ttrstrt() 319
klxint() 320
13.7 小結 320
第vii 部分
啓動系統 321
第14章 啓動系統 322
14.1 啓動的流程 322
start 323
main() 326
/etc/init 329
14.2 小結 330
附 錄 參考資料等 331
a.1 參考文獻、網站 331
a.2 pre k&r c 335
後記 337
索引 338