30天自制操作系统第0天——程序员的小理想:制作一个小小的操作系统

前言

链接:https://pan.baidu.com/s/1BT6pGu4ezRdj3VH-EADpHA
提取码:tvlw

一、开发前需知

  • 本书我们最终目标就是制作一个100kb以内的操作系统,期间我们会学习到很多有用的知识

  • 对于阅读本书的读者不需要任何前备知识,只需要之前有稍微接触过一些编程即可阅读!!!本书用到的基本都是C语言的代码,不会涉及很深的知识

  • 开发环境:Windows个人电脑(对于其他一些类型电脑不一定可以开发)

  • 机器性能要求:CPU高于386(这个是32位操作系统,因为我们处于学习阶段,开发什么类型的操作系统关系也不是很大)

  • 最后开发出来的操作系统会有许多和现Windows、Linux操作系统相类似功能

  • 本书的操作系统制作是完完全全从0开始制作的,不会借助任何现有的原始系统什么的,在原有基础上进行修改、扩充

  • 着手前不要被一大堆专用术语给迷惑住了(比如内核、外核、单片怎么实现,怎么做……)

二、如何开发操作系统?

​ ** 操作系统一般打开电源开关就可以自动执行。这是怎么实现的呢???**一般在Windows上开发的可执行文件双击一下就可以执行了。

​ 这次要做的是能将含有操作系统好的软盘 or CD-ROM插入电脑,或者将操作系统装入硬盘,只要打开电源开关就可以自动运行。或者将操作系统装入硬盘后只要打开电源开关就可以自动运行。

下面就是本书的基本预测步骤:

image-20240123222833839

​ **在这里我们就会产生一个疑问:既然我们需要在操作系统下进行编写源码,那在没有操作系统的情况下,第一个操作系统是怎么开发出来的呢?**这个时候可以说是开发难度的巅峰了,直接对着CPU的命令代码表,自己将0和1排列起来然后将这些数据写入磁盘或者其他存储设备。

映像文件:软盘的备份文件。

三、操作系统开发的困难

本书使用的C编辑器是完全基于Windows的gcc修改的想方设法编写一个操作系统,困难有很多:

  • 比如说printf(“Hello,mogullzr”);这种语句都是不允许的,因为这个函数是以操作系统提供的功能为前提编写的,而本书需要实现的就是操作系统功能全无的基础下开发的。如果我们强行执行该函数CPU就会异常,罢工。

四、学习本书注意事项

  • 实际整本书的学习时间预测应该还是会在30~70天之间的,因为部分章节内容可能存在难度较高的问题

五、内容简述

第一周

  • 首先考虑如何写一个“通电就可以运行的程序”,主要使用汇编语言
  • 下一步写一个从磁盘读取操作系统的程序。这时候打开电源不会将操作系统全部读入,只会读512字节,我们需要编写剩余部分载入程序。主要汇编语言
  • 之后就是使用C语言的战场了,开发显示画面的程序
  • 实现移动鼠标功能。开发语言汇编语言+C语言,这个部分有点小难!!!

第二周

  • 第一周之后你的编程基础就可以达到该书的基本要求了,第一周会比较!!!!痛苦
  • 这一周主战场就是能够很好地使用算法,这一周可能也会比较较!!!!!!痛苦

第三周

  • 现在就可以随意开发自己的操作系统了。
  • 首先功能一:支持多任务
  • 然后功能二:开发命令行
  • 之后功能三:开发应用程序
  • 这周之后就可以说拿得出一个称之为操作系统的系统了!!!

第四周

  • 随意添加各种各样的功能,开发大量像样的应用程序,这个阶段应该可以算作阅读这本书读者的心情高峰期,马上就可以拿着这个东西在老师同学面前装杯了!!!!!!!

最后两天

  • 补充前面内容

下面你准备好和我一起来挑战一下制作操作系统的旅途了吗?Rush!Rush!Rush!

Welcome to my own Blog,Thanks to your surfing🥳🥳🥳🥳🥳🥳🥳