操作系统设计与实现:基于LoongArch架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

0.1.3 文件系统

文件系统的主要作用是组织、管理存放在硬盘上的文件。在使用硬盘存放文件之前,需要将硬盘格式化为某种文件系统格式。MaQueOS目前只支持xtfs文件系统格式。如图8.1所示,在xtfs文件系统中,文件的数据存储在数据块中,每个文件对应1个用于管理文件的inode数据结构,所有inode数据结构存放在0号数据块的inode表中。在xtfs文件系统中,使用存放在1号数据块中的数据块位图表示数据块占用情况,若数据块位图中的比特为1,则表示对应的数据块已被占用;若为0,则表示处于空闲状态。

xtfs文件系统中数据块的大小为512B,因为每个数据块在数据块位图中占用1位,xtfs文件系统共有512×8=4096个数据块,所以在xtfs文件系统中最多可以存放4096×512B=2MB数据。因为inode数据结构的大小为16B,所以xtfs文件系统最多支持512÷16=32个文件。xtfs文件系统只能存放常规文件和可执行文件,不能存放目录文件,所以在xtfs文件系统中查找文件的操作非常简单,不用考虑文件路径的因素。

为了制作根文件系统,MaQueOS提供了两个工具:format和copy。其中,format工具的作用是将一个硬盘镜像文件格式化为xtfs文件系统格式,copy工具的作用是把一个文件复制到xtfs文件系统中。为了给应用程序提供挂载根文件系统的功能,MaQueOS实现了mount系统调用(如图0.1所示)。

MaQueOS支持xtfs文件系统中文件的创建与删除、打开与关闭,以及读写操作。为了给应用程序提供这6个基本的文件操作功能,MaQueOS对应地实现了6个系统调用:create、destroy、open、close、write和read(如图0.1所示)。