日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

1 FreeBSD 核心( 五 )


。/usr/bin/login就提示出passwd: , 等待用戶的輸入
。準備user名和passwd , 對輸入的用戶名進行確定 , 正確的話就exec()用戶
shell

下圖就是/sbin/init的監(jiān)視進程圖:

process #1
-------------------------------------------------------->
/sbin/init | ^
| fork() | | fork()
exec() exec() exec() | | exec()
process #n |----------> ---------> ------------------* --------
getty login user的login shell process #m

(第一章完 , 下一章介紹文件系統(tǒng)和驅(qū)動程序 , liangvy)



FreeBSD核心探討.4.驅(qū)動程序篇

翻譯:liangvy liangvy@bigfoot.comicewolf.leon
版權(quán)所有 , 可以轉(zhuǎn)貼

第二章 文件系統(tǒng)和設(shè)備驅(qū)動程序

這章主要介紹文件系統(tǒng)和特殊的設(shè)備文件以及它們的對應(yīng)關(guān)系 。

2..1 disk上的 unix file system 的基本知識
首先介紹一下經(jīng)典的unix file system的思維方法 。
disk 的 partition就是從0到512byte的連續(xù)長度的block的東西 。這里有
1.file/Directory有關(guān)的固定長度的信息,i-node
2.file/directory的本體 , data block
的兩樣不同的東西 。partition的前面的附近塊(block#16 ,1--15用于boot
program )就是i-node,data block用的領(lǐng)域等等的開始位置(block號)
和長度(block數(shù)量)等的記錄 , 叫做super-block 。一個block可能的容量只
能有固定數(shù)目的i-node , 所以如果分配了固定的i-node,收錄了節(jié)點號和節(jié)
點的塊號和塊的位置就可以計算出來 。
i-node就是
。表明i-node的種類(file ,direstory,device等)
。這個節(jié)點參考的次數(shù)(目錄數(shù))
。參考 , 作成 , 變化的時間
。權(quán)限
。所有者的user id / group id
。本體的長度
。收集本體的data block的block號碼的固定長度的對應(yīng)表
的一些記錄 。因為data block的對應(yīng)表是固定的關(guān)系 , 比
如10個 , 最長就能夠作出512*10=5k為止的file 。

當文件比塊大的時候 , unix就采用成組聯(lián)結(jié)的方式對它們進行管理 。就是
把所有的空閑塊以一定數(shù)目為一組的方法作成單向空閑塊stacker 。
特別地 , 文件的從先頭的byte位置開始和i-node內(nèi)的對應(yīng)表有著密切的關(guān)系 。
而且 , 對于i-node的輸入輸出 , 可以對應(yīng)指定位置的數(shù)據(jù)塊進行讀寫 。重要
的是 , 核心可以依照這個管理表對io裝置進行管理 。
unix對io設(shè)備的操作也是作為(特殊)文件進行的 。對于用i-node進行
描述的io設(shè)備 , data block數(shù)據(jù)塊的對應(yīng)表就沒必要了 。這個部分的io設(shè)備
的識別就通過device號碼來進行 。向這些對i-node進行輸入輸出處理的 ,
就又設(shè)備驅(qū)動號區(qū)別 , 來進行device driver驅(qū)動 。
那么 , 節(jié)點怎么的進行查找呢?partition的最初的目錄(根目錄)就是 ,
從第二個i-node開始 , 一個一個順著節(jié)點進行查找 。
比如 , 對于目錄/uuu/vvv/.../yyy/zzz的查找方式 , 有這種關(guān)系:
。i-node #2 所存放的是root directory 。讀入它的本體 , 就可以找到
相應(yīng)的uuu所對應(yīng)的i-node 。
。讀入這個i-node所存放的directory的i-node本體 , 找到相應(yīng)的vvv節(jié)點 。
......
查找對應(yīng)yyy的節(jié)點
。讀入這個節(jié)點的本體信息 , 這里包含目錄本題的內(nèi)容 , 這樣就可以找到
zzz所對應(yīng)的i-node 。
目錄里面由于記錄了對應(yīng)文件名的節(jié)點號 , 所以 , 也有可能同一個節(jié)點號
根據(jù)文件名不一樣 , 就可以找到不同的目錄名 。這就是硬連接(hard link).
但是 , 節(jié)點號有只存在于節(jié)點所在的分區(qū)的含義 , 所以 , 不同的分區(qū) ,
這種硬連接就不具有存在的可能性 。為了解決這個矛盾 , 就有了符號連接
(symble link)的說法 。當節(jié)點是輸入符號連接的時候 , 符號連接就包含
了這個節(jié)點的data block所指定的路徑名 。但是 , 空連接和loop連接這種

推薦閱讀