Storage & FileSystem

VFS

抽象化了不同的檔案系統,提供統一的 read 或 write 等界面

File-system

檔案系統這邊主要是以 mapping 到檔案所在位置的 page 來描述檔案的位置,page 將會被轉換成為 bio 並送到下層的 block layer。在層當中還有一層 stackable 的一層,當中有像 LVM 或是 md 等將多個 device mapping 成一個更大的虛擬裝置,讓其他的檔案系統能應用在其之上。

被轉換後的 bio 將統一透過 submit_bio 送到 Block layer

欠需研究,還需了解 page 之間的關係,與檔案系統更深入的架構

Block Layer

此層負責處理 bio 結構,一個 bio 便是一次的 block I/O bio 內描述了

sector_t             bi_sector;         /* associated sector on disk */
struct block_device  *bi_bdev;          /* associated block device */
unsigned long        bi_rw;             /* read or write? */
unsigned short       bi_vcnt;           /* number of bio_vecs off */
struct bio_vec       *bi_io_vec;        /* bio_vec list */
....
....

其中 bi_io_vec 指向了資料緩衝區在記憶體何處

results matching ""

    No results matching ""