一、檔案系統層次分析
由上而下主要分為使用者層、vfs層、檔案系統層、快取層、塊裝置層、磁碟驅動層、磁碟物理層
使用者層:最上面使用者層就是我們日常使用的各種程式,需要的介面主要是檔案的建立、刪除、開啟、關閉、寫、讀等。
vfs層:我們知道linux分為使用者態和核心態,使用者態請求硬體資源需要呼叫system call通過核心態去實現。使用者的這些檔案相關操作都有對應的system call函式介面,介面呼叫 vfs對應的函式。
檔案系統層:不同的檔案系統實現了vfs的這些函式,通過指標註冊到vfs裡面。所以,使用者的操作通過vfs轉到各種檔案系統。檔案系統把檔案讀寫命令轉化為對磁碟lba的操作,起了乙個翻譯和磁碟管理的作用。
快取層:檔案系統底下有快取,page cache,加速效能。對磁碟lba的讀寫資料快取到這裡。
塊裝置層:塊裝置介面block device是用來訪問磁碟lba的層級,讀寫命令組合之後插入到命令佇列,磁碟的驅動從佇列讀命令執行。linux設計了電梯演算法等對很多lba的讀寫進行優化排序,盡量把連續位址放在一起。
磁碟驅動層:磁碟的驅動程式把對lba的讀寫命令轉化為各自的協議,比如變成ata命令,scsi命令,或者是自己硬體可以識別的自定義命令,傳送給磁碟控制器。host based ssd甚至在塊裝置層和磁碟驅動層實現了ftl,變成對flash晶元的操作。
磁碟物理層:讀寫物理資料到磁碟介質。
linux檔案系統介紹
linux支援多種檔案系統型別,包括ext2,ext3,vfat,jffs,ramfs,nfs等,為了對各類檔案系統進行統一管理,linux引入了虛擬檔案系統vfs virtual file system 為各類檔案系統提供乙個統一的應用程式設計介面。檔案系統型別主要有如下 根據儲存裝置的硬體特性,...
Linux檔案系統介紹
linux檔案系統 以單根的方式 組織檔案 rootfs根檔案系統 media 掛載點目錄,dev下是裝置檔案而不是目錄 只是裝置上資料的訪問入口 要訪問必須建立關聯關係,這個過程叫掛載。移動裝置的掛載 mnt 掛載點目錄,額外的臨時檔案系統 misc 雜項 opt 可選目錄,第三方程式的安裝目錄 ...
Linux檔案系統介紹
根節點,主層次機構 bin 所有使用者在單使用者模式下必備的可執行的二進位制檔案 dev 系統的裝置檔案 ect 系統的被指檔案 honme 普通使用者家目錄 lib 是 庫檔案目錄 包含了所有對系統有用的庫檔案。簡單來說,它是應用程式 命令或程序正確執行所需要的檔案 media 熱插拔裝置的臨時掛...