文件系統(tǒng)簡(jiǎn)介
什么是文件系統(tǒng)?
????操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件稱為文件管理系統(tǒng)蛇数,即文件系統(tǒng)砚偶。
主要職能:
? ? ·?文件存儲(chǔ)設(shè)備(硬盤批销、U盤、SSD)的空間進(jìn)行組織和分配
? ? ·?文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索
不同操作系統(tǒng)所使用的文件系統(tǒng)
文件系統(tǒng)運(yùn)行流程:
1. 磁盤分區(qū) =》 2. 格式化 =》 3. 掛載
磁盤分區(qū)
1.1 為啥要磁盤分區(qū)染坯?
不對(duì)磁盤進(jìn)行分區(qū)均芽,無(wú)法利用磁盤進(jìn)行存儲(chǔ),讀取數(shù)據(jù)等操作
1.2 如何分區(qū)单鹿?
常用兩個(gè)分區(qū)方式:MBR 和?GPT
磁盤第一個(gè)扇區(qū)里面含有的重要信息我們稱為MBR格式掀宋。
第一個(gè)扇區(qū)512 Bytes會(huì)有這兩個(gè)數(shù)據(jù):
· 主要開機(jī)記錄區(qū)(Master Boot Record, MBR):可以安裝開機(jī)管理程序的地方,有446 Bytes
· 分區(qū)表(partition table):記錄整顆硬盤分區(qū)的狀態(tài)仲锄,有64 Bytes
所謂的“分區(qū)”只是針對(duì)那個(gè)64Bytes的分區(qū)表進(jìn)行設(shè)置而已劲妙,每個(gè)分區(qū)記錄表記錄了該區(qū)段的啟始與結(jié)束的柱面號(hào)碼。當(dāng)系統(tǒng)要寫入磁盤時(shí)儒喊,一定會(huì)參考磁盤分區(qū)表镣奋,才能針對(duì)某個(gè)分區(qū)進(jìn)行數(shù)據(jù)的處理
## 由于分區(qū)表所在區(qū)塊僅有64Bytes容量,因此最多僅能有四組記錄區(qū)怀愧,每組記錄區(qū)記錄了該區(qū)段的啟始與結(jié)束的柱面號(hào)碼侨颈。一分區(qū)用4個(gè)字節(jié)存儲(chǔ)分區(qū)的總扇區(qū)數(shù),最大能表示2的32次方的扇區(qū)個(gè)數(shù)芯义,按每扇區(qū)512字節(jié)計(jì)算哈垢,每個(gè)分區(qū)最大不能超過(guò)2TB。磁盤容量超過(guò)2TB以后扛拨,分區(qū)的起始位置也就無(wú)法表示了耘分,所以MBR最大存儲(chǔ)數(shù)據(jù)量級(jí)是2TB
文件系統(tǒng)運(yùn)行過(guò)程
2.1 如何進(jìn)行存儲(chǔ)設(shè)備的空間組織和分配?以EXT2文件系統(tǒng)為例鬼癣。
? ? linux文件一般含有文件權(quán)限和(rwx)和文件屬性(擁有者陶贼、群組、時(shí)間參數(shù))以及文件實(shí)際數(shù)據(jù)待秃。
? ? ?文件系統(tǒng)通常會(huì)將這兩部份的數(shù)據(jù)分別存放在不同的區(qū)塊拜秧,權(quán)限與屬性放置到inode中一個(gè)文件占用一個(gè)inode,同時(shí)記錄此文件的數(shù)據(jù)所在的block號(hào)碼至于實(shí)際數(shù)據(jù)則放置到data block區(qū)塊中章郁。 另外枉氮,還有一個(gè)超級(jí)區(qū)塊 (superblock) 會(huì)記錄整個(gè)文件系統(tǒng)的整體信息志衍,包括inode與block的總量、使用量聊替、剩余量等楼肪。
? ? ?每個(gè)inode與block都有編號(hào),而每個(gè)文件都會(huì)占用一個(gè)inode惹悄,inode內(nèi)則有文件數(shù)據(jù)放置的block號(hào)碼春叫。
? ? 文件系統(tǒng)先格式化出inode與block的區(qū)塊,然后找到文件數(shù)據(jù)實(shí)際放置的block號(hào)碼泣港,之后再?gòu)拇疟P中一次性讀取相應(yīng)位置的數(shù)據(jù)暂殖。
? ? Ext2文件系統(tǒng)的格式化時(shí),創(chuàng)建多個(gè)區(qū)塊群組当纱,每個(gè)區(qū)塊群組都有獨(dú)立inode/block/superblock系統(tǒng)呛每。獨(dú)立的系統(tǒng)主要組成包括:Data Block、Inode Table坡氯、Inode對(duì)應(yīng)表晨横、區(qū)塊對(duì)應(yīng)表、檔案系統(tǒng)描述箫柳、Superblock
? ? Linux下的ext2創(chuàng)建一個(gè)一般文件時(shí)手形,ext2會(huì)分配一個(gè)inode與相對(duì)于該文件大小的block數(shù)量給該文件。
3.1系統(tǒng)通過(guò)掛載的信息可以找到掛載點(diǎn)的inode號(hào)碼滞时,此時(shí)就能夠得到根目錄的inode內(nèi)容叁幢,并依據(jù)該inode讀取根目錄的block內(nèi)的文件名數(shù)據(jù),再一層一層的往下讀到正確的文件名坪稽。