AlmeidaOS
1.0.0
简单,独立,干净的代码,有据可查的,爱好者64位操作系统,用于英特尔和AMD处理器。它以汇编(Intel语法)和C(GNU99标准)的形式编写,其中我努力在源代码中添加注释,以便将其用作未来的OS开发人员的参考。
它包含以下从头开始写的组件:
| 成分 | 描述 | 源代码 |
|---|---|---|
| MBR | 第一阶段引导加载程序 | 代码 |
| 加载程序 | 第二阶段引导加载程序 | 代码 |
| 成分 | 描述 | 源代码 |
|---|---|---|
| PML4 | 分页结构 | 代码 |
| 伙伴 | 内存分配器系统 | 代码 |
| printk | 类似printf的字符串格式解析实用程序 | 代码 |
| 串行驱动程序 | 通过RS232发送printk msgs以帮助调试 | 代码 |
| 核心转储 | 用于调试目的的转储CPU寄存器 | 代码 |
| syscall/sysret | 选择跳到3和后背的方法 | 代码 |
| 坑 | 可编程间隔计时器 | 代码 |
| 图片 | 可编程中断控制器 | 代码 |
| (x)延迟 | 鉴于我正在使用坑 | 代码 |
| CMOS RTC | 实时时钟 | 代码 |
| 调度程序 | 简单的圆形旋转调度程序 | 代码 |
函数正在按需添加:代码
还有更多!明星/观看此存储库以保持关注!
为了构建此应用程序,预计您将在计算机中安装make和docker 。所有其他建筑物依赖性都应由此步骤中创建的Docker映像自动照顾。
要构建它,您必须运行:
make build
为了运行此应用程序,预计您将在计算机中安装make qemu-system-x86_64 。
make test
为了确保我不会对此操作系统的能力失去关注,我决定编写要在短期到中期内实现的功能列表。
拥有的事情真是太棒了,但是我不确定我一生中是否有需要做的事情。
这些都是在Almeidaos的发展过程中对我有很大帮助的参考
论坛:
图书:
现有OS:
课程: