第182章 操作系统计划 下(2 / 4)

黑客传说 月之子 3021 字 2021-06-08

存中才能得到执行)。还用来设置一些系统初始化的信息。因为许毅打算编写的操作系统是32位地所以它还有一个功能——将系统从16位的实模式跳转进入32位的保护模式。(电脑刚启动的时候是16痊的被称为实模式Rm)

电脑刚启动的时候程序的指针Ip是指向BIos程序地所以先执行的是BIos系统(这是一个固化在FLash芯片中的小程序)它负责监测系统地所有资源并把状态如内存大小、硬盘有多少等等存入内存中指定的位置在BIos的最后它会检查所有可以启动的磁盘设备如果找到要启动的磁盘(BIos中的启动顺序)的第o磁道第一个扇区地511和512字节写着ox55和oxaa数据(可启动标志)。BIos就会将该扇区的512字节内容复制进内存的ox7coo处并跳转到该处执行。这也就是为什么所有磁盘(包括软盘和硬盘)的第o磁道的第一扇区为启动扇区的原因如果该扇区出现了物理损坏那么这个磁盘将永远无法作为启动盘使用。

简单来说boot1oaden程序地作用就是充当中间联络人将操作系统“请”到内存当中去执行。

由于许毅用的编译器是gcc而gcc并不能直接生成16位的代码所以许毅只能用汇编语言来编写这个boot1oaden了等机器进入32位的保护模式之后许毅再用netbsp;实际上有了这个程序就能够将系统启动了。可以在里面直接通过中断来操作显卡例如直接往显存地址中移进去一个字母中显示器中就会打印出这个字母这相当于是一个最为简单的操作系统了只不地这个操作系统能够完成的功能非常简单只是在显示器中显示一个字母B而已。但是这个就已经可以在裸机上成功运行了。要想复杂一点就是另外编写内核代码用一个跳转语句跳到内核代码的入口地址这样就可以进入其他操作了。(通常是一个大循环这样除百是人工退出不然它就会一直这样运行着)

许毅已经有这样的简单系统的编写经验所以现在编写起来也是轻车熟路的一路编写下来基本上没有遇到什么大的阻碍只是偶尔有些地方忘记了一些细节到网络上查到了相关资料就搞定了。

只有见到实在的东西才能够调动大家的积极性。

许毅最后不但在里面实现了文件系统还完成了最基本的图形界面支持ps/2鼠标技能Vega2o另外还支持符合indos标准的16位Bmp格式支持标准1o1键盘中英点阵字库和8oo*6oo的16位色显模式最后许毅甚至在里面实现了一个简单的

举报本章错误( 无需登录 )