计算机启动过程

  距自己刚接触计算机已经很久了,虽然自己是一名程序员,但很是惭愧,自己对计算机的相关知识还是很薄弱。虽然之前写过计算机启动过程,但是很多细节还是不太熟悉。还是结合一些代码来更为清楚。

约定入口

①、硬件是如何找到我们的操作系统的?
  学过体系结构的都是到,cpu会根据cs:ip指定的位置加载代码。那通电后,只要强制将cs:ip设置为BIOS的起始地址(约定为0xFFFF0)即可。这样cpu就会加载烧录在ROM上的BIOS(基本输入输出系统)。
BIOS的工作应该很熟悉:

1、硬件自检
BIOS程序先进行检查,计算机硬件是否满足运行的基本条件,这叫“硬件自检”。
2、加载引导扇区
BIOS根据Boot Sequence(就是在BIOS设置的启动顺序)中的顺序,将最前面的存储设备的引导扇区(MBR:位置为分区的第一个扇区)的内容加载到内存中,并跳转到第一条指令执行(引导程序)。

常见的引导程序有:syslinux、GRUB2

跳到引导程序

  上面说到BIOS执行完就会跳到引导程序执行,那我们结合具体代码看看引导程序做了什么?为什么BIOS后的第一个程序不直接是操作系统呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值