WangFuJie Blog

路在脚下,心向远方

自制操作系统 - 文件系统相关系统调用(一)

文件系统相关系统调用(一)

用户态对文件的操作需要通过系统调用来实现,本文中我们将会实现目录相关的系统调用和文件的初始化,包括创建目录、删除目录,硬链接。在文件初始化中创建系统文件表和进程文件表。

自制操作系统 - 文件系统相关操作(二)

文件系统相关操作(二)

本节继续实现对文件系统的操作,包括对目录的操作如添加目录项,获取目录下的文件、获取文件的innode和文件父目录的inode。并且通过inode实现对文件的读写和清空操作。

自制操作系统 - 文件系统相关操作(一)

文件系统相关操作(一)

创建完文件系统后,应该实现对文件系统的操作。本节将实现文件系统的位图管理、inode管理以及文件状态的管理,并实现umask系统调用来设置进程的默认权限。

自制操作系统 - 创建文件系统

创建文件系统

为简单起见,我们使用 minix 第一版文件系统。我们优先使用现成的fdisk,mkfs命令等虚拟磁盘进行分区和格式化。在本文中介绍块、inode、超级块、目录、根超级块等概念。并对文件系统进行代码实现。

自制操作系统 - 硬盘调度算法和数据结构

硬盘调度算法和数据结构

由于磁盘读写有性能瓶颈,因此需要一系列算法来提搞读写效率,第一个是电梯算法,它的作用是让磁头的综合移动距离最小。第二个是高速缓冲机制,依赖内存来缓冲磁盘的数据,对内存进行读写,这样就可以多次读写一次刷回磁盘。