File-System Structure
- 一個 disk 提供的最小單位是 sectors(usually 512 bytes)
- 但是 mapping 的時候不喜歡用 sector,太小了
- 所以都用 Blocks,通常是四到十幾個 sectors
- 一個 OS 可以 support > 1 個 FS type
- 需要兩個 interface
- 對上:user programs
- 對下:physical storage (disk)
Layered File System
- 最上層是 API
- 最下層(最終要寫到 disk 上面去的)要透過 driver 寫過去,那 driver 要的是單位是 sector
- Logical file system — 根據 file path 找到 file ID,也要去判斷權限(i.e. 判斷 API 是不是合法可執行的東西)
- File-organization module — 每一個 FS 最不一樣的地方。要找到在 logical 中的位址對應到的 physical 的地方。(甚至需要 map 到不同的電腦)
- Basic File system — 最基本的 I/O 的動作(跟檔案管理無關啦)
右邊的名詞不用記
File System Implementation
On-Disk Structure
→ 因為 reboot 後,資料還是要在,所以和之前的不一樣
- Boot control block ****(per partition) — 關於 booting 的 code 或資訊
- 裝 OS 他就會幫你 create 起來
- 一個 partition 只會有一個(也最多一個) boot control block,通常會放在最上面
- 如果不是開機槽,那就不會有這個 block
- Unix File System → boot block; NTFS → partition boot sector
- Partition control block ****(per partition) — 關於這個 partition 的資訊
- details: # of blocks, block size, free-block-list, free FCB pointers, etc
- UFS → superblock; NTFS → Master File Table
- 如果沒有 boot control block,那他應該會在最前面