自己动手写操作系统
看到这本书的时候是我大二上学期,几乎很多看不懂,秘密糊糊的看了些,没有真正的自己动手,感觉自己的能力要提高才可以,其实不然,可以我过去是多么的幼稚和没有及其强烈的求知欲和好奇心。但是,现在也一点也不晚,我会认真的读这本书同时我也会实践里面的内容,而不是简单的读书,更重要的书中的思想和精神?真的是一本不错的好书。
好,让我们开始第一章
纸上得来终觉浅,绝知此事要躬行。——陆游
用到什么学什么。
只要用心,就没有学不会的东西。
Intel Architecture Software Developer Manual
software: NASM汇编编译器 虚拟机
用NASM编译一下
nasm boot.asm -o boot.img
简单说明一下,我是根据自己平台对书中进行了一些改动,那样我才可以在我的电脑上完成相应的任务,而且我暂时是不会用windowns的,所以有很多将不一样。
当计算机电源被打开时,它会先进行加电自检(POST),然后寻找启动盘,如果是选择从软盘启动,计算机就会检查软盘的0面0磁道1扇区,如果发现它以0xAA55结束,则BIOS认为它是一个引导扇区,也就是我们说的Boot Sector。一个正确的Boot Sector除了以0xAA55结束之外,还应该包含一段小于512B的执行码。一旦BIOS发现了Boot Sector,就会将这512B的内容转载到内存的0000:7c00处,然后跳转到0000:7c00处将控制权彻底交给这段代码。到此为止电脑就不再由BIOS控制了而是变成由操作系统的一部分来控制了。
可以用ndisamw -o 0x7c00 boot.img >> disboot.asm
反汇编查看刚才生成的二进制文件
而真正用的是[root@localhost 1]# ndisasm -o 0x7c00 boot.img >> disboot.asm
其disboot.asm文件中用
00007C09 E9FDFF jmp word 0x7c09
first
这本书,我现在看了真的比较符合现在的学生,更加注重的是感性认识,但是我们感性的认识了还是要上升到理性的认识哦!
没有评论:
发表评论