Linux开机流程以及运行级别(2)

6、到此内存中已经加载了 kernel 并使用kernel 的功能来侦测硬件以及尝试挂在根目录取得额外的驱动程序,但是现在的内核不认识磁盘,没办法挂在根目录,所以也就没法读取 /lib.modules/内的驱动

7、内核不认识磁盘,那如何挂在跟目录,如何加载驱动,那就得借助 虚拟文件系统(也叫临时文件系统  initrd)来解决

8、虚拟文件系统的特色是,他能够通过 boot loader  加载到内存中, 然后这个档案会被解压并在内存中仿真成为一个根目录,且此仿真目录能够提供一支可执行的程序,透过这个程序来加载开机过程中所需要的模块,而通常这些模块就是 USB  RAID  SCSI 等文件系统与磁盘接口的驱动程序,等这些程序载入完毕后 会帮助核心重新呼叫 /sbin/init 来开始后续的正常开机流程。

9、到此kernel 加载了需要的驱动程序,因为有了驱动可以找到磁盘,所以就挂载了 根目录文件系统,并释放这个虚拟文件系统。

10、核心主动加载第一个用户级程序  /sbin/init

五、第一个用户级程序init ,及配置文件 /etc/inittab  以及运行等级 run level

1、在核心加载完毕,进行硬件信息这测与驱动程序加载之后,此时你的主机硬件应该已经准备就绪了,此时核心会主动的呼叫第一个用户级程序,那就是 /sbin/init  (init 被称为所有进行的祖进程,也是第一个启动的用户级进程)

2、 /sbin/ init  最主要的功能就是准备软件执行的环境,包括系统的主机名,网络设定,语系设置,系统文件格式及其他服务的启动, 而所有的动作都会透过 init 的配置文件及 /etc/inittab  来规划。

3、 /etc/inittab 中配置了系统的运行级别  , 这个档案的最下面 有 id : n : initdefault  这就是设置的系统运行级别

4、为何要设置系统的运行级别,这个有什么不同: linux藉由 设定的 run  level 来规划,系统使用不同的服务来启动,让linux 的使用环境不同,按照有无网络与有无 xwindow可分为 7 个等级

5、 run  level  运行级别

(0)、run level  0:  关机


(1) 、run level  1 : single mode 即单人维护模式,一般忘记 root的密码,系统有问题什么的使用这个模式

(2)、run level  2 :  without  NFS 即无NFS系统

(3)、run level  3:  完整含有网络功能的纯文本模式

(4)、run level  4:  系统保留

(5)、run level  5:  xwinods  与3 是类似的只是纯文本变为窗口模式

(6)、run level 6: 重启  reboot


6、启动时执行一次的文件,  /etc/rc.d/rc.sysinit  即系统的数据设定完成!

7、启动系统 服务与 启动配置文件  /etc/rc,d/rc n(你的系统级别,按照不同的级别启动不同的服务)  /etc/sysconfig 

8、加载核心让整个系统准备接受指令来工作,在经过  /etc/rc.d/rc.sysinit  的系统模块与相关硬件信息的初始化,你的系统应该已经顺利工作了!

六、运行级别的切换
1、事实上不同的运行级别 只是加载的服务不同,,这里已 run  level 3  和  run  level 5  为列:  只是他们的  /etc/rc.3d  和  /etc/rc.5d  内的Sxxname  和  Kxxname 不同而已

2、先对比 /etc/rc.3d  和 /etc/rc.5d  内k 和 s开头的档案

3、在新的 run  level  内多的 K 都被关闭掉

4、在新的 run  level 内多的S 都被开启,而都存在的就不用管了。

ok  这样运行级别就转化过来了!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17029.html