(004)Linux的开机启动
十年运维系列之基础篇 - Linux
作者:曾林
版权:文章未经同意请勿转载
一、引言
这里虽然介绍的是Linux的开机启动,但是有些操作或者流程是不局限于linux操作系统的,而是针对几乎所有的操作系统。
二、 BIOS
当我们按下开机键的时候,电流会经过电源线流经整个主板。此时,一个加电的特殊电路会“敲打”一下CPU的被称作reset的引脚。此时cpu内的某些寄存器,比如cs、eip就会出现一些固定的内容。cs的值是0xFFFF、eip的值为0x0000。这就是告诉cpu从物理内存地址0xFFFF0处开始执行代码。哪里有什么代码呢?其实就一条,那就是让cpu跳转。跳到哪里去呢,就是这小节的主角——BIOS。
BIOS本质上是一个程序,而且它是电脑最开始执行的程序。它会读取CMOS(在计算机领域,CMOS常指保存计算机的基本启动信息的芯片。有时,人们会把BIOS和CMOS混淆,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件设置和用户对某些参数的设置)中的信息来了解硬件情况,比如CPU的总线时钟、启动设备的搜素顺序、硬盘大小与型号、系统时间、即插即用设备、各设备的I/O地址、中断请求等。之后BIOS开始做开机自检,比如确定可用的内存(有时还要自己测试一下)、确定时钟速度等。如果测试成功则开始对硬件进行初始化、设定即插即用设备、确定启动设备……最后从启动设备中读取MBR,并将控制权交给MBR中的程序;如果测试不成功则会发出声响来提示(最常见的就是内存错误发出声响)。
无论什么操作系统,都要要从MBR做入口的。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。