日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

内核中根据inode得到文件名_聊聊DOS操作系统中的文件系统FAT12

發布時間:2023/12/4 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内核中根据inode得到文件名_聊聊DOS操作系统中的文件系统FAT12 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面我們更多的集中在Linux系統下文件系統的介紹,是時候介紹一下其它文件系統了。今天我們介紹一下Windows操作系統下的文件系統,也就是FAT文件系統。嚴格的來說其實是DOS的文件系統。今天我們介紹一下FAT最古老的版本,FAT12文件系統的內容。

FAT文件系統的磁盤布局

在學習文件系統更多細節之前我們有必要了解一下它的整體磁盤布局,也就是數據是如何放置的。這樣便于我們對該文件系統進行更加深入的理解。

如上圖所示,FAT文件系統分為5個主要區域,分別是引導程序區,FAT1,FAT2,目錄文件項和文件數據。其中FAT1和FAT2也就是文件分配表(File Allocate Table),它是FAT文件系統的核心,用于描述磁盤空間的使用情況。需要注意的是,這里的數值只是一個示例,并非固定不變,通常需要根據引導扇區的數據進行計算得到。

引導扇區

引導扇區是Windows操作系統下特有的,包含操作系統引導的作用。對于文件系統而言,這個扇區的作用其實與Linux文件系統的超級塊很像,其中包含著對文件系統整體的描述信息。如下圖所示是該扇區的前部分內容,其中偏移22的地方描述了FAT表的大小。

可以看出,其實FAT文件系統的磁盤布局是動態的。在圖一中描述的偏移信息并非一成不變的,而是在格式化的時候確定的,而且該信息可以在啟動扇區中找到。

目錄文件項

這里相當于FAT文件系統的根目錄。所有的文件或者目錄都要以這里為起始位置。這里每個文件或者目錄都是通過下面這個結構圖描述的。這里面包含文件名稱,擴展名,文件屬性和文件的數據位置等內容。

上述數據結構與Linux中的inode類似,可以看出每一項占用32字節的空間。這樣磁盤布局中的目錄文件項空間就可以細化成下圖這樣。其中每一個方塊代表上圖中的一個數據結構。這個數據結構里面比較重要的內容是文件名和文件數據的首地址。

有了文件數據的首地址,我們就知道文件的數據存儲在什么地方了。那么其它數據如何找到呢?這個時候就用到文件分配表了。

FAT-文件分配表

如果我們將FAT表放大,對于FAT12來說,它是由很多12位的數字構成。這些12位的數字稱為一個FAT表項,每一項與文件數據區的一個簇相對應。這個表項即表示了對應的數據簇是否被使用,又表示了所在文件的下一個數據簇的位置,具體差異由其中的數值表示。

為了便于理解FAT的作用,我們舉一個具體的例子,具體如下圖所示。假設有個文件file1.txt,我們根據目錄文件項知道其其實的簇地址是0x05,這個是該文件第一個簇的位置,然后根據簇地址就能找到FAT中對應的表項。根據表項內容,我們可以知道下一個簇的位置,以此類推,我們可以找到該文件的所有數據。

如果我們簡化一下這個結構,其實整個關系就是一個單向鏈表的關系,我們可以將FAT表項理解為next指針,簇則是data數據。只不過FAT表項和簇是通過地址偏移建立了兩者之間的關系。上圖可以簡化為下圖所示的樣子。

數據實例分析

我們可以通過實例來分析一下FAT的數據布局情況。假設我們采用Ubuntu18.04平臺。此時我們可以通過dd命令生成一個1MB的文件。然后通過loop設備將文件模擬成一個塊設備。之后就可以通過mkfs.fat進行格式化了。下面是格式化完后創建的文件。

完成上述操作后,我們其實就相當于在文件中創建了一個FAT文件系統了。然后我們可以通過vim打開這個文件分析其中的數據。比如下面是引導扇區的內容,我們可以將其中的內容與前面表格中相關數據對應來學習,這樣我們就可以有更深入的理解。

今天的內容先到這里,希望對大家有所幫助。后面我們專門寫一篇文章,介紹如何對磁盤數據進行分析。

總結

以上是生活随笔為你收集整理的内核中根据inode得到文件名_聊聊DOS操作系统中的文件系统FAT12的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。