九色91_成人精品一区二区三区中文字幕_国产精品久久久久一区二区三区_欧美精品久久_国产精品99久久久久久久vr_www.国产视频

Hello! 歡迎來到小浪云!


【Linux】基礎(chǔ)IO_文件系統(tǒng)


avatar
小浪云 2025-04-18 19

磁盤是一種存儲數(shù)據(jù)的設(shè)備,早期計算機主要使用軟磁盤(軟盤),而如今主要使用硬磁盤(硬盤)。當(dāng)前市場上的硬盤主要分為機械硬盤和固態(tài)硬盤,兩者各有優(yōu)缺點。

機械硬盤:容量大、價格低廉、但讀取速度較慢、體積較大(許多公司仍在使用,因為成本較低)。固態(tài)硬盤:讀取速度快、體積小、但價格較高,且存儲空間有限(當(dāng)前大多數(shù)計算機使用固態(tài)硬盤)。

【Linux】基礎(chǔ)IO_文件系統(tǒng)

這里我們主要講解的是機械硬盤,顧名思義,機械硬盤是計算機上唯一的一個機械設(shè)備。

基本結(jié)構(gòu)

機械硬盤的基本結(jié)構(gòu)主要包含以下部分:

盤片:一片兩面,每一面都可以存儲數(shù)據(jù),有一摞盤片。 磁頭:盤片每一面各有一個磁頭,負(fù)責(zé)盤面數(shù)據(jù)的讀取。 傳動軸:用來控制磁頭的進(jìn)退。 主軸:控制盤片的穩(wěn)定旋轉(zhuǎn)。

【Linux】基礎(chǔ)IO_文件系統(tǒng)

存儲結(jié)構(gòu)

機械硬盤的物理存儲結(jié)構(gòu)主要分為磁道、扇區(qū)和柱面。(部分內(nèi)容來源于:硬盤結(jié)構(gòu)(機械硬盤和固態(tài)硬盤)詳解)

【Linux】基礎(chǔ)IO_文件系統(tǒng)

磁道:每個盤片在邏輯上有許多不同半徑的同心圓,最外面的同心圓稱為0磁道。我們將每個同心圓稱為磁道(注意,磁道只是邏輯結(jié)構(gòu),盤面上并沒有實際的同心圓)。 扇區(qū):在磁盤上,每個同心圓是磁道,從圓心向外呈放射狀產(chǎn)生分割線(扇骨),將每個磁道等分為若干弧段,每個弧段就是一個扇區(qū)。每個扇區(qū)的大小固定,為512Byte。扇區(qū)也是磁盤的最小存儲單位。 柱面:不同盤片中的相同磁道形成的一個圓柱。

數(shù)據(jù)的寫入與讀取

磁盤的存儲介質(zhì)為磁性材料,計算機內(nèi)的數(shù)據(jù)由大量的0和1組成,磁頭將這些電信號轉(zhuǎn)化為磁信號。機械硬盤通過磁頭對南北極的更改來實現(xiàn)數(shù)據(jù)的讀取與寫入。當(dāng)通過CHS定位到具體扇區(qū)時:

向磁盤中寫入數(shù)據(jù):N -> S (0->1) 刪除數(shù)據(jù):S -> N (1->0) 數(shù)據(jù)的寫入/刪除與讀取的本質(zhì)是更改基本元素的南北極,讀取南北極。

邏輯抽象

如上所說,如果操作系統(tǒng)(OS)能知道任意的CHS地址,就能訪問任意一個扇區(qū),但OS內(nèi)部并不是直接使用CHS定位法。

這是因為OS是一個用于管理軟硬件資源的軟件,而CHS定位法是磁盤作為硬件使用的方法。由于硬件可能會隨著時代的發(fā)展而不斷改變,如果此時OS采用CHS,那么OS也需要隨著硬件的更新而更新。耦合度太高,成本太大。因此,為了實現(xiàn)與硬件的解耦,OS采用一種新的定位方法——LBA邏輯塊地址。

如下圖所示:將磁道從最外層鋪開,就像扯膠帶一樣拉開,就會得到一串連續(xù)的線性空間,我們把它想象成一個大數(shù)組,如下圖所示:

【Linux】基礎(chǔ)IO_文件系統(tǒng)

此時計算機的常規(guī)訪問方式,就變成了某一個數(shù)據(jù)塊的起始地址+偏移量。這樣也就完成了CHS到LBA的轉(zhuǎn)換。因此,OS對于磁盤的管理,實際上就轉(zhuǎn)化為了對這個大數(shù)組的管理。

當(dāng)然,OS進(jìn)行IO的基本單位是可以調(diào)整的,一般都是4KB,即一個數(shù)據(jù)塊的大小,這也是為什么磁盤會被稱為塊設(shè)備的原因之一。這樣也是為了提高IO效率,根據(jù)內(nèi)存對齊原則。

文件系統(tǒng)分治管理

【Linux】基礎(chǔ)IO_文件系統(tǒng)

Windows下的分盤:

【Linux】基礎(chǔ)IO_文件系統(tǒng)

這種管理策略,有點類似于我們國內(nèi)為了管理好整個國家,設(shè)置了各個省,而為了管理好一個省,又設(shè)置了各個市。只不過計算機的這種管理方式要更加簡單些,因為管理的策略都一樣,不像國內(nèi)各個省市的管理要考慮當(dāng)?shù)鼐唧w情況。

塊組內(nèi)的信息

如上所說,OS只需要管理好一個塊組,就能管理好所有的塊組,進(jìn)而管理好一個分區(qū),再進(jìn)而管理好整個文件系統(tǒng)。那么,一個塊組內(nèi),都包含些什么呢?如下所示:

【Linux】基礎(chǔ)IO_文件系統(tǒng)

上面提到了一個inode節(jié)點,我們知道,Linux下一切皆文件,文件=內(nèi)容+屬性,Linux是將文件的內(nèi)容與屬性的數(shù)據(jù)分離開來,一個inode節(jié)點內(nèi),保存文件的各種屬性信息,比如:文件的讀寫權(quán)限、擁有者、文件大小、對應(yīng)的inode編號等。而文件的內(nèi)容數(shù)據(jù),則保存在data blocks中對應(yīng)的一個或多個數(shù)據(jù)塊中。

這里需要注意的是:

在文件的inode中,不包含文件名。 目錄也是文件,也有自己的inode編號,其中目錄的數(shù)據(jù)塊中存放的則是該目錄下的文件名與對應(yīng)的inode編號的映射關(guān)系。兩者互為Key值。 inode編號只在該分組所在的分區(qū)內(nèi)有效。通過inode編號,就可以先確定所在分區(qū),再確定所在分組。 一個文件對應(yīng)一個inode編號。 任何文件,都在處于一個目錄內(nèi)。所以可以先通過inode table找到目錄的inode編號,找到inode編號,就找到了inode節(jié)點,節(jié)點內(nèi)記載著各種屬性,進(jìn)而找到Block Bitmap的使用情況,根據(jù)Block Bitmap再來確定目錄所使用的數(shù)據(jù)塊,目錄的數(shù)據(jù)塊內(nèi)包含目錄下的文件名與文件的inode編號的映射關(guān)系,從而找到目錄下的某一個具體文件。我們通過指令ls -l -i來查看文件的inode編號。

【Linux】基礎(chǔ)IO_文件系統(tǒng)

磁盤文件的創(chuàng)建與刪除

文件創(chuàng)建

對于文件的創(chuàng)建,首先會找到一個空閑的inode節(jié)點,將文件屬性記錄在該節(jié)點內(nèi),同時將該inode節(jié)點對應(yīng)的inode Bitmap的比特位由0置1。 尋找空閑的數(shù)據(jù)塊,用來存儲文件的相關(guān)內(nèi)容,并將數(shù)據(jù)塊的相關(guān)信息填入inode節(jié)點中,同時將對應(yīng)的Block Bitmap由0置1。 將該文件名添加到當(dāng)前目錄文件的date block中,并將該文件名與對應(yīng)的inode編號連接起來。

文件刪除

文件的刪除,其實只需要對位圖信息進(jìn)行修改即可。 首先根據(jù)文件所在的目錄。目錄中的date Block記載著該目錄下的文件名與inode編號的映射關(guān)系,根據(jù)映射關(guān)系,找到該文件對應(yīng)的inode。 根據(jù)inode,將對應(yīng)的Block Bitmap由1置0(刪除內(nèi)容)。 再根據(jù)inode,將對應(yīng)的inode Bitmap由1置0。(刪除屬性)。

補充

補充一

我們知道,在文件的inode節(jié)點中,記載了數(shù)據(jù)塊的相關(guān)使用信息,可能是用一個數(shù)組來記載,但是此時可能會面臨一個問題,就是假如一個文件使用了15個數(shù)據(jù)塊,而一個數(shù)據(jù)塊的大小為4KB,也不是意味著該文件最多能放入15*4=60KB的內(nèi)容?

答案是否定的,因為數(shù)據(jù)塊里面有的可能并不是放著文件的內(nèi)容,而是存放著該文件使用的其它數(shù)據(jù)塊的索引。(有點類似套娃)。如下所示:

【Linux】基礎(chǔ)IO_文件系統(tǒng)

如上所示,一個數(shù)據(jù)塊內(nèi),可能存在多級的索引關(guān)系,從而實現(xiàn)對大量數(shù)據(jù)的存儲。

補充二

如上所說,文件的內(nèi)容采用數(shù)據(jù)塊存儲,而一個數(shù)據(jù)塊的大小為4KB,那么就可能會出現(xiàn)文件系統(tǒng)中存在大量的,內(nèi)容非常少導(dǎo)致實際使用的空間很小(可能才幾個字節(jié),甚至更小),此時就會出現(xiàn)大量的空間浪費。

生活原本沉悶,但跑起來就會有風(fēng)!?

相關(guān)閱讀

主站蜘蛛池模板: 国产精品欧美一区二区 | 黄色片视频免费 | 丁香五月网久久综合 | 亚洲午夜精品一区二区三区 | 国产精品123区 | 美女激情av | 99久久亚洲 | av中文在线播放 | 亚洲综合视频 | 亚洲小视频在线观看 | 久久久久国产一区二区三区 | 国产精品毛片一区二区在线看 | 免费黄篇 | 91国在线视频 | 欧美日韩a| 99热在这里只有精品 | 激情毛片 | 天天av网 | 91精品国产手机 | 精品久久久av | 日本黄色影片在线观看 | 国产精品2区 | 男女网站视频 | 成人在线免费观看 | 538在线精品 | 97久久精品午夜一区二区 | 成人高清视频在线观看 | 四虎成人免费视频 | 亚洲欧美在线观看 | 99这里只有精品视频 | 天堂一区 | 亚洲成人精品一区 | www.亚洲| 人成久久 | 欧美精品二区 | 亚洲精品 在线播放 | 精品免费在线 | 久久久久无码国产精品一区 | 日韩有码在线播放 | 99精品久久 | 97av在线 |