30天自制操作系统 学习笔记1
第一天的工作很简单,可能作者是让我们熟悉熟悉环境吧。
第一个cool的东西是Binary Editor, 是个二进制编辑器,也可叫做十六进制编辑器,跟着作者用这个东西做了一个极其简陋的hello os系统。(应该完全不能称作系统吧其实= =)我用作者提供的PC模拟器跑了跑,结果如下:
搞这个的过程中,对.bat文件有了新的认识。原来只知道是批处理文件,知其然不知其所以然。自己照着作者弄了两个简陋的.bat文件后,发现这是个类似linux下shell脚本文件的东西,把一堆命令集成文件,双击的时候由计算机“批”量处理。(同类似sql文件)
另外一些值得注意的知识:
1. CPU本质上只处理电信号,交换电信号。CPU最早只是为了处理电信号,而不是为了设计计算机。一切都是巧合。或命中注定?
2. $在汇编里是个变量,表示这一行以前已输出了多少字节,需要打很多个00的时候可以用(求出要打多少个00)。
3. bootstrap, 代表矛盾的操作系统自动启动机制。就好像打开宝物箱的钥匙就在宝物箱里一样。
4. IPL(Initial Program Loader)宝物箱的钥匙。
5.计算机从最初一个扇区开始读软盘,然后去检查这个扇区的最后2个字节的内容。如果是55AA,则被认为是启动程序,反之则报不能启动的错误。
我回头看了看helloos.img, 发现第511,512字节恰好是55AA。(不确定书中说的软盘能否用硬盘或U盘代替,因为他们的扇区大小不一定是512字节,如果是的话我想也可以用硬盘或U盘。或者你知道你用的盘的扇区大小,动态调整一下?)