文件系统(一)

又是文件系统。前面已经提到过一次文件系统的实现了,为什么这里还要再介绍一边文件系统呢?原因是前面介绍的文件系统访问比较简单,仅仅是读取固定的几个文件。而这里,为了保证装载器的灵活性,这里的文件系统设计复杂多了。而且由于是C++实现,代码可读性也提高了。以后在内核中,我们还需要处理一次文件系统,那是操作系统中正式使用的文件系统。这里我们先来看一个相对简单的实现。

 

 

 

上图中,我们看到这里一共有三个接口。IFileSystem代表一个文件系统,FAT16类从这里继承。同时FAT16类里面包含有一个块设备,文件系统就建立在这个块设备上。IFileSystem接口只有一个方法,那就是取根目录

 

 

 

文件系统中的目录被抽象成IDirectory接口,这个接口有3个方法。分别是取目录名,枚举子目录,和枚举文件

 

最后IFile代表一个文件,在其上我们要实现读文件的接口。由于RMOSLDR中不需要进行文件写操作,所以我们也不会实现写文件操作。

 

 

在IFileSystem,IDirectory和IFile三个接口下面,我们可以为每种文件系统创建一个实现。在最前面的图中,我们看到这里我们会为FAT16文件系统设计一个实现。我们将从下节开始介绍这个实现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值