RHEL 5基础篇—了解系统的引导过程

简介:

了解系统的引导程序

   linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Linux内核、INIT进程初始化。 
其中INTI进程初始化过程涉及的操作最多,也不好理解。 
如下下图:引导过总览

1

1、开机自检 
服务器主机开机后,将根据主板的BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多数时候会移交给本机硬盘。 
2、MBR引导 
当从本机硬盘中启动系统时,首先根据硬盘的第一个扇区中的MBR的设置,将系统控制权传递给包好操作系统的引导文件的分区。 
3、GRUB菜单 
对于linux系统来说,GRUB算是使用最为广泛的多系统引导器程序了。系统控制权移交给GRUB菜单以后,将会显示启动菜单提供给用户选择,并根据所选项加载linux内核文件,然后将系统控制权移交给内核。 
4、加载Linux内核 
linux内核是一个预先编译好的特殊二级制文件,介入各种硬件资源一系统程序之间,负责资源分配与调度。内核接过系统控制权之后,将完全掌控整个linux操作系统的运行过程,默认内核在“/boot/”下。 
5、INIT进程初始化 
当内核接过系统的控制权之后,它首先将系统中的“/sbin/init”程序加载运行。init进程负责完成一系列的系统初始化过程,包括:读取配置文件“inittab”,根据配置内容首先负责执行初始化脚本文件“/etc/rc.d/rc.sysinit”,接着通过脚本文件“/etc/rc.d/rc”控制开机启动的服务,最后运行终端程序“/sbin/mingetty”,等待用户登录。

   通过上述引导过程可以看出,决定系统初始化过程的关键在于init进程及其配置文件“/etc/inittab”。在“inittab”配置文件中记录了系统启动后运行那些服务,以及系统默认的运行级别。init进程是系统运行的第一个进程,所以它是所有进程的父进程,对应的PID号总是“1”。(PID每个进程的身份标记,在系统中是唯一的)

管理“inittab”配置文件 
   inittab文件位于“/etc”下,是init程序的配置文件。当init程序运行后,将按照“/etc/inittab”文件指定的配置一次启动系统中对应的脚本和程序。 
如下:使用“grep”命令过滤掉注释和空行的inittab配置文件。

2 

在“/etc/inittab”文件中。除了以“#”号开头的注释信息和空行以外,每一行都视为一条有效的配置记录。每条记录都有四个字段,使用“:”好分割。格式如下: 
标记:运行级别:动作类型:程序或脚本 
1)标记字段:标记字段可以由1~4个字符组成,用于区别其他行的配置,在inittab文件中不可以出现标记相同的配置。 
2)运行级别字段 
0:关机状态,使用该级别时将会关闭主机。 
1:单用户模式。(不用密码登陆系统,多用于维护) 
2:字符界面的多用户模式。(不支持网络) 
3:字符界面的完整多用户模式,大多数服务器主机运行在此级别。 
4:未分配使用(保留)。 
5:图形界面多用户模式,提供了图形桌面操作环境。 
6:重新启动,使用该级别时将会重启主机。 
可使用“runlevel”命令查看当前系统运行的级别,使用“init *”切换到任意级别。 
4)动作类型字段 
initdefault:设置初始化系统后默认进入的运行级别。 
sysinit:设置系统初始化的操作脚本。 
wait:init进程等待该行配置所对应的脚本操作完成后,再继续执行其他操作。 
ctrlaltdel:设置当用户按下“Ctrl+Alt+Delete”组合键后的操作。 
powerfail:设置当系统受到断电信号时采取何种操作。(使用不间断电源) 
powerokwait:设置当系统受到恢复供电信号时采取何种操作。 
respawn:一旦该行配置所对应的进程被终止,则重新启动该进程。 
5)程序或脚本字段:此字段用于指定该行配置所对应的实际操作,可以是具体的命令,脚本程序等。

rc.sysinit脚本 
  该脚本位于“/etc/rc.d/rc.sysinit”,是init进程所调用的系统初始化脚本。此脚本程序主要完成包括设置网络,主机名,加载文件系统,设置时钟,检测文件系统等一系列初始化工作。

rc脚本文件 
rc脚本同样由init进程进行调用,文件位于“/etc/rc.d/rc”。rc脚本通过使用不同的级别参数,分别加载及终止不同的系统服务,进入到相应的系统运行级别。如下:查看inittab文件中“rc”脚本的行。

3

在“/etc/rc.d/rc0.d/”~“/etc/rc.d/rc6.d/”目录中,保存了一些特殊的符号链接,rc脚本根据这些目录下的链接文件调用对应的服务控制程序,进行启动或终止相关程序的操作。在这些目录中的链接文件具有以下规律:文件名以S或K开头,(S表示开启服务,K表示终止服务)中间是数字序号,最后是系统中的服务本命:所链接的原始服务脚本位于“/etc/rc.d/init.d/”目录中。如下:查看“/etc/rc.d/rc”中的文件。

rc.local脚本文件 
rc.local脚本是一个额外的启动控制文件,位于“/etc/rc.d/rc.local”,由rc脚本在最后时进行加载。rc.local脚本用于管理员自行设置开机启动任务,运行级别“2-5”。如下:使用“vi /etc/rc.d/rc.local”命令在rc.local文件末行添加一行执行语句。(执行语句的含义是:每次开机自动开启ftp服务)

4

mingetty脚本 
  mingetty脚本位于“/sbin/mingetty”,在系统中“tty1”~“tty6”等终端都是“/sbin/mingetty”程序提供服务的。 
如下:对应的初始化操作也是在inittab文件中设置的。

5



本文转自yun5277 51CTO博客,原文链接:http://blog.51cto.com/dengqi/1186506,如需转载请自行联系原作者

相关文章
|
10月前
|
人工智能 算法 搜索推荐
单纯接入第三方模型就无需算法备案了么?
随着人工智能的发展,企业接入第三方模型提升业务能力的现象日益普遍,但算法备案问题引发诸多讨论。根据相关法规,无论使用自研或第三方模型,只要涉及向中国境内公众提供算法推荐服务,企业均需履行备案义务。这不仅因为服务性质未变,风险依然存在,也符合监管要求。备案内容涵盖模型基本信息、算法优化目标等,且需动态管理。未备案可能面临法律和运营风险。建议企业提前规划、合规管理和积极沟通,确保合法合规运营。
|
存储 安全 算法
无线加密技术的种类、工作原理
【4月更文挑战第22天】
564 0
|
供应链 物联网 网络安全
跨境电商国外研究现状如何
跨境电商研究涵盖四大领域:发展趋势与模式、影响因素、消费者行为及挑战与问题。研究发现,全球化供应链整合、平台全球化拓展、社交电商兴起和技术应用创新是主要趋势。影响因素包括技术、政策、市场环境和人才。消费者行为受购买决策因素、文化差异和信任问题影响。挑战主要包括关税与税收、物流配送、标准规范缺失及网络安全与隐私保护问题。
|
机器学习/深度学习 人工智能 安全
[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠
[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠
|
Web App开发 JavaScript 前端开发
浏览器内小脚本开发
【8月更文挑战第31天】
407 1
|
人工智能 自然语言处理
华为GTS LocMoE+:高可扩展性亲和度 MoE 架构,低开销实现主动路由
【8月更文挑战第6天】华为GTS提出LocMoE+,一种高可扩展性Mixture-of-Experts架构,通过亲和度路由策略高效分配任务,自适应调整专家容量优化资源利用,并采用通信优化技术减少开销,实现在保证性能的同时大幅提升训练效率和推理速度,尤其在多节点集群环境下优势明显。
295 1
Viper中的yaml配置文件入门,Viper开发环境和生产环境的隔离
Viper中的yaml配置文件入门,Viper开发环境和生产环境的隔离
|
算法 固态存储 架构师
【最佳实践】一文掌握并应用Elasticsearch中的GC实现垃圾日志处理
你是否了解 GC 日志?以及如何通过GC,来解决何时找到、何时处理以及如何处理垃圾日志?
2909 0
【最佳实践】一文掌握并应用Elasticsearch中的GC实现垃圾日志处理
|
Shell Linux 网络安全
【Shell 命令集合 系统管理 】Linux 注销当前登录的用户 logout命令 使用指南
【Shell 命令集合 系统管理 】Linux 注销当前登录的用户 logout命令 使用指南
523 0
|
存储 搜索推荐 数据挖掘
PDS(Personal/Enterprise Data Storage)
PDS 是一款集数据存储、管理和智能分析于一体的云存储平台,适用于个人和企业用户。它提供了目录、文件管理功能,以及影像内容的分类打标、人脸聚类等智能分析功能,基于内容的智能搜索能力,用户体系以及第三方身份系统接入能力。用户可基于此开发一套面向企业或个人的网盘系统。PDS 还提供了一些官方应用,可与您的系统组合使用,简化您的开发。
773 2