在我的仿生DOS系统各类数据准备好之后,就需要设计一个简易的文件系统了。由于文件系统需要读写硬盘,这部分功能在文章“计算机自制操作系统(三):读写磁盘操作”已经实现。下面就需要设计各类文件操作的逻辑流程了。
一、格式化硬盘
命令—format,以下为程序设计流程图:
二、新建目录
命令—mkdir dirname,以下为程序设计流程图:
其中dirid、parentsid 、dirname写入目录数据结构程序流程图为:
三、切换目录
命令—cd
切换到根目录: cd /
切换到子目录: cd dirname
切换到父目录: cd ..
四、显示当前目录
命令—dir,以下为程序设计流程图:
五、删除目录
命令—deldir dirname,以下为程序设计流程图:
六、文件操作
文件操作同样包括创建、删除、移动等,与目录操作类似,但文件操作更加复杂一点,因为文件操作比目录操作要多一个文件内容存储寻址的过程。在此略去。
七、编码实现
按以上流程,用汇编语言将逻辑写进我们的操作系统内核程序:Kernel.asm,就可以实现了一个简易的文件操作系统。以下为我的操作系统运行图:
支持各类命令操作:
八、 总结
我的仿生DOS操作系统编制算是完成了,由于全部采用汇编语言编写,调试的工作量还是比较大的。所以浅尝而止,目前仅支持目录的部分操作命令,对于文件的操作,基本原理都一致,就不再耗费精力了。最大的感受是,别小看DOS系统,我这个简陋的文件系统都有很多的缺陷:比如限制了最大的目录数量、文件数量、算法效率低等,并不能很好的进行适应性扩展。但它却是文件系统设计的有效尝试,至少我做出了一个可以直接让用户操作磁盘的操作系统,迈出了前进道路上的一大步。
下一章,我将贴出这个仿生DOS操作系统的源代码,供有兴趣的人士学习研究。