计算机的启动过程

每天都用计算机,可从来不知道计算机是怎样完成启动的。今天在鸟哥那本书上看到了一些介绍,网上查了一些资料,迫不及待想和大家分享一下计算机复杂的启动过程.

一.第一阶段:BIOS

1.BOIS是一个写入到主板上的韧体,韧体就是写入到硬盘上的一个软件程序,这一段程序被写入ROM(只读内存)芯片里,BOIS程序运行后,会首先检查计算机硬件是否满足运行条件,这被成为"硬件自检",英文名POST;如果硬件出现问题,主板会发出蜂鸣.启动终止,否则,会在屏幕上显示cpu,内存,硬盘等信息.

2.硬件自检完成后,BOIS把控制权交给下一阶段的启动程序, 但是,BOIS是怎样知道,"下一阶段的启动程序"放在什么地方呢,也就是说,BIOS需要一个外部存储设备的排序,排在前面的设备就是优先转交控制权的设备,这种排序叫做启动顺序.(启动顺序在BOIS里面设置,不过,建立不要去改变);

二.第二阶段:主引导记录

1.BOIS按照“启动顺序”,把控制权转交给排在第一位的储存设备-硬盘;

这时,计算机读取到该设备的第一个扇区,也就是读到最前面的512个字节,这512个字节的最后两个字节是ox55和oxAA,表明这个设备可以启动.最前面的这512个字节被叫做“主引导记录”(MBR);

2.主引导记录的结构

“主引导记录”只有512个字节,它的主要作用就是告诉计算机去硬盘的哪个位置去找操作系统;

主引导记录由三个部分组成:

(1)第1-446字节:调用操作系统的机器码;

(2)第447-510字节:分区表(总共64位,将硬盘分为四个分区)

(3)第511-512字节:主引导记录签名(0x55和0xAA)

3.分区表:

硬盘分区有和很多好处,考率到每个区可以安装不同的操作系统,主引导记录必须知道将控制权交给哪个区.

分区表长度为64个字节,里面又分成四项,每箱16个字节.一个硬盘最多只能分4个主分区,如果要分扩展分区,只能分1个.每个主分区的16个字节,由6个部分组成:

(1)第一个字节:如果为0x80,就表示该分区是活动分区,控制权交给这个分区,4个主分区里只能有一个是活动分区.

(2)第2-4个字节:主分区第一个扇区的物理位置(柱面。磁头。扇区号等)

(3)第5个字节:主分区类型。

(4)第6-8:主分区最后一个扇形的物理位置.

(5)第9-12字节:该主分区的第一个扇区的逻辑地址.

(6)第13-16 字节:主分区的扇形总数.

最后的四个字节("主分区的扇区总数"),决定了这个主分区的长度。也就是说,一个主分区的扇区总数最多不超过2的32次方。

如果每个扇区为512个字节,就意味着单个分区最大不超过2TB,再考虑到扇区的逻辑地址也是32位,所以单个硬盘可利用的空间最大也不超过2TB,如果想使用更大的硬盘,只有2个方法:一是提高每个扇区的字节数,二是增加扇形总数.

三.第二阶段:硬盘启动:

 此时,计算机的控制权交给了硬盘的某个分区了,这里又有三种情况

(1)卷引导记录

上面提到过,在四个主分区里, 只能有一个是活动分区.计算机会读取活动分区的第一个扇形---卷引导记录.(VBR)

"卷引导记录"的主要作用是,告诉计算机,操作系统在这个分区里的位置。然后,计算机就会加载操作系统了。

(2)扩展分区和逻辑分区

随着硬盘越来越大,四个主分区已经不够了,需要更多的分区。但是,分区表只有四项,因此规定有且仅有一个区可以被定义成"扩展分区"

所谓"扩展分区",就是指这个区里面又分成多个区。这种分区里面的分区,就叫做"逻辑分区"

计算机先读取扩展分区的第一个扇区,叫做" 扩展引导记录(EBR)"它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。

计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。

但是,似乎很少通过这种方式启动操作系统。

(3)启动管理器:

在这种情况下,计算机读取"主引导记录"前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的,linux下最流行启动管理器是Grub。

四.第四阶段:操作系统

控制权转交给操作系统后,操作系统的内核首先被载入内存。

先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init,根据Init的配置文件,启动计算机的祖先进程init,其PID为1,这是计算机启动后的第一个进程,其它进程都是init进程的后代。

然后init进程加载系统的各个模块,直到加载到/bin/login, 出现登录界面.至此,计算机的启动就完成了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值