ghosind / HariboteOS

《30天自制操作系统》NASM+GCC+QEMU实现
MIT License
67 stars 19 forks source link
30-days-os gcc learning-os nasm os os-dev qemu x86-32

HariboteOS

《30天自制操作系统》(川合秀实 著)配套代码改编版。因为作者使用了其自己编写的一套非标准的工具,且无法在非Windows平台下运行,所以本项目在原代码的基础上使用NASM、GCC、Qemu等工具进行编译、运行。

本项目已完成第0~28天内容(除去第28天日文显示部分),项目主要实现已经完成。因为该书后两章内容更偏向于应用层面,所以便不在本项目中实现,有兴趣的朋友可以根据前面的基础上继续完成。

项目特色

环境依赖

可选依赖

Mac下安装

MacOS下默认Xcode Command Line Tools使用的gcc为clang的别名,在本项目实现中未对clang进行测试,可能会存在问题。

在Mac下推荐使用x86_64-elf-gcc工具链进行编译,可使用brew install x86_64-elf-gcc x86_64-elf-binutils x86_64-elf-gdb安装。

运行

进入对应的文件夹,使用下面的命令运行:

$ make qemu
# 若使用工具链包含前缀,如x86_64-elf-,可以使用GCCPREFIX
$ make qemu GCCPREFIX=x86_64-elf-

若要使用GDB进行调试,请设置DEBUG

$ make qemu DEBUG=1

最终目录结构

C标准库实现

参考自xv6实现:

来自《C程序设计语言》:

项目进度

本项目不继续添加第29天以及第30天的内容,有兴趣的朋友可继续阅读后续章节。

待解决问题

博客文章

版权信息

项目中代码版权主要归原书作者所有,本人仅针对无法直接运行的部分对该代码作出部分修改。