【正文】
file or directory 注:除了以上inode的接口,其它內(nèi)核子系統(tǒng)還可以調(diào)用namei() 函數(shù)查出與inode相關(guān)聯(lián)的文件或目錄。 * open() / release(): open or close the file * select(): wait until the file is in a particular state (readable or writeable) * mmap(): map a region of the file into the virtual memory of a user process * readdir: read the files that are pointed to by a directory file * check_media_change: check to see if a removable media has been removed (such as a floppy) 所謂[概念邏輯層]指是對多種實現(xiàn)細節(jié)進行統(tǒng)一抽象,比如[設備驅(qū)動層]對各種[I/O設備]進行抽象,提供一致的訪問接口;[邏輯文件系統(tǒng)層]亦如是。 Device Drivers[設備驅(qū)動層]負責對所有硬件設備進行包裝抽象。前兩者是與[虛擬文件系統(tǒng)]直接相關(guān)的。所有設備驅(qū)動 必須實現(xiàn)前面提到的文件接口(file interface)函數(shù)。當內(nèi)核(或用戶進程)都統(tǒng)一通過這個 [文件接口]訪問設備的時候,為系統(tǒng)添加新設備變得很容易;因為這個[文件接口]是抽象的(虛的),只要編寫設備的硬件相關(guān)的代碼 實現(xiàn)這個接口即可。因為緩沖區(qū)可最少化讀寫硬件設備的次數(shù)。[緩沖機構(gòu)]由一個獨立的內(nèi)核線程——kflushd實現(xiàn)。主機和外設通信一般使用三種方式:輪詢、DMA和中斷。中斷機制可以使外設獨立于主機,有自己的狀態(tài),與主機并發(fā)工作。主機CPU在處理中斷的條件滿足后執(zhí)行相應的中斷處理代碼。 CPU在處理中斷請求時運行在一個特定的上下文,同一時刻可能有多個中斷請求,而且緩急不一,中斷處理必須非常高效,以免丟失重要的中斷請求。這種做法能夠降低設備驅(qū)動的中斷延遲并提高系統(tǒng)并發(fā)性。當一塊[塊設備]的文件系統(tǒng)被掛接(mounted)入[虛擬文件系統(tǒng)]目錄樹后,該設備上的所有文件和目錄可從掛點訪問(KEMIN:注意用詞表達,文件系統(tǒng)是設備的屬性,是塊設備的一部分,被格式化后的設備有了質(zhì)的變化)。這種靈活性是Linux成功的原因之一。Linux用一個inode數(shù)據(jù)結(jié)構(gòu)表征塊設備上的一個文件。特定的文件系統(tǒng) 具體實現(xiàn)它們的節(jié)點接口。Modules虛擬文件系統(tǒng)的各部分功能可以以[動態(tài)加載模塊 ]的形式實現(xiàn)。 Data Structures以下三個數(shù)據(jù)結(jié)構(gòu)是[虛擬文件系統(tǒng)]相關(guān)的:* super