项目简介
这是一个基于C语言开发的迷你型类Linux操作系统,目标是实现一个简单的操作系统内核,具备基本的内存管理、进程管理、文件系统以及多处理器支持等功能。虽代码规范性欠佳且注释较少,但展示了操作系统内核的基本工作原理。
项目的主要特性和功能
- 内存管理:实现Buddy分页系统和Slub内存分配系统,支持内核与用户进程地址空间的虚拟内存管理。
- 进程管理:实现进程描述符和进程地址空间管理,支持进程创建、调度、中断与异常处理,实现fork和写时复制机制。
- 文件系统:实现虚拟文件系统(VFS),支持基本文件操作和进程间通信。
- 多处理器支持:支持SMP(对称多处理)架构,实现多处理器的启动和调度。
- 系统调用:实现多个系统调用,如fork、execve、brk等。
安装使用步骤
下载源码
bash
cd MYOS
编译内核
bash
make qemu
若遇到undefined reference to __udivdi3
错误,安装gcc-4.8-multilib
:
bash
sudo apt-get install gcc-4.8-multilib
运行内核
编译完成后,内核将在QEMU虚拟机中自动运行。
制作U盘启动
- 安装
grub2
程序。 - 插入U盘并执行:
bash sudo grub-install --root-directory=/mnt --no-floppy /dev/sdb
- 将
grub.cfg
拷贝到/mnt/boot/grub
目录下,将内核文件kern
拷贝到/mnt/boot
目录下。 - 使用
fdisk
将/dev/sdb1
设置为启动分区。
通过以上步骤,可成功编译并运行这个迷你型类Linux操作系统,还能在QEMU虚拟机或实际硬件上进行测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】