假装写了一个操作系统--学生党的假期自我娱乐(一)
Preface 前言
放假在家闲着看了几本操作系统方面的书,本来打算用手头的树莓派写一个embedded的玩一玩,后来发现,几乎不可能:一是RPi的文档极其的诡异,根本不知所云;二是在下没有什么嵌入式开发经验,调试起来比较不方便.所以就想要写一个不需要考虑太多硬件方面,只是好玩和练习算法的”假的”操作系统.
开发环境
个人比较习惯于Windows上的操作和编程,Windows最具吸引力的Visual Studio也是一个原因.所以这里使用Windows和Visual Studio 2017作为开发环境,Linux选手请见谅, 这个项目里可能会涉及到Windows的管道,句柄等内容,在Linux下就要重写了呢.并且记得给你的Visual Studio装上C++.
知识要求
作为操作系统的非常规尝试,要求肯定比那些”从零开始”,”零基础”之类的文章要高一(hen)些(duo).The requirements can be listed as follows:
- C/C++语言(大概需要比较熟悉的那种程度)
C#语言,差不多就行了
当然了,编程经验也是十分重要的因素. - 操作系统方面的知识(比如进程,线程,中断,etc)
- Windows编程(至少要知道句柄,父子进程,还有MS的编程风格)
我看的参考书呢,有<<现代操作系统>>,<<深入探索嵌入式操作系统>>,<<操作系统开发与实践>>(就是minix的那个)
初期设计思路
话不多说,上图:
初期想法是一个主进程(方便管理)启动四个子进程(注意,是进程),然后四个子进程之间用Windows管道通信,模拟mmu(内存管理单元),系统中断,外设设备,还有一个系统内核.当然了,从底层的模块向上写会比较的方便(毕竟思路还不是很完善),对性能不做任何要求(因为是实验用的).想法说不定也会随着代码编写的深入而改变,不知道能不能坚持到最后呢.
最后,在下的代码会比较混乱,以后附上代码时请见谅.
开始旅程
Program This World!
Github Id: ridethepig