Unix 內核源碼剖析 Unix内核源码剖析

青柳隆宏

  • 出版商: 人民郵電
  • 出版日期: 2014-03-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 342
  • 裝訂: 平裝
  • ISBN: 711534521X
  • ISBN-13: 9787115345219

已絕版

買這商品的人也買了...

相關主題

商品描述

<內容簡介>

青柳隆宏著的《Unix內核源碼剖析》是一本UNIX V6內核源代碼的閱讀指南。作者結合UNIX V6已公開的相關文檔,對UNIX V6的內核源碼進行詳細剖析,旨在讓讀者更深入地理解進程、中斷、塊I/O系統、文件系統、字符I/O系統、啟動系統等操作系統的基本原理。
    《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