Skip to content

woshixty/Diy-X86_OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

从 0 开始手写 x86 Linux 操作系统 👨‍💻💻

“万物皆文件,唯有内存最真实。” —— 一个正在手搓内核的C++程序员

🧠 项目简介

这个仓库是我跟着 李述铜老师 的课程《从0开始手写x86 Linux操作系统》边学边写的实战项目,试图重新认识“计算机到底是怎么动起来的”。

🚀 当前进度(持续更新中)

  • x86保护模式下的编程
  • 引导程序:接管控制权
  • 加载器loader的实现
  • 中断与异常处理
  • 日志与printf格式化输出
  • 实现简单的进程切换
  • 实现链表数据结构
  • 进程的管理与延时
  • 进程间的同步与互斥
  • 虚拟内存管理和保护模式
  • 隔离操作系统与进程
  • 建立系统调用
  • 新进程的加载与创建
  • 使用c标准库中的printf输出
  • 使用控制台与键盘进行输入输出
  • 设备管理与文件系统
  • 实现一个命令行解释器
  • 使用文件系统管理硬件设备
  • 磁盘与fat16文件系统

📌 总目标:写出一个可以跑在 qemu/bochs/真实硬件 上的 mini Linux 内核!

📸 项目预览

系统功能如下:

  • 支持多进程运行
  • 支持shell加载磁盘上应用程序运行
  • 支持虚拟内存管理,实现进程之间的隔离
  • 键盘和显示器的支持
  • 引用标准C库,使得应用程序开发更加方便
  • 十余个系统调用:fork()、execve()、open()、write()、exit()等
  • 进程与操作系统不同特权级分离

系统结构

运行效果

📚 学习资料

About

手搓一个能跑的 x86 Linux 内核,用键盘敲醒沉睡的寄存器 🔧

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors