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 指向了資料緩衝區在記憶體何處