快速业务通道

linux系统init程序的基本结构

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

init是Initialization的缩写,也就是初始化的意思,对Linux 而言,则是要进入实体Linux 操作系统的第一步.到目前为止,我们讲到了许多的第一步,但这和之前所提到的BIOS、kernel或initrd 都不一样,完全是针对用户当初所安装的系统软件的.Linux要进入操作系统,主要是由init程序把所有的功能串在一起的,有点带头大哥的味道.也它是进入操作系统后第一个执行的程序,因此,在操作系统中,可以看到init的PID是1(如图5-1所示),代表一个起头程序,其他所有执行中的daemon则都是由init所带起来的程序.因此,当一个Linux的init挂掉时,代表这个操作系统绝对无法使用,只有强迫以电源重新开机来解决(关机也要通过init 程序).


init虽然只是一个开头的程序,但其中所含的步骤及过程却是非常得复杂且重要.只要可以清楚其中每一个过程,对主体Linux操作系统的激活过程就已经掌握八成了.但要理清一个观念,init并不是一个绝对、唯一的激活程序,用户也可以自定义所需要的激活方式,这也是Linux 弹性之大的证明,要如何改掉执行的方式,在5.1节会提到,只需要在系统激活时加入一个参数就可以做到,当然,激活的程序还是要自行搞定.

  5.1 init的基本结构

  在本章仍是以Fedora Core 6为主要的范例操作系统,但只要是Linux based的操作系统,都不会差异太大,关键看系统厂商的修改程度z`,这也是用户在检查流程时要注意的.整个init林林总总的流程,可以依执行的顺序,列出大致的执行过程(如图5-2所示),在本章会尽量将每一个过程交待清楚,但init所涉及的范围实在太广,若要将所有执行到的软件、script文件或变量列出来,可能要一本书才够,会尽量以用户会遇到,或常看到相关的设置做说明.

  再次强调,Linux的弹性是很大的,init虽然是一个方便用户进入系统的工具,但用户依旧有权利决定要不要由init来完成所有的工作,如果认为init执行的顺序或方式有问题,或是有更好的方法或顺序来进入Linux,可以手动将执行init的阶段关掉.做法还是要通过在GRUB中开


机时的kernel参数设置字段做修正(一般该字段称为kernel command line,如图5-3所示),在原本的参数后面加入“init=所要执行的程序”,如“nit=/bin/bash”,这样当initrd加载要交接给操作系统时,就会直接由/bin/bash完成所有的开机工作,而不会执行原本的init程序.

操作系统的流程会直接停在bash shell的画面(如图5-4 所示),bash执行时不会再额外执行其他的script 文件或原本所需加载的init程序,等于完全跳过原本要执行的一堆程序,整个开机流程会瞬间就执行完毕,比进入init 1的单一用户模式(single mode)还要快,init 1会多执行稍后将提到的rc.sysinit文件.

  

  init最主要的任务就是指挥每一个待执行的程序依序执行,而第一个被init所参考的是在/etc目录下的inittab文件,里面记录着执行的脚本,大部分有经验的读者对其内容应该都不陌生,但在此要谈的主要是开机流程,我们可以将这个文件分成下列4个步骤(如图5-5所示):

  A:以initdefault值判断要进入哪一个runlevel.

  B:执行/etc/rc.d/rc.sysinit.

  C:执行rcX.d下的程序(“rc 3”代表/etc/rc.d/rc3.d/).

  D:通过登录程序进入shell.

  

  这4个步骤也就是所有Linux在加载时所要执行的任务,虽然只有4个步骤,但通过每个步骤所要完成的工作非常繁多(除了第一个的runlevel 判断之外),以下将介绍每个步骤对Linux激活时的影响及其目的.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号