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