1,fat32中乙個檔案至少要占用整數個cluster,乙個cluster要占用2的整數次冪個數的sector,fat32中要使用cluster的原因是:因為如果要寫入乙個大檔案,如果用sector的配置方式,那麼sector數量就很大,並且分配在零散的空間,不便於管理,又由於cluster是連續的sector,所以可以加快訪問時間。
如何知道某個file/dir占用的起始cluster? 答:根據dir entry structure
如何知道某個file/dir含有哪些clusters? 答:根據fat table
2,為什麼fat12和fat16的rootdir單獨占用region,其大小由 bpb_rootentcnt指定,而fat32取消了這個,rootdir直接放在cluster2的位置?
答:如果開始就將rootdir裡的dir entry structire占用的cluster個數定下來的話,這樣根目錄下能放的目錄或者檔案個數就已經有了最大的限制,因為乙個dir entry struct占用32byte,所以乙個cluster能占用的dir entry struct個數是固定的。
3,當乙個目錄的檔案非常多導致乙個cluster不夠用的時候,系統可以再分配乙個cluster給這個目錄,同時修改這個目錄對應的fat表,所以上述方法使得子目錄的個數只受磁碟容量的限制。
4,根目錄的起始cluster是固定的(從bootsector可以讀出,fat32的root dir cluster通常為2),根目錄的dir entry的dir_attr為attr_volume_id,並且其dir entry裡的dir_fstcluslo為0,根目錄所在的cluster(fat32通常為cluster2)裡記錄了根目錄下子目錄或者根目錄下檔案的dir entry資訊,比如根目錄下有三個檔案 a b c和三個目錄d e f,那麼cluster2裡前會有6個dir entry,分別記錄a b c d e f的dir entry資訊,a b c檔案真正的內容則會根據cluster2裡a b c對應的dir entry找到存放檔案真正內容的cluster,存放檔案真正內容的cluster裡不會再次記錄檔案的dir entry資訊。
Oarcle學習筆記之 FAQ收集
1 例項和sid的關係是什麼?例項和資料庫是怎樣的關係?經常有人問sid 是什麼?在oracle 系統中sid 是乙個經常出現的變數,如環境變數oracle sid,初始化檔案initsid.ora,那究竟什麼是sid 呢?其實sid 就是oracle 例項的標識,不同的sid 對應不同的記憶體緩衝...
Oarcle學習筆記之 FAQ收集
1 例項和sid的關係是什麼?例項和資料庫是怎樣的關係?經常有人問sid 是什麼?在oracle 系統中sid 是乙個經常出現的變數,如環境變數oracle sid,初始化檔案initsid.ora,那究竟什麼是sid 呢?其實sid 就是oracle 例項的標識,不同的sid 對應不同的記憶體緩衝...
FAT32學習筆記(一)
從最簡單的開始,如何在fat32格式的u盤裡找到乙個檔案?如果有u盤,那麼可以拿實際的u盤做試驗,這裡可以使用乙個image檔案來做試驗,效果一樣。在整個實驗過程當中,會不停的用到如下幾條命令 mount test.img mnt umount mnt hexdump c s x n x test....