linux文件历史,Linux文件系统的历史透视
與維基百科頁面一樣,Block(數據存儲)雖然在鏈接所有關鍵字方面過于旺盛,但仍具有豐富的信息量。
在計算(特別是數據傳輸和數據存儲)中,塊是具有標稱長度(塊大小)的字節或比特序列。據說這樣構建的數據被阻止。將數據放入塊的過程稱為阻塞。阻塞用于促進接收數據的計算機程序對數據流的處理。阻塞的數據通常一次讀取整個塊。當將數據存儲到9軌磁帶,旋轉介質(例如軟盤,硬盤,光盤和NAND閃存)時,幾乎普遍采用阻塞。
大多數文件系統都基于塊設備,塊設備是負責存儲和檢索指定數據塊的硬件的抽象級別,盡管文件系統中的塊大小可能是物理塊大小的倍數。在傳統文件系統中,單個塊可能只包含單個文件的一部分。由于內部碎片導致空間效率低下,因為文件長度通常不是塊大小的倍數,因此最后一個文件塊將保持部分為空。這將創建松弛空間,平均每個文件半個塊。一些較新的文件系統試圖通過稱為塊子分配和尾部合并的技術來解決這個問題。
還有一個經典的Unix文件系統的合理概述。
傳統上,硬盤幾何(磁盤本身的塊布局)是CHS。
頭部:每個(一側)盤片上的磁性讀寫器;可以移入和移出以訪問不同的圓柱體
圓柱體:當盤片旋轉時,在軌道下方通過的軌道
扇區:在圓柱體的一部分上連續存儲的恒定大小的數據量;驅動器可以處理的最小數據單元
如今,CHS使用不多
硬盤不再使用每個氣缸的恒定扇區數。通過使用每個扇區的恒定弧長而不是恒定的旋轉角度將更多數據擠壓到盤片上,因此外圓柱上的扇區比內圓柱上的扇區多。
根據ATA規范,驅動器每個噴頭可以具有不超過216個汽缸,每個汽缸可以具有24個噴頭和28個扇區; 512B扇區,這是128GB的限制。通過BIOS INT13,無論如何都無法通過CHS訪問超過7.88GB的任何內容。
為了向后兼容,較大的驅動器仍然聲稱具有CHS幾何(否則DOS將無法啟動),但是獲取任何更高的數據需要使用LBA尋址。
CHS在RAID或非旋轉媒體上甚至沒有意義。
但由于歷史原因,這會影響塊大小:因為扇區大小幾乎總是512B,所以文件系統塊大小始終是512B的倍數。 (有一個運動正在推出1kB和4kB扇區尺寸的驅動器,但兼容性看起來相當痛苦。)
一般來說,較小的文件系統塊大小可以在存儲許多小文件時減??少浪費的空間(除非使用尾部合并等高級技術),而較大的塊大小減少了外部碎片并且在大磁盤上具有較低的開銷。文件系統塊大小通常為2的冪,受塊設備扇區大小的限制,并且通常受操作系統頁面大小的限制。
頁面大小因操作系統和平臺而異(在Linux的情況下,也可能因配置而異)。與塊大小一樣,較小的塊大小減少了內部碎片,但需要更多的管理開銷。 32位平臺上的4kB頁面大小很常見。
現在,來描述間接塊。在UFS設計中,
inode描述文件。
在UFS設計中,指向inode可容納的數據塊的指針數量非常有限(小于16)。特定數字在派生實現中似乎有所不同。
對于小文件,指針可以直接指向組成文件的數據塊。
對于較大的文件,必須有間接指針,指向僅包含更多指向塊的指針的塊。這些可能是屬于文件的數據塊的直接指針,或者如果文件非常大,它們可能是更間接的指針。
因此,當使用間接指針時,文件所需的存儲量可能大于包含其數據的塊。
并非所有文件系統都使用此方法來跟蹤屬于文件的數據塊。 FAT只使用單個文件分配表,它實際上是一系列巨大的鏈表,許多現代文件系統都使用擴展區。
總結
以上是生活随笔為你收集整理的linux文件历史,Linux文件系统的历史透视的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淮海工学院linux实验报告三,作业三
- 下一篇: linux cp 覆盖不确认,cp命令强