扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:tangzhu 来源:赛迪网技术社区 2007年11月2日
关键字: Linux
Linux启动顺序
内核加载完成后,传统的Unix和Linux系统会执行一个系统应用软件作为初始化进程。该应用软件在系统的/sbin/init目录下。一般情况下,初始化进程是所有进程的第一步,是系统所有进程的铺路石,用户可以使用“ps”命令调出进程状态列表。初始化进程可以对/etc/inittab文件进行读取,从而识别系统启动、进程和程序列表的方法。
使用初始RAM磁盘启动
如果用户系统使用初始RAM磁盘作为根文件系统,系统的启动程序便多了一步。系统的第一步不是执行初始进程,而是对初始RAM磁盘进行解压并安装,并执行/linuxrc文件。该文件必须是可以执行的,可以作为一个提供其它可执行命令列表的命令文件。另外该文件还必须是一个像BusyBox一样的复调用二进制命令,或者作为一个连接复调用二进制命令或/sbin/init进程自身的符号链接。 /linuxrc文件执行完毕便可进入初始RAM磁盘的安装进程。这一进程由内核源代码文件init/do_mounts_initrd.c来指定。/linuxrc文件实际上是一个命令程序,其形式如下(出自无devfs 文件系统或udev的Red Hat 9.0):
|
由此可见,使用初始RAM磁盘的Red Hat系统中的缺省/linuxrc文件可执行一系列系统初始化命令。
如果用户正在对一个拥有本地存储器的Linux系统进行移植,并且该系统并不局限于初始RAM磁盘,那么命令文件中的最后一组命令可将根文件系统安装到存储设备中,并使用“pivot_root”命令改变“/”目录下的系统主旨。linux-utils套件中的“pivot_root”命令可以将系统的根目录由初始RAM磁盘改为可提供长期存储器的硬件设备。如果用户正在使用GRUB,该硬件可以通过系统中的根参数root=value进行识别。
在升级使用初始RAM磁盘的定制Linux系统时,用户需要完成下列工作:
安装并检验初始RAM磁盘,检查它是如何使用/linuxrc文件的。如果/linuxrc文件是一个命令程序,用户需要检验它所执行的命令,从而确定这些命令与2.6内核相适应。如果它特别引用了一些诸如“modprobe”或“insmod”之类的命令,那么用户必须确定已经在初始RAM磁盘和其它文件系统中安装了这些工具软件与2.6内核相兼容的版本。用户的初始RAM磁盘必须包括一些为2.6内核搭建的内核模块,并且遵循2.6内核使用的命名规则,即使用.ko扩展名,而不是.o扩展名。
如果/linuxrc文件是一个连接/sbin/init程序的符号链接或硬链接,那么用户需要确定初始程序使用的命令文件不是2.4内核专用的。用户同样要遵循上述原则进行检测和重名命。
假设用户的系统可以正确地执行/linuxrc文件,系统通常可以将系统文件的根改变到一个新的“/”目录下,或 者手动执行/sbin/init进程。Linux内核为了寻找初始进程而执行一次顺序搜索。较旧版本的内核需要用户来确定作为启动进程的一部分而执行的文件名称,方法是使用启动加载程序中的initrd=value参数。如果用户使用初始RAM磁盘或/linuxrc文件中的“exec”命令,可自动启动初始化进程而不需要以上步骤。
标准的Linux初始化次序
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。