WangFuJie Blog

路在脚下,心向远方

自制操作系统 - 串口设备驱动

串口设备驱动

串口是一种 IBM-PC 兼容机上的传统通信端口, 目前已经被USB取代。串口驱动对系统开发者来说实现起来要比 USB 简单的多,通常用于调试的目的,无需复杂的硬件操作,可以在操作系统初始化的早期使用串口。我们这里的目的也是把调试的信息放到串口里面。

自制操作系统 - 用户程序加载与执行

用户程序加载与执行

用户程序最终是被编译为ELF文件,然后被操作系统加载执行。本节我们将使用系统对ELF文件进行解析,并通过系统调用进行执行。我们并不使用ELF文件的节头,它一般被用于编译器、调试器等。

自制操作系统 - 映射内存系统调用mmap&munmap

映射内存系统调用mmap&munmap

mmap 是 Linux/Unix 系统中非常重要的一个系统调用,它的作用是将文件或设备映射到进程的虚拟内存空间中。用来实现虚拟内存的映射,实现这个系统调用需要调整内存部署,用户映射内存开始位置调整到128M,栈顶放到256M的位置。

自制操作系统 - 文件系统格式化与虚拟磁盘

文件系统格式化与虚拟磁盘

前边文章中,我们一直是依赖开发机进行文件系统的格式化,本文我们自行实现文件系统格式化,通过系统调用来实现,这样简单一些,因为已经有了写磁盘的系统调用。另外本文还将实现虚拟磁盘和标准输入输出。虚拟磁盘是将一块内存当做磁盘进行读写,这样设备文件就可以直接写入虚拟磁盘。

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

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

完成了一系列文件系统的读写操作,最后一个需要实现的系统调用时文件状态的获取,和文件系统的挂载卸载。本文重点进行文件系统的挂载,涉及mount和umount两个系统调用。