30天自制操作系统第0天——程序员的小理想:制作一个小小的操作系统
前言
链接:https://pan.baidu.com/s/1BT6pGu4ezRdj3VH-EADpHA
提取码:tvlw
一、开发前需知
本书我们最终目标就是制作一个100kb以内的操作系统,期间我们会学习到很多有用的知识
对于阅读本书的读者不需要任何前备知识,只需要之前有稍微接触过一些编程即可阅读!!!本书用到的基本都是C语言的代码,不会涉及很深的知识
开发环境:Windows个人电脑(对于其他一些类型电脑不一定可以开发)
机器性能要求:CPU高于386(这个是32位操作系统,因为我们处于学习阶段,开发什么类型的操作系统关系也不是很大)
最后开发出来的操作系统会有许多和现Windows、Linux操作系统相类似功能
本书的操作系统制作是完完全全从0开始制作的,不会借助任何现有的原始系统什么的,在原有基础上进行修改、扩充
着手前不要被一大堆专用术语给迷惑住了(比如内核、外核、单片怎么实现,怎么做……)
二、如何开发操作系统?
** 操作系统一般打开电源开关就可以自动执行。这是怎么实现的呢???**一般在Windows上开发的可执行文件双击一下就可以执行了。
这次要做的是能将含有操作系统好的软盘 or CD-ROM插入电脑,或者将操作系统装入硬盘,只要打开电源开关就可以自动运行。或者将操作系统装入硬盘后只要打开电源开关就可以自动运行。
下面就是本书的基本预测步骤:
**在这里我们就会产生一个疑问:既然我们需要在操作系统下进行编写源码,那在没有操作系统的情况下,第一个操作系统是怎么开发出来的呢?**这个时候可以说是开发难度的巅峰了,直接对着CPU的命令代码表,自己将0和1排列起来然后将这些数据写入磁盘或者其他存储设备。
映像文件:软盘的备份文件。
三、操作系统开发的困难
本书使用的C编辑器是完全基于Windows的gcc修改的想方设法编写一个操作系统,困难有很多:
比如说printf(“Hello,mogullzr”);这种语句都是不允许的,因为这个函数是以操作系统提供的功能为前提编写的,而本书需要实现的就是操作系统功能全无的基础下开发的。如果我们强行执行该函数CPU就会异常,罢工。
四、学习本书注意事项
五、内容简述
第一周
- 首先考虑如何写一个“通电就可以运行的程序”,主要使用汇编语言
- 下一步写一个从磁盘读取操作系统的程序。这时候打开电源不会将操作系统全部读入,只会读512字节,我们需要编写剩余部分载入程序。主要汇编语言
- 之后就是使用C语言的战场了,开发显示画面的程序
- 实现移动鼠标功能。开发语言汇编语言+C语言,这个部分有点小难!!!
第二周
- 第一周之后你的编程基础就可以达到该书的基本要求了,第一周会比较!!!!痛苦
- 这一周主战场就是能够很好地使用算法,这一周可能也会比较较!!!!!!痛苦
第三周
- 现在就可以随意开发自己的操作系统了。
- 首先功能一:支持多任务
- 然后功能二:开发命令行
- 之后功能三:开发应用程序
- 这周之后就可以说拿得出一个称之为操作系统的系统了!!!
第四周
- 随意添加各种各样的功能,开发大量像样的应用程序,这个阶段应该可以算作阅读这本书读者的心情高峰期,马上就可以拿着这个东西在老师同学面前装杯了!!!!!!!
最后两天
- 补充前面内容