文件系統是一個邏輯上的概念,本身與磁盤沒有什么關系,它是一個外圍性永久存儲設備,我們知道,計算機共有五大部件,存儲設備是一種,內存是個臨時性質的存儲設備,無論是關機還是斷電,存在里面的數據都會消失,我們需要一個永久性存儲的設備,來彌補內存只是臨時存儲性。
對于Linux來說,其哲學思想之一就是一切皆文件,我們Linux上的訪問設備全是通過文件接口來實現的,這就如同說我們訪問設備如同訪問一個文件一樣。因為它們都是使用的是文件系統接口。
在操作系統中,管理磁盤的文件系統有很多種,Windows的NTFS和FAT,Linux的EXT、xfs系列等都是管理磁盤的文件系統,不過它們的分區方式不一樣,Windows分區方式就是直接就是分為C盤和D盤,兩個都是相互獨立的,讓我們很直觀看到,而Linux不是,Linux是除了”/”以外,你就看不到其它任何的獨立分區,但這并不代表它不能支持多個文件系統,只不過我們就是帶著”/”一起訪問罷了。
當我們格式化完成以后,我們的用戶以為格式化就是能刪除所有的數據,這個本質倒是也沒錯,不過有點不同的就是,格式化是寫文件系統的,它會把磁盤按照邏輯上劃分為元數據區域和數據區域,元數據區域記錄的是Inode節點和超級快等位圖信息,數據區域才是真正存儲的數據,我們的格式化分為低級格式化和高級格式化,低級格式化是廠商在硬盤上劃分出一個個磁道,而高級格式化是我們用戶要使用磁盤在邏輯上建立的一種文件系統。
在文件系統上我們大部分看到這么兩類,一種是目錄,一種是文件,其實目錄是一個特殊的文件,它是一種路徑的映射,在邏輯上建立文件系統之后,我們就可以使用磁盤了,它們的創建過程相對來說從概念上理解也不是那么容易,首先,它們要將磁盤在邏輯上劃分一個一個的塊兒,這些塊的大小是根據你規劃的分區容量自動來給你進行設定的常見的從1K到4K,然后我們在元數據區域建立一個位圖,這個位圖是標識那個塊是被使用,使用的話,標記為1,沒有使用的話,標記為0,不過,在前面的512個字節你是沒辦法使用的,不但沒辦法使用,要是破壞了你的系統開機就啟動不了,這個分區就叫MBR它是記錄了你操作系統的bootloeader,用于加載內核,然后64個字節中,每16個字節記錄一個分區,總共可以表示四個主分區,最后2個字節是你的驗證,如果劃分好分區的話,會顯示55AA。
我們繼續上次位圖的話題,使用的話,標記為1,不使用的話,標記為0,但是我有一千個位圖,要存儲數據的話,位圖查找半天,才查找第五百個是0,這也是一件很麻煩的事情,所有就開始事先把這些個塊劃分成為一個一個的塊組,各自管理自己的,數據存儲的時候,可以在這個塊兒上存儲一個,可以在另一個塊上存儲一個,提高了硬盤的寫入速度。
還有一個就是超級塊,它的作用就是存儲文件系統的大小,有多少是空的和已經填滿的占用多少,以及它們各自的總數和其它諸如此類的信息。要使用一個數據來進行數據訪問,那么第一個要訪問的就是超級塊。所以,如果超級塊壞了,那磁盤就真的沒有救了
超級塊占用第1號物理塊,是文件系統的控制塊,超級塊包括:文件系統大小、空閑塊的數目、空閑塊的索引表、以及空閑i節點的數目,空閑i節點的索引表、封鎖標記等。超級塊是系統為文件分配存儲空間。
原創文章,作者:劉 祥宇,如若轉載,請注明出處:http://www.www58058.com/58948