a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 53|回复: 0

[综合辅导] Linux开机启动过程分析之一

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux开机启动过程分析之一0 N( d  O0 [+ P, _6 l; t
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。0 o1 S5 |- E7 s' n0 \8 T* r1 n
启动第一步--加载BIOS% m( i. o, m/ i2 @# U
当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了。$ I) H0 J- I* z" M6 q1 i  a0 T
启动第二步--读取MBR' S6 t( p4 a8 C4 t
硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,可里面却存放了预启动信息、分区表信息。可分为两部分:第一部分为引导(PRE-BOOT)区,占了446个字节;第二部分为分区表(PARTITION PABLE),共有66个字节,记录硬盘的分区信息。预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。4 v6 j. s' p2 c8 X; {
系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。
: U) s6 x( `; J) W8 Z& U2 h5 |启动第三步--Boot Loader
% l6 P6 t; ~* C8 }1 ]+ _Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。通常,BootL oade:是严重地依赖于硬件而实现的,不同体系结构的系统存在着不同的Boot Loader。
- }, _6 ]( D1 S$ ALinux的引导扇区内容是采用汇编语言编写的程序,其源代码在arch/i386/boot中(不同体系的CPU有其各自的boot目录),有4个程序文件:
/ C$ U0 R" n+ O; y. j◎bootsect.S,引导扇区的主程序,汇编后的代码不超过512字节,即一个扇区的 大 小/ o$ L+ |" E9 v: C! D
◎setup.S, 引导辅助程序$ P' q  R8 Q% j2 C
◎edd.S,辅助程序的一部分,用于支持BIOS增强磁盘设备服务
$ H0 R; _0 E9 l/ Y◎video.S,辅助程序的另一部分,用于引导时的屏幕显示
2 r" G. w) W6 j6 }% Q% U0 h* j( |Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader,这里以Grub为例来讲解吧。$ ]8 T6 \$ Z$ Y5 H) S0 z% W
系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 02:28 , Processed in 0.299262 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表