《30制作操作系统》笔记

原创
2016/12/15 10:56
阅读数 140

CPU通电后做的第一件事儿

执行的第一条指令。。。

CPU读写软盘并不是一个字节一个字节的读写的,而是以512字节为一个单元进行读写。因此软盘的512字节就成为一个扇区。CPU开始读写的第一个扇区,称之为启动区。然后检查这个扇区最后2个字节的内容,如果这最后2个字节不是0x55 AA,计算机会认为这张盘上没有所需的驱动程序,报一个不能启动的错误。(也许会有人问为什么一定是0x55 AA呢?那是当初的设计者随便定的,笔者也没法解释)。如果CPU确认了第一个扇区的最后两个字节正好是0x55 AA,那么就认为这个扇区的开头是启动程序,并开始执行这个程序。

手动编写一个二进制文件,把该文件写入软盘,并用它来启动电脑。

helloos.img

编写这个文件耗费了一天的时间,当然找东西压住"0"键,干其它事情。

 

使用汇编语言实现helloos.img

手动编写汇编语言文件

helloos.nas

汇编的简单语法

DB

RESB

作者自己写的汇编语言编译器nask

编译汇编语言hellos

nask.exe helloos.nask helloos.img

批处理文件asm.bat简化汇编编译

电脑里有个BIOS的程序,出场时就组装在电脑主板上的ROM(只读存储器,不能写入,切断电源后内容不会消失)单元里。电脑厂家在BIOS中预先写入了操作系统开发人员经常会用到的一些程序非常方便。

作者开发的是32位的操作系统。

开发工具及硬件介绍:

1."二进制编辑器"(Binary  Editor),是一款可以直接对二进制数进行编辑的软件。

2.笔者提供的编辑器,也是以Windows版的gcc为基础稍加改造而做成的。

3.作者是以软盘为存储操作系统的物理存储,总容量是1440KB。

4.本书是以IBM PC/AT兼容机(也就是所谓的Windows个人电脑)为对象进行说明。至于其它机型。比如Macintosh(苹果机)或者PC-982等,虽然本书也参考了其中某些部分,但基本上无法开发出在这些机型上运行的操作系统,这一点还请谅解。注解:本书所讲的操作系统内容仅用Macintosh是开发不了的,并且开发出的操作系统也不能直接在Macintosh上运行。但是在PC上开发的操作系统,可以通过模拟器在Macintosh上运行。

 

世界上第一个操作系统怎么来的

在开发世界上第一个操作系统时,当然还没有任何现成的操作系统可利用,因此那时候的人们不得不对照着CPU的命令代码表,自己将0和1排列起来,然后再把这些数据写入到磁盘(估计那时候还没有磁盘,用的是其它存储设备)。这是一项非常艰巨的工作。所以恐怕最初的操作系统功能非常有限,做好之后人们利用它来开发一个稍微像点的样的操作系统,然后再用这个来开发更实用的操作系统......操作系统就是这样一步一步发展过来的。

 

 

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部