Linux启动过程

 

系统启动

系统启动依赖于引导Linux的硬件。在嵌入式平台,系统在启动或重启时会用到引导程序环境变量,比如:包括u-boot,redboot及lucent公司的MicroMonitor。嵌入式平台通常附带一个引导监视器。这些程序位于

系统启动

系统启动依赖于引导Linux的硬件。在嵌入式平台,系统在启动或重启时会用到引导程序环境变量,比如:包括u-boot,redboot及lucent公司的MicroMonitor。嵌入式平台通常附带一个引导监视器。这些程序位于目标硬件的flash内存中一个特别的区域,为Linux内核镜像加载到flash内存提供方法,并在随后执行Linux内核。除了存储和启动Linux镜像外,引导监视器还会执行一些系统测试及硬件初始化。在一个嵌入式目标,引导监视器通常存在于第一步及第二步引导程序。

对于个人计算机,Linux从0xffff0地址的BIOS开始启动。BIOS的第一步是上电自检(POST)。上电自检的工作是检查硬件。BIOS的第二步是枚举和初始化本地设备。

鉴于BIOS的不同用途,BIOS主由两部分组成:上电自检代码和运行服务。在上电自检完成后,上电自检代码从内存被清除,但是运行服务被保留并且对目标操作系统仍然有效。

要引导一个操作系统,BIOS运行时会按照CMOS的设置定义的顺序来搜索处于活动状态并且可以引导的设备。引导设备可以为软盘,CD-ROM,硬盘的分区,网络上的设备以及U盘。

Linux一般从MBR包含初级引导程序的硬盘启动。MBR是一个512字节的扇区,位于硬盘的第一扇区(0道0柱1扇区)。在MBR被加载到RAM中后,由BIOS去控制它。

提取MBR(主引导记录)

可以通过如下命令查看你的MBR:
# dd if=/dev/hda of=mbr.bin bs=512 count=1
# od -xa mbr.bin

dd命令:需要root权限,从/dev/hda(第一个集成驱动电路或IDE驱动器)中读取512字节内容并写到mbr.bin文件。
od命令:以hex和ASCII格式打印二进制文件

 第一阶段引导

       初级引导程序位于512字节的MBR镜像,MBR镜像由一个小型分区表和代码组成(见Figure 2)。前446字节是初级引导程序代码,包括执行代码和错误信息。接下来的64字节是一个分区表,包含4个16字节的分区记录。MBR最后的两字节定义了一个magic数字(0xaa55)。这个magic数字用来校验检查MBR。

 

 

第二阶段引导程序

 

http://huaqianlee.github.io/2015/08/21/Linux/深入理解Linux启动过程/

 

posted on 2017-03-16 01:01  longyongzhen  阅读(236)  评论(0编辑  收藏  举报

导航