<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
装了bochs提供了可以调试内核的工具,然而这两天却弄的十分不爽,很多细节方面导致了进度的进步缓慢。
操作系统的BIOS启动后会从软驱或者是硬盘读取引导部分的代码,也就是从MBR(0柱面0磁道0扇区)中读取一部分代码加载到0x7c00的地方然后跳转到这里开始执行这里的代码。BIOS识别引导扇区的标志是扫描该扇区的512字节中的最后2位是不是0xAA55,是则执行boot否则则显示no boot device。对于MBR中的汇编代码,先把自己定位到0x7c00处然后开始执行。这两天也就实验了一个hello world的程序,汇编部分看到先用cs寄存器初始化ds,es均指向0x7c00处,然后可以执行一些相关的命令,最后把不足的部分用0填满到512字节。实验中模拟了一个软驱的镜像.img文件,然后想这个软驱里面写东西。
主要遇到的困难有:
1.对于linux操作的不熟系,不过这个是慢慢积累的过程,多做一次就多熟悉一次。避免以后遇到问题无从下手。
2.安装源码包的时候./configure,make,make install均会出现很很多的错误,不要一遇到错误就开是抓狂,仔细看一下错误的信息,找到什么地方出错了,是不是相关的包没有安装,是不是没有使用sudo等等。
3.写了汇编结果导致把AA55错写成了55AA导致自己像没头的的苍蝇一样,老是觉得是bochs配置不正确,没有想到是自己代码出错。
4.《自己动手写操作系统》确实是本好书,配合着linux源代码看很爽。
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
--------10.25-10.28