分类:
2009-01-10 18:32:08
BlueHopes开发日记 之
Day 1. 万事开头难
2009年1月10日
真的是万万没有想到,该博客里竟然放个图片如此困难,2天后才发现图片都不能正常显示。没办法,只好发布了PDF版的在该贴的附件里。需要的请下载PDF。
|
早上很冷,零下6度,昨天结束了大部分考试,躺在床上,心里打算从今天开始学习自己动手写操作系统。一扭头,看见心爱的本本就睡在旁边,于是打开开始了我的第一步。
我的参考书是《自己动手写操作系统》(于渊)以及《使用开源软件自己动手写操作系统》(杨文博)。边看边做。
坐在被窝里,暖暖的,看着《使用开源软件自己动手写操作系统》的第一章,介绍计算机的启动过程,分6步,前五部是计算机如何自检,如何初始化等等,有一种组成原理的感觉。第六步是关键,即如何让自己写的东西在CPU上运行。
“系统 BIOS将启动盘(一般是主硬盘)的第一个扇区(Boot Sector,引导扇区)读入到内存的 0x7c00处,并检查 0x7dfe 地址的内存,如果其内容是 0xaa55,跳转到 0x7c00 处执行 MBR (MasterBoot Record,主引导记录)。”
可见,只要我们将自己写的这512字节的信息加载到内存的0x7c00处,并且使0x7dfe处的内容是0xaa55,这个512字节就是一个可引导的程序段,把它写道磁盘的第0面,第0磁道,第0扇区,这个扇区就是个可引导扇区。
开始写吧!
工具: nasm2.0 汇编编译器, notepad++ BillChan推荐给我的文本编辑器,FloppyWriter 于渊写的一个用于将二进制文件写入软盘镜像的工具, UltraEdit 二进制查看器, VMwareWorkstation 虚拟机。
流程是:用notepad++编辑汇编程序,编好后保存,在到控制台下使用nasm编译成二进制文件,然后用FloppyWrite将二进制文件写入软盘镜像,然后到虚拟机里面用虚拟软盘镜像启动。
就这样,搞了一天,写了个可引导的软盘,并且在区区的512字节里写入了一个类似notepad打字练习的程序。
天黑了,发布吧,于是将今天的工作总结一下,写了这个日记,发布了我的BlueHopes的0.1版。
希望明天能够突破512字节的限制,还有FAT要好好研究一下。