文件系統(tǒng)的構(gòu)建實驗報告_第1頁
文件系統(tǒng)的構(gòu)建實驗報告_第2頁
文件系統(tǒng)的構(gòu)建實驗報告_第3頁
文件系統(tǒng)的構(gòu)建實驗報告_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

文件系統(tǒng)的構(gòu)建實驗報告實驗名稱:文件系統(tǒng)的構(gòu)建實驗?zāi)康模赫莆沾疟P的工作原理和操作系統(tǒng)進行文件管理的原理實驗原理:硬盤的MBR:MBR(MainBootRecord),按其字面上的理解即為主引導(dǎo)記錄區(qū),位于整個硬盤的0磁道0柱面1扇區(qū)。在總共512字節(jié)的主引導(dǎo)扇區(qū)中,MBR只占用了其中的446個字節(jié)(偏移0000--偏移01BD),另外的64個字節(jié)(偏移01BE--偏移01FD)交給了DPT(DiskPartitionTable硬盤分區(qū)表),最后兩個字節(jié)"55,AA"(偏移01FE-偏移01FF)是分區(qū)的結(jié)束標(biāo)志。這個整體構(gòu)成了硬盤的主引導(dǎo)扇區(qū)。硬盤依據(jù)分區(qū)表中的信息把硬盤劃分為最多四個分區(qū)(對于擴展分區(qū),可進一步劃分為多個邏輯分區(qū))。U盤采用類似的方法劃分分區(qū)。每個分區(qū)或軟盤上可建立獨立的文件系統(tǒng)。下圖是FAT文件系統(tǒng)空間分布結(jié)構(gòu)。引導(dǎo)扇區(qū)引導(dǎo)扇區(qū)FAT1FAT2根目錄區(qū)文件數(shù)據(jù)區(qū)實驗內(nèi)容:在掌握磁盤的工作原理和操作系統(tǒng)進行文件管理原理的基礎(chǔ)上,自行設(shè)計實現(xiàn)在磁盤上建立文件系統(tǒng)的軟件,該軟件應(yīng)該具有與Format類似的功能,至少支持一種文件系統(tǒng)格式,如FAT、NTFS或EXT2,至少能夠?qū)σ环N媒體進行格式化,如軟盤,U盤或硬盤(不得在實驗室的機器上進行硬盤格式化的實驗)等。不能直接調(diào)用操作系統(tǒng)提供的格式化工具或類似SHFormatDrive()的高層系統(tǒng)函數(shù)實現(xiàn)該軟件。在Windows環(huán)境可使用biosdisk()函數(shù)完成底層盤操作,在Linux環(huán)境上可參考format的源代碼。比較自己設(shè)計實現(xiàn)的軟件.與FORMAT,分析存在什么異同。背景知識介紹一個分區(qū)或磁盤能作為文件系統(tǒng)使用前,需要初始化,并將記錄數(shù)據(jù)結(jié)構(gòu)寫到磁盤上。這個過程就叫建立文件系統(tǒng)。大部分linux文件系統(tǒng)種類具有類似的通用結(jié)構(gòu)。其中心概念是超級塊superblock,i節(jié)點inode,數(shù)據(jù)塊datablock,目錄塊directoryblock,和間接塊indirectionblock。超級塊包括文件系統(tǒng)的總體信息。i節(jié)點包括除了名字外的一個文件的所有信息,名字與i節(jié)點數(shù)目一起存在目錄中,目錄條目包括文件名和文件的i節(jié)點數(shù)目。i節(jié)點包括幾個數(shù)據(jù)塊的數(shù)目,用于存儲文件的數(shù)據(jù)。i節(jié)點中只有少量數(shù)據(jù)塊數(shù)的空間,如果需要更多,會動態(tài)分配指向數(shù)據(jù)塊的指針空間。這些動態(tài)分配的塊是間接塊;為了找到數(shù)據(jù)塊,這名字指出它必須先找到間接塊的號碼。Linux文件系統(tǒng)通常允許在文件中產(chǎn)生孔(hole),意思是文件系統(tǒng)假裝文件中有一個特殊的位置只有0字節(jié),但沒有為這文件的這個位置保留實際的磁盤空間。這對小的二進制文件經(jīng)常發(fā)生,Linux共享庫、一些數(shù)據(jù)庫和其他一些特殊情況。設(shè)計方案1、用一個文件(3)模擬一個物理硬盤,通過對該文件格式化操作,模擬linux文件系統(tǒng)中的文件操作。2、將文件劃分為四個分區(qū)預(yù)計的實驗結(jié)果文件會被格式化,原先文件里的內(nèi)容都會刪除,創(chuàng)建新的文件系統(tǒng)。關(guān)鍵代碼的分析1、i節(jié)點結(jié)構(gòu)structinode{ structinode*i_forw; structinode*i_back; chari_flag; unsignedinti_ino;//磁盤i節(jié)點標(biāo)號 unsignedinti_count;//引用計數(shù) unsignedshortdi_number;//關(guān)聯(lián)文件數(shù) unsignedshortdi_mode;//存取權(quán)限 unsignedshortdi_uid;//磁盤i節(jié)點用戶id unsignedshortdi_gid;//磁盤i節(jié)點住id unsignedintdi_size;//大小 unsignedintdi_addr[NADDR];//物理塊號};2、目錄項結(jié)構(gòu)structdirect{ chard_name[DIRSIZ];//目錄名 unsignedintd_ino;//目錄號};3、超級塊structfilsys{ unsignedshorts_isize;//i節(jié)點塊塊數(shù) unsignedlongs_fsize;//數(shù)據(jù)塊塊數(shù) unsignedints_nfree;//空閑塊塊數(shù) unsignedshorts_pfree;//空閑塊指針 unsignedints_free[NICFREE];//空閑塊堆棧 unsignedints_ninode;//空閑i節(jié)點數(shù) unsignedshorts_pinode;//空閑i節(jié)點指針 unsignedints_inode[NICINOD];//空閑i節(jié)點數(shù)組 unsignedints_rinode;//超級塊修改標(biāo)志 chars_fmod;};4、函數(shù)說明ifree:釋放i節(jié)點區(qū)函數(shù)bfree:磁盤塊釋放函數(shù)iget:i節(jié)點內(nèi)容獲取函數(shù)iput:i節(jié)點內(nèi)容釋放函數(shù)format:格式化函數(shù)調(diào)試記錄實際的實驗結(jié)果fzu@fzu-desktop:~/OS$gcc-w-oformatformat.cfzu@fzu-desktop:~/OS$./format請輸入文件的位置/home/fzu/OS/3formatsuccussfzu@fzu-desktop:~/OS$fzu@fzu-desktop:~/OS$vim3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論