Linux的启动过程和运行级别
Linux的启动过程
Linux的启动过程有以下几个阶段组成
Linux系统的初始化包含内核部分和init程序两个部分。
内核部分主要完成对系统硬件的检测和初始化工作。
init程序部分主要完成对系统的各项配置。
由于在Linux系统的启动过程中会出现非常多的提示信息,而且很多启动信息都是在屏幕上一闪而过,所以对于很多Linux系统的初学者来说,可能会觉得Linux的启动过程非常神秘和复杂。其实Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段。
BIOS加电自检
X86计算机在启动后首选会进行BIOS的加电自检,检测计算机的硬件设备,然后按照CMOS设置的顺序搜索处于活动状态并且可以引导的设备。引导设备可以是软盘、光驱、USB设备、硬盘设置是网络上的某个设备。
执行GRUB或LILO引导装载程序
引导程序,boot loader,是位于电脑或其他计算机应用上,是指引导操作系统的程序。
GRUB是Red Hat Enterprise Linux 5.2默认的引导加载程序,其引导过程又可以分为启动主引导加载程序和启动次引导加载程序两个阶段。
主引导加载程序的任务就是查找并加载保存在硬盘分区上的次引导加载程序
加载Linux内核
次引导加载程序也被称为内核加载程序,这个阶段的任务是加载Linux内核。一旦次引导加载程序被加载到内存中后,便会显示GRUB的图形界面,在该界面中用户可以通过上下方向键选择需要加载的操作系统以及它们的内核。
执行/sbin/init
内核映像在完成引导后,便会启动init进程。init进程对应的执行文件为/sbin/init,它是Linux系统所有进程的起点,所有的进程都是由它所衍生。如果init进程出现问题,系统中的其他进程也会随之而受影响。
读取并执行/etc/inittab
运行级就是操作系统当前正在运行的功能级别,这个级别从1到6,具有不同的功能,这些级别在/etc/inittab文件里指定,这个文件是init进程寻找的主要文件。最先运行的服务是那些放在/etc/rc.d 目录下的文件。
执行/etc/rc.d/rc/local脚本程序
在此文件中可加入每次开机时要执行的若干程序或命令名称,每个程序或命令占一行,系统将按顺序执行。
执行/bin/login登陆程序
如果以上步骤都正确无误,系统会依照指定的运行级别打开图形或字符的登录界面,提示用户输入账号及密码,并进行验证。
Linux的运行级别(配置文件)
/etc/inittab文件
linux系统的运行级别,可以理解为,当用户登录时,系统为用户提供何种服务,它取决于,这个配置文件的内容。inittab文件,是一init进程的配置文件,用于指定系统的运行级别,与此相配套的其他文件可以据此决定系统启动时和正常运行时要运行哪些脚本和服务。
0:所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别 1:单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动 2:多用户模式。和运行级别3一样,只是网络文件系统(NFS)服务没被启动 3:多用户模式。允许多用户登录系统,是系统默认的启动级别 4:留给用户自定义的运行级别 5:多用户模式,并且在系统启动后运行X-Window,给出一个图形化的登录窗口 6:所有进程被终止,系统重新启动
# # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault
系统管理员可以通过修改/etc/inittab这个文件内容来重新指定系统的默认运行级别,但应避免视为零或六,因为这两个执行模式会在开机后直接关机或重启。若要修改运行级别,只需要在此文件中找出下行。
id:3:initdefault
其中的数字三表示,目前默认的运行级别为三,可以将此数字修改为零和六之间的其他数字。设置或修改了系统的运行级别后,可以通过以下命令来查看设置的结果。
[root@localhost memcached-1.4.29]# /sbin/runlevel N 5
其他文件
/etc/init/rcS.conf文件
/etc/init/rcS.conf文件是RHEL系统初始化脚本文件
/etc/init/rc.conf
用于启动不同运行级别下的脚本的配置文件
/etc/init/control-alt-delete.conf
该文件用于定义【Ctrl+Alt+Delete】组合键的动作
/etc/init/tty.conf和/etc/init/serial.conf
这两个文件分别为终端和串口终端的配置文件
思考: Linux运行级别有哪些 ?各表示什么含义 ?