引导扇区学习

来源:互联网 发布:吃鸡游戏画面优化 编辑:程序博客网 时间:2024/05/01 10:20

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->

   装了bochs提供了可以调试内核的工具,然而这两天却弄的十分不爽,很多细节方面导致了进度的进步缓慢。

   操作系统的BIOS启动后会从软驱或者是硬盘读取引导部分的代码,也就是从MBR0柱面0磁道0扇区)中读取一部分代码加载到0x7c00的地方然后跳转到这里开始执行这里的代码。BIOS识别引导扇区的标志是扫描该扇区的512字节中的最后2位是不是0xAA55,是则执行boot否则则显示noboot device。对于MBR中的汇编代码,先把自己定位到0x7c00处然后开始执行。这两天也就实验了一个helloworld的程序,汇编部分看到先用cs寄存器初始化dses均指向0x7c00处,然后可以执行一些相关的命令,最后把不足的部分用0填满到512字节。实验中模拟了一个软驱的镜像.img文件,然后想这个软驱里面写东西。

主要遇到的困难有:

1.对于linux操作的不熟系,不过这个是慢慢积累的过程,多做一次就多熟悉一次。避免以后遇到问题无从下手。

2.安装源码包的时候./configure,make,makeinstall均会出现很很多的错误,不要一遇到错误就开是抓狂,仔细看一下错误的信息,找到什么地方出错了,是不是相关的包没有安装,是不是没有使用sudo等等。

3.写了汇编结果导致把AA55错写成了55AA导致自己像没头的的苍蝇一样,老是觉得是bochs配置不正确,没有想到是自己代码出错。

4.《自己动手写操作系统》确实是本好书,配合着linux源代码看很爽。

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->

--------10.25-10.28

 

原创粉丝点击