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的分配/回收