天天看點

檔案系統

檔案系統的架構層次包括:使用者層、虛拟檔案系統層、檔案系統層、緩存層、塊裝置層、磁盤驅動層和磁盤實體層。

檔案系統

1、使用者層

最上面使用者層是日常使用的各種使用者應用程式,需要的接口主要是檔案的建立、删除、打開、關閉、寫、讀等。

2、虛拟檔案系統層VFS

Linux作業系統分為使用者态和核心态,當使用者态請求硬體資源時需要調用System Call通過核心态去實作。VFS 作為一個通用的檔案系統,抽象了檔案系統的挂載點、索引節點、目錄項和檔案四個基本概念,在核心空間層中為使用者空間層的檔案操作(檔案的建立、删除、打開、關閉、寫、讀等)提供了相關的接口。

檔案系統

VFS 存在四個基本對象:

超級塊對象:代表一個已安裝的檔案系統;

索引節點對象:代表一個檔案;

目錄項對象代表一個目錄項;

檔案對象代表由程序打開的檔案。

超級塊、索引節點、目錄項、檔案這四個基本對象是對挂載點、索引節點、目錄項和檔案四個基本概念的一一對應的。

3、檔案系統層

不同的檔案系統實作了VFS的系統調用函數接口,通過指針注冊到VFS裡面。使用者層的各種操作是通過VFS轉到各種檔案系統的。

檔案系統大體上可分如下幾類:

網絡檔案系統,如 nfs、cifs 等;

磁盤檔案系統,如 ext4、ext3 等;

特殊檔案系統,如 proc、sysfs、ramfs、tmpfs 等。

4、緩存層

檔案系統底下有緩存,Page Cache,加速性能。對磁盤LBA的讀寫資料緩存到這裡。

5、塊裝置層

塊裝置接口Block Device是用來通路磁盤LBA的層級,讀寫指令組合之後插入到指令隊列,磁盤的驅動從隊列讀指令執行。

6、磁盤驅動層

磁盤的驅動程式把對LBA的讀寫指令轉化為各自的協定,或者是自己硬體可以識别的自定義指令,發送給磁盤控制器。

7、磁盤實體層

讀寫實體資料到磁盤媒體。

上一篇: 檔案系統
下一篇: Linux下Makefile

繼續閱讀