1. 程式人生 > 實用技巧 >Linux檔案系統--【檔案系統基本單位】

Linux檔案系統--【檔案系統基本單位】

>>> hot3.png

扇區(sector)

一般大小為512 byte
硬體(磁碟)上的最小的操作單位,是作業系統和塊裝置(硬體、磁碟)之間傳送資料的單位。

物理理塊(block)

block由一個或多個sector組成,檔案系統中最小的操作單位;OS的虛擬檔案系統從硬體裝置上讀取一個block,實際為從硬體裝置讀取一個或多個sector。對於檔案管理來說,每個檔案對應的多個block可能是不連續的;block最終要對映到sector上,所以block的大小一般是sector的整數倍。不同的檔案系統block可使用不同的大小,作業系統會在記憶體中開闢記憶體,存放block到所謂的block buffer中。在Ext2中,物理塊的大小是可變化的,這取決於在建立檔案系統時的選擇,之所以不限制大小,也正體現了Ext2的靈活性和可擴充性。通常,Ext2的物理塊佔一個或幾個連續的扇區,顯然,物理塊的數目是由磁碟容量等硬體因素決定的。

邏輯塊

單個檔案可能由於一個或多個邏輯塊組成,且邏輯塊之間是不連續分佈。邏輯塊大於或等於物理塊整數倍,
對映關係:扇區→物理塊→邏輯塊→檔案系統

檔案系統(File System)


具體檔案系統所操作的基本單位是邏輯塊,只在需要進行I/O操作時才進行邏輯塊到物理塊的對映,這顯然避免了大量的I/O操作,因而檔案系統能夠變得高效。邏輯塊作為一個抽象的概念,它必然要對映到具體的物理塊上去,因此,邏輯塊的大小必須是物理塊大小的整數倍,一般說來,兩者是一樣大的。

物理塊與檔案系統之間的關係圖:

102637_bxuB_1403215.png

一組請求的位元組到物理塊的對映過程示意圖。
102953_iskY_1403215.png

通常,一個檔案佔用的多個物理塊在磁碟上是不連續儲存的,因為如果連續儲存,則經過頻繁的刪除、建立、移動檔案等操作,最後磁碟上將形成大量的空洞,很快磁碟上將無空間可供使用。因此,

必須提供一種方法將一個檔案佔用的多個邏輯塊對映到對應的非連續儲存的物理塊上去,Ext2等類檔案系統是用索引節點(inode)解決這個問題的。

轉載於:https://my.oschina.net/manmao/blog/679706