Linux系统启动流程是一个相对复杂的过程,涉及到多个阶段和环节。本文以CentOS 6为例,详细讲解Linux系统启动流程的完整攻略。
BIOS和Boot Loader阶段
当计算机启动时,第一阶段是BIOS(Basic Input/Output System)固件自检。BIOS是位于计算机主板上的一个芯片,它初始化计算机硬件,检查是否有可引导的设备,并将控制权转移给引导程序。在CentOS 6中,引导程序是GRUB(GRand Unified Bootloader)。
GRUB第一阶段(stage1)被安装在硬盘的MBR(Master Boot Record)扇区内。当BIOS检测到硬盘时,它会将控制权传递给MBR,MBR再启动GRUB。GRUB第二阶段(stage2)被安装在硬盘的/boot/grub目录下。GRUB第二阶段会自动扫描磁盘上的操作系统,并显示GRUB菜单,让用户选择操作系统。如果没有选择,则默认启动第一个记录。
内核启动阶段
选择内核后,GRUB会将控制权传递给内核。内核启动后,它会先初始化一些基本的系统设备和资源,然后启动核心服务、驱动和文件系统等。
init进程
在CentOS 6中,内核会启动init进程,它是系统初始化的第一个用户进程。init进程根据配置文件/etc/inittab来确定系统运行级别并启动相应的服务。在Linux系统中,运行级别(runlevel)是一组预定义的系统状态,每个状态代表一个不同的系统配置。例如,运行级别3是多用户模式,不启动图形界面;运行级别5是多用户模式和图形界面模式。
系统服务
init进程会根据运行级别启动相应的系统服务。例如,在运行级别3时,只会启动必要的服务,如网络服务和系统日志服务;在运行级别5时,还会启动图形界面和窗口管理器等服务。
/etc/rc.d
启动脚本都存放在/etc/rc.d目录下,系统按照顺序执行每个脚本。该目录包含了从系统启动到关机的所有脚本,脚本文件名以K或S(kill或start)开头,跟随一个数字(表示执行优先级),后面是脚本名称。当系统进入某个运行级别时,会自动执行相应的脚本。例如,在运行级别3时,会先执行/etc/rc.d/rc.sysinit,然后执行/etc/rc.d/rc3.d目录下的所有脚本。
终端启动阶段
当系统启动之后,终端程序(如tty1、tty2等)开始运行。用户可以通过终端访问系统。
登录窗口阶段
登陆窗口是系统界面的第一批程序,它允许用户登录,并显示用户桌面。
在CentOS 6中,登陆窗口由Display Manager负责显示和管理。Display Manager是一个图形用户界面的管理程序,负责维护图形用户界面的各个方面,如启动X窗口系统、显示屏幕解析度、键盘布局、图标等。在CentOS 6中,login窗口的Display Manager是GDM(GNOME Display Manager)。
X窗口系统
用户登录后,会开始运行X窗口系统,X窗口系统是一个图形用户界面的模块。它依赖于设备驱动程序和硬件。X窗口系统提供了各种可视化应用程序,如:文本编辑器、终端仿真器、图形化文件管理器等。
用户环境
当用户在X窗口系统中启动一个会话后,会生成一个登录Shell进程。Shell是一种通用的命令解释器和用户界面,它允许用户与系统交互。用户可以执行各种命令、编写脚本和使用其他应用程序。
在CentOS 6中,默认Shell是Bash。在用户登录后,Bash会读取一些配置文件,例如~/.bashrc和/etc/bashrc,它们包含了许多Bash的配置信息,如别名、环境变量等。
在用户环境中,还可以使用各种应用程序,如:编辑器、文件管理器、浏览器、邮件客户端等。
总结
Linux系统启动流程是一个复杂的过程,由多个阶段和环节组成。以上是CentOS 6的启动流程,不同的Linux发行版可能存在差异。了解Linux启动流程有助于理解系统的工作方式,从而更好地管理和使用系统。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux系统启动流程(以CentOS 6为对象) - Python技术站