os_filesystem
os_filesystem
這是一個仿linux的虛擬文件系統,系統由一個虛擬磁盤文件承載,以文件讀寫模擬磁盤讀寫,不涉及底層驅動。
寫一個簡單的仿linux文件系統,首先需要設計好包含inode、block、superblock、虛擬磁盤佈局,空間分配等信息的基本框架。文件系統的開頭是一個superblock,包含系統的重要信息,包括inode和block的數量和大小。對於inode,一般來說需要佔磁盤空間的百分之一,不過這是個小系統,總大小才5M多一點,所以分配給inode區的空間很少,剩下的空間大部分是block區。
該文件系統的總體規劃如下: 
由於寫程序的時候時間比較緊張,只寫了4天就去驗收,所以代碼沒來得及優化,有的地方會顯得冗餘,大家不要見怪。
雖然時間有限,不過也額外實現了一個vi編輯器的功能,寫的比較簡陋,代碼也很亂,有時間改進一下。
總的來說,代碼還有待優化,歡迎多提意見,多挑毛病。
git clone https://github.com/windcode/os_filesystem.git
雙擊目錄中的MingOS.dsw文件,或者將該文件拖到VC++6.0界面中。


默認用戶為root,密碼為root








索引節點inode管理文件和目錄信息
使用成組鏈接法管理空閒block的分配
inode的分配/回收