本科生实验做一个操作系统项目,应该如何开始呢?

谢谢热心的知友

vczh   (专业造轮子,前排已拉黑。gaclib.net)     972018-09-03 00:55:16

首先确定自己的操作系统只运行在hyper-v里面,所以你可以写一些其实并不真正跨硬件的代码,没关系,反正只是做着玩的。

其次,你可以去下载Intel的开发手册,其中有一本就是在教你如何动手写操作系统的。当然这些都是最基础的内容,你写出来的操作系统除了可以运行以外什么都干不了。虚拟内存是包括在这本书里面的,然后你就可以写一个简单的键盘驱动程序和命令行屏幕驱动程序,和一个超级垃圾的没有文件夹的文件系统的驱动程序。整出最开始的一批API。

等你终于可以实现加载【自己发明的exe格式】来往屏幕上打字之后,你就可以开始去改clang++,让他生成你的格式,然后用这个新的后端吧clang++编译一遍。然后clang++自带的STL你也改一通,把底层的东西换成调用你自己的API的代码。两个一合并你就有属于你的操作系统的C++编译器了。

接下来随便玩。因为从这一刻开始,你终于可以用C++来编写你的操作系统和里面的程序,而不是一个指令一个指令慢慢写了。你首先可以把你的超级垃圾的没有文件夹的文件系统的驱动程序换成一个正常的,然后开始编写你的网络协议栈(不考虑性能的话,看一下标准一天就做出来了,很简单的),然后就可以开始添加你的应用程序了。最重要的是,所有的开发工作都可以在你自己的操作系统里面完成,爽的一笔(逃

知乎用户     32018-09-03 01:54:27
看来那个30天自制操作系统还是太low,照轮子哥这个方法最多一个星期
温酒     12018-09-03 02:03:32

硬核之路……你怎么不教点简单的……?