当前位置: > Linux服务器 > Linux内核 >

linux内核启动关于先有鸡再有蛋的问题?

时间:2015-09-27 11:01来源:linux.it.net.cn 作者:IT
linux内核映像:
用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据
/boot/grub.conf

配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

linux内核获得控制权之后开始干自己的事

•检测硬件
•解压缩自己并安装必要驱动
•初始化与文件系统相关的虚拟设备,LVM或RAID
•装载根文件系统,挂在根目录下面
•完成之后,linux在进程空间里面加载init程序,下面轮到init干活
•init进程
问题:在加载内核时, 还未加载根文件系统,如何读取/boot/grub.conf ,是怎么加载/boot中的内核映像的。 所提变成先有鸡还是先有蛋:要加载内核,就要去读取/boot,而这就需要文件系统的支持。 文件系统要加载, 就需要内核启动区加载文件系统??


grub 本身就是一个系统,它与 linux 无关,你可以用 grub 启动 windows。

grub 系统在引导区,它从引导区直接启动,并内置了文件系统,所以不存在鸡蛋问题。

在 grub 中选择内核的过程,全部都由 grub 这个系统控制,与 linux 无关,此时 linux 还根本没有启动。

grub 这个系统读取了 /boot/grub.conf,然后引导了 linux 内核之后,才把控制权交给 linux 系统,之后才是 linux 的事,所以读取 grub.conf 与 linux 内核没有任何关系。


题主可能进入了一个误区:并不是所有软件都是由软件启动或加载的,所以不存在先有鸡先有蛋的问题。
对一般Linux系统而言,其由grub引导程序引导加载。那么问题来了,又是谁启动了grub呢,是硬件。硬件启动则是因为电。是由一系列的顺序动作组成。  (责任编辑:IT)
------分隔线----------------------------