《Unix內核源碼剖析》

《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

 

 

本圖書信息來源:互動出版

相關文章
相關標籤/搜索