前段时间在刷MIT的6.S081课程,刷lab的过程中想起了许多年前看过(但看了一下就弃坑了)的《30天自制操作系统》这本书,于是便翻出来重新填坑。

该书作者实现了一个名为纸娃娃(Haribote)的操作系统,虽然网络上有很多评论认为其不属于一个真正意义上的操作系统,但其也具有一定的参考价值,实现的过程中也有一定的趣味性,对于新接触的同学来说图形界面更有成就感。作者在实现HariboteOS时使用了很多自制的工具(编译器、链接器等),而我手上只有一台没有装Windows的MacBook,于是便有了一个将其使用GCC+NASM实现的想法(因为更熟悉Intel风格而非AT&T风格汇编,所以没有采用GAS实现而是使用了NASM)。该书日文版写于2006年,在现在(2021年)看来已经有很多不合理的地方,例如已经基本上不会有人还在使用软盘,所以我们在实现时也还是使用QEMU进行模拟,毕竟现在要买软盘以及读写设备可能也有点难度了(虽然说XX上肯定能找到- -,此处不是广告)。

在写本篇文章时,代码实现已经进行到了第13天的内容。在实现的过程中,可能对书中代码有一定的改写,包括代码风格、结构等,但在整体上将与文中保持一致。系列文章将保持与书中一致的顺序进行,代码将保存在https://github.com/ghosind/HariboteOS上。