Linux與windows的文件系統結構


昨天新哥問我iNode的區別,支支吾吾說了好久也沒講清楚,自己回來趕緊百度了一下

照例先搬磚

一.文件存儲

文件存儲在硬盤上,硬盤的最小存儲單位叫做“扇區”。每個扇區存512字節,操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣

效率太低,而是一次連續地讀取多個扇區,即一次性讀取一個塊。 這種由多個扇區組成的“塊”,是文件存取的最小單位。“塊”的大小,最常見的是

4kn,即連續八個sector組成一個block。

文件數據都存儲在“塊”中,那么很顯然,我們還必須找到一個地方存儲文件的元信息,比如文件的創建者,文件的創建日期,

文件的大小等等。這種存儲文件元信息的區域就叫做inode,中文譯名為“索引節點”

inode包含文件的元信息,包括以下內容

1.文件的字節數

2.文件擁有者的userID

3.文件的GroupID

4.文件的讀.寫.執行權限

5.文件的時間戳 ctime指的是inode上一次改變 的時間(權限,屬性)

                     mtime指的是inode上一次修改的時間(內容)

                    atime指的是上一次的訪問時間

                    但實際上,會因為修該內容而導致mtime(屬性)發生變化,從而間接引起ctime變化

二.inode的大小

inode也會消耗硬盤空間,所以硬盤格式化的時候,操作系統自動將硬盤分成兩個區域。一個是數據區,存文件數據;另一個是

iNode區,存放inode所包含的信息,每個inode節點的大小,一般是128字節或256字節。inode節點的總數,

在格式化時就給定。

unix系統內部不使用文件名,而是使用inode號碼來識別文件。

打開文件的過程

1.系統找到這個文件名對應的inode號碼;其次,通過inode號碼,獲取inode信息;

最后,根據inode信息,找到文件數據所在的block,讀出數據

一個inode對應多個文件的情況稱之為硬連接,修改一個文件內容會影響到所有文件名

但刪除一個文件不會影響到另外一個文件的訪問

二.Windows Fat文件結構

保留扇區

      位於最開始的位置。第一個保留扇區是引導區(分區引導)

FAT區域

      它包含有兩份文件分配表,冗余考慮,它是分區信息的映射表指示簇是如何存儲的

根目錄區域

       它是根目錄中存儲文件和目錄信息的目錄表,在FAT32下它可以存在分區中的任何位置。

數據DATA區

整個磁盤應該是這樣

 

 

我們通過bpb,獲取每個fat表的所占字節,保留扇區,從而得知fdt的起始扇區

通過fdt得到文件的首簇號,並通過首簇號得到文件的起始扇區位置。

讀取文件在數據區中的記錄。

個人感覺,通過fdt表定位到文件首簇,通過fat表(它記錄着文件如何被分散在不同的扇區中),形成簇鏈。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM