快速业务通道

linux的启动原理

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-22

*****************************》start《**********************************

Linux的启动过程大致可以分为5各部分

1、 BOIS加电自检 2、 加载主引导程序(MBR) 3、 加载次引导程序(GRUB) 4、 加载linux内核镜像 5、 加载init进程 Linux启动的总揽图:

这5个部分具体是怎么协同工作的呢??

一、,计算机启动后进行各种硬件设备,然后按照CMOS设置的启动顺序搜索处于活动状态并可以引导的设备.

一般主要以硬盘做引导,硬盘中得主引导记录(master boot record)中保存有引导加载程序. MBR是一个512字节的扇区,位于硬盘的第一个扇区中. 可以用命令dd查看: [root@Bruse ~]# dd if=/dev/sda of=mbr.dmp bs=512 count=1 1 0 records in 1 0 records out 512 bytes (512 B) copied, 0.000104006 seconds, 4.9 MB/s [root@Bruse ~]# od -xa mbr.dmp 0000000 48eb 1090 d08e 00bc b8b0 0000 d88e c08e k H dle dle so P < nul 0 8 nul nul so X so @ 0000020 befb 7c00 00bf b906 0200 a4f3 21ea 0006 { > nul | ? nul ack 9 nul stx s $ j ! ack nul 0000040 be00 07be 0438 0b75 c683 8110 fefe 7507 nul > > bel 8 eot u vt etx F dle soh ~ ~ bel u 0000060 ebf3 b416 b002 bb01 7c00 80b2 748a 0203 s k syn 4 stx 0 soh ; nul | 2 nul nl t etx stx 0000100 0080 8000 d441 0000 0800 90fa f690 80c2 nul nul nul nul A T nul nul nul bs z dle dle v B nul 0000120 0275 80b2 59ea 007c 3100 8ec0 8ed8 bcd0 … … 其中dd命令可以读取MBR的内容,然后将读取到的内容写入mbr.dmp文件中.然后以ASCII和十六进制显示文件的内容. BIOS会把MBR中的引导加载程序加载到内存中去,然后把控制权交给引导加载程序继续启动. 二、加载引导程序 Redhat默认的引导程序是GRUB,其引导过程可以分为2各阶段:1、保存在MBR中的主引导加载程序的加载(MBR是一个512字节的映像,其中包括机器的二进制代码和一个小分区表.MBR的任务就是查找并加载保存在硬盘分区上的次引导加载程序.它是通过分区表来查找活动分区,然后将活动分区的次引导加载程序从设备读入到内存中并运行),2、次引导加载程序(也叫内核加载程序),这个阶段只要是加载linux的内核.一旦内核加载成功就会出现下面的界面:
Empire CMS,phome.net

这个界面中可以用上下左右的方向键选择你想启动的系统或者内核.不选择的话,默认过5秒会进入到grub.conf中设置的系统,GRUB确定启动的系统后,他就会定位相应的内核映像所在的/boot/目录. 内核映像文件的格式:/boot/vmlinuz-<内核版本>.例如centOS5.5的内核映像文件就是:/boot/vmlinuz-2.6.18-194.el5 接着GRUB会把内核的映像加载到内存中去.内核映像不是一个可以执行的内核,而是一个压缩的内核映像.GRUB会把这个内核的映像解压,加载到内存中并执行,至此GRUB的任务完成了. 接着我们看一下GRUB的配置: GRUB的配置是通过/boot/grub/grub.conf来完成的,我们看看grub.conf #vim /boot/grub/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda //

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号