编写我们自己的操作系统-用启动扇区启动我的电脑

当我们启动一台计算机的时候,计算机在做什么呢?计算机加电启动后执行ROM(BIOS)的POST(Power-On Self-Test)程序测试机器硬件是否正常工作,并且初始化系统设置包括CPU的寄存器到设备控制器,然后调用BIOS的19h中断将指定的启动设备(硬盘或软盘或光驱)的合法的启动扇区读入到内存线性地址为07c00开始的一段空间,并跳转到该地址开始执行启动扇区的代码。
启动扇区在哪里?假如我们用1.44M软盘(这是个双面软盘)启动的话,启动扇区就是0面0道的第1扇区512字节的内容;那么什么是“合法的启动扇区”呢?BIOS采用了很简单的判别方法,就是给扇区512字节的最后两个字节是不是0xAA55,如果是的话,那就是合法的启动扇区;BIOS就将这512字节的数据读入内存线性地址为0x7C00(不同的BIOS的逻辑地址可以是:0x7C0:0000或者0x0:7C00)的地方。
写入启动扇区的512字节(实际上只有510字节,因为0xAA55是固定的),实际上是我们编写的一个程序,但是这个程序和其他的我们所熟知的程序不一样,平常我们写程序都是建立在某种操作系统平台上的,比方说windows, 比方说linux, 我们总是使用很多系统函数或这库函数来方便我们实现程序功能。然而,在计算机刚启动的时候,我们的启动扇区是计算机接触的第一个用户程序,操作系统还等待着我们的启动扇区的程序载入呢,因此,这个程序必须是纯粹的十六进制代码,除了BIOS的中断是可以调用的之外,不能使用别的库函数。以后,我们都叫这个程序为bootsect。同时,编译这个程序的过程也就不太一样了&#

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值