前言
这个暑假也没啥事情,也刚刚学了操作系统和计组,但总觉得不对味,想起来以前的这本书,打算跟着做一下。希望能有所收获,最好能够看完它。哪怕只是看懂代码而没有自己动手写,我觉得都是收获颇丰的。
预备知识与内容
前言的篇幅只有十页,但是可以展现出自制操作系统的难度有多大,远比OS实验课上写的小玩具要困难的多。这里首先的一点就是,使用何种编程语言?要知道,我们平时使用的编译器都是在操作系统之上的。
作者给了一个很好的例子。
C语言作为最简洁的语言,没有特别多的库函数依赖,没有很多杂七杂八的新特性,简单纯粹。但是即便如此,比如你要使用最常见的函数printf(),也是通过操作系统控制的I/O操作实现的,而我们要写的就是操作系统,总不能利用一个OS的功能去实现另一个吧……
按作者所讲,这个30天的旅程,要学习汇编、CPU结构、编译原理。当然,不是说都要学,而是作者筛选过的,恰好需要的部分知识去学习。而且巧了,我寒假学了点汇编,这学期学了操作系统、计组、编译原理。不在此时此刻去体验一下,把这些东西融会贯通,我自己都觉得很可惜。
week1
按作者描述,第一周是最为痛苦的。第一周需要完成系统引导区的功能,并且为了提供鼠标接口,我们还需要对CPU进行设定,比如中断处理等等。这一周要利用汇编开发。
week2
学习一部分算法,并利用算法进行操作系统设计。
week3
按作者的进度要求,此时读者应具备相当强的技术能力。这周开始着手一些功能的建设,如多任务、命令行、应用程序、系统调用等。
week4
本周为用户添加一些功能,如命令行用户交互、声音图像处理、文件与文字操作等等。
other
剩余的时间便用于完成一些作者眼中的小玩具,比如压缩和解压、计算器、播放器、图片阅览器等等。
the end
总之,越看标题越心惊,时刻怀疑着自己能否跟着完成这样一项看起来比较庞大的任务。但是总归来说,这个程序源码据说只有80KB,不算很大。就是硬着头皮啃,也要把源码读懂。毕竟C语言还是比较熟悉的,应该没有特别夸张的语法困难。有所不足的就是汇编读不懂了,那就是第一周努努力!希望暑假能完成吧。
- 本文作者: crlwebby
- 本文链接: https://crlwebby.github.io/basic/OS/OS-30-days-before/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!