CentOS6是如何启动的

linux的启动其实和windows的启动过程是很类似的,不过Windows我们是无法看到启动信息的,而Linux启动我们会看到许多启动信息,例如某个服务是否启动。Linux系统的启动过程大体上可以分为五个部分:内核引导、运行init、系统初始化、建立终端、用户登录系统。

  1. 内核引导

    当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(一般是硬盘)来启动。紧接着启动设备上的grub程序开始引导Linux,当引导程序成功完成任务后,Linux从它们手中接管了CPU的控制权,然后CPU就开始执行Linux的核心映像代码,开始了Linux启动过程。也就是所谓的内核引导开始了额,在内核引导过程中其实是很复杂的,我们就当它是一个黑匣子,反正是Linux内核做了一系列工作,最后内核调用加载了init程序,至此内核引导的工作就完成了。交给了下一个主角init。

  2. 运行init

    init进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。init最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设定、语言、文件系统格式及其他服务的启动。而所有的动作都会通过init的配置文件/etc/inittab来规划,而inittab内还有一个很重要的设定内容,就是默认的runlevel(开机运行级别)。先来看看运行级别runlevel就是通过设定级别让Linux的使用环境不同的。我们看看这个inittab文件里面的支持级别。

    blob.png

    inittab配置文件格式和之前老版本centos5或者更老版本有很大改动。runlevel公七个:0表示关机,1表示单用户,2表示没有网络的命令行级别,4为保留级别,5为图形化级别,6为重启,在这里大多数服务器用的都是3级别,我自己的截图属于学习使用所以显示 5.需要我们特别注意的是这里除了可以设置235外其他级别都不能设置。该文件的前面部分,可以看到很多行都是提及到某个配置文件,而所有配置文件都在/etc/init/目录下。

  3. 系统初始化

    系统初始化,就是执行/etc/init/下各个配置文件。inittab配置文件中有这一行“system initialization is started by  /etc/init/rcs.conf”也就是说系统初始化会先执行“/etc/init/rcs.conf”而该配置文件中又有一行“exec/etc/rc.d/rc.sysinit”所以,重心又转移到这个rc.sysinit文件上,它会做如下工作:激活交换分区,检查磁盘,加载硬盘模块以及其他一些需要优先执行任务。当rc.sysinit程序执行完毕后,将返回init继续下一步,又到了/etc/init/rc.conf,在这配置文件里,最关键的一行是“exec/etc/rc.d/rc $RUNLEVEL”而$RUNLEVEL是在/etc/inittab中定义的(最后下面一行),以我的为例$RUNLEVEL=5,所以此时会执行“/etc/rc.d/rc 5”此时实际上是把/etc/rc.d/rc5.d/下的脚本都给执行了,随后/etc/rc.d/rc.local也会被执行,通常我们会把开机启动执行的命令反倒这个脚本下。服务执行完,系统初始化也就完成了。接下来改建立终端了。

  4. 建立终端

    建立终端室友配置文件/etc/init/tty.conf,/etc/init/serial.conf和/etc/sysconfig/init等配置文件来完成的。在2345的运行级别中豆浆以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式。同时它会显示个亿文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户身份。

  5. 用户登录系统

    对于运行级别为5的图形方式用户来说,他们的登录时通过一个图形化的登录界面。登录成功后可以直接激怒kde、gnome等窗口管理器。而本文主要讲的还是文本方式登录的情况:当我们看到mingetty的登录界面是,我们就可以输入用户名和密码来登录系统了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章