【正文】
mplement the buffer cache and for a ramdisk device。這個動態(tài)配置內(nèi)核模塊的方式可以讓用戶能盡可能小地編譯內(nèi)核,并且還能夠在會話過程中按需加載設(shè)備驅(qū)動或文件系統(tǒng)。目錄樹各分支的具體實現(xiàn)對用戶是透明的,用戶不必知道文件所在文件系統(tǒng)是什么,也不必知道文件在哪個物理設(shè)備上。當(dāng)外設(shè)需要向主機報告一個狀態(tài)的改變時(比如鼠標單擊、鍵盤被按下或一項請求的操作完成),它給主機發(fā)出一個中斷信號。塊設(shè)備驅(qū)動如果引入緩沖(buffer)機構(gòu)可大大提高I/O性能。KEMIN:我對這幅構(gòu)圖有一點不解的,就是用戶進程訪問非磁盤設(shè)備(比如網(wǎng)卡)要不要通過邏輯文件系統(tǒng)層?答案是[設(shè)備文件系統(tǒng) ] 。 * lseek(): if supported, move to a particular offset in the file * permission(): check to see if a user process has permission to execute an operation 以下兩個接口定義可在文件系統(tǒng)C頭文件(/include/linux/)中找到:Inode Interface: * Homogeneity present a mon interface to all of the logical file systems and all hardware devices * Multiple executable formats support several different executable file formats (like , ELF, java) 比如, inode 和 file。 * truncate(): set the length of a file to zero * select(): wait until the file is in a particular state (readable or writeable) 所謂[概念邏輯層]指是對多種實現(xiàn)細節(jié)進行統(tǒng)一抽象,比如[設(shè)備驅(qū)動層]對各種[I/O設(shè)備]進行抽象,提供一致的訪問接口;[邏輯文件系統(tǒng)層]亦如是。當(dāng)內(nèi)核(或用戶進程)都統(tǒng)一通過這個 [文件接口]訪問設(shè)備的時候,為系統(tǒng)添加新設(shè)備變得很容易;因為這個[文件接口]是抽象的(虛的),只要編寫設(shè)備的硬件相關(guān)的代碼 實現(xiàn)這個接口即可。中斷機制可以使外設(shè)獨立于主機,有自己的狀態(tài),與主機并發(fā)工作。當(dāng)一塊[塊設(shè)備]的文件系統(tǒng)被掛接(mounted)入[虛擬文件系統(tǒng)]目錄樹后,該設(shè)備上的所有文件和目錄可從掛點訪問(KEMIN:注意用詞表達,文件系統(tǒng)是設(shè)備的屬性,是塊設(shè)備的一部分,被格式化后的設(shè)備有了質(zhì)的變化)。Modules虛擬文件系