千家信息网

Linux系统启动顺序是什么

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,Linux系统启动顺序是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux启动顺序加电-加电自检(BIOS)-硬件检查-M
千家信息网最后更新 2025年02月04日Linux系统启动顺序是什么

Linux系统启动顺序是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Linux启动顺序

加电-加电自检(BIOS)-硬件检查

-MBR(找到需要启动的系统,由于实际计算机上可能会装有多个系统)

-bootloader系统初始化,装载kenel到内存

-内核执行,决定哪些设备需要驱动程序初始化,挂载根文件系统,启动第一个进程init

-启动/etc/rc.d/sysinit

(这是由init执行的第一个脚本,在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:调入keymap以及系统字体,启动swapping,设置主机名,设置NIS域名,检查(fsck)并mount文件系统,打开quota,装载声卡模块,设置系统时钟)

(rc--run command运行命令,d-精灵进程,启动过程看不到的进程,/etc文件下是很重要的配置文件,不要乱修改)

-加载其他模块(内存、硬盘、光驱等)

-run level script(/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式,最多6层,每个层次启动的程序是不一样的,各个层次之间没有关系)

-执行/etc/rc.d/rc.local(非常重要,在安装tomcat后需要设置自启动时修改这个) -执行/bin/login-shell启动

拓展:Linux引导过程

系统加电之后,首先进行的硬件自检,然后是bootloader对系统的初始化加载内核。内核被加载到内存中之后,就开始执行了。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化(这里的硬件检测与前面的硬件自检不同,这是系统内核对硬件进行检测以决定是否需要初始化)。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统,并已初始化所有的设备驱动程序和数据结构等之后,就通过启动一个叫init的用户级程序,完成引导进程。

拓展:启动顺序

Init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefault id值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6,具有不同的功能。不同的运行级定义如下:

 # 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)

 # 1 - 单用户模式

 # 2 - 多用户,没有 NFS

 # 3 - 完全多用户模式(标准的运行级)

 # 4 - 系统保留的

 # 5 - X11 (x window)

 # 6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启 )

拓展: /etc/rc.d/与/etc/rc.d/init.d的关系

在这里先解释一下init.d里面放的都是什么东西。这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包,这里面就有很多对应的脚本。执行这些脚本可以用来启动,停止,重启这些服务。

前面说到,/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行。程序运行到这里(init进程读取了运行级别),相信从命名的角度大家也能猜到该运行/etc/rc.d/init.d里面的脚本了,不然它为什么也叫init.d呢。没错,是该运行init.d里的脚本了,但是并不是直接运行,而是有选择的因为系统并不需要启动所有的服务。

那么,系统是如何选择哪些需要启动哪些不要呢?这时刚才说的运行级别就起作用了。

在决定了系统启动的run level之后,/etc/rc.d/rc这个脚本先执行。在RH9和FC7的源码中它都是一上来就check_runlevel()(虽然实现的代码不一样,也大同小异),知道了运行级别之后,对于每一个运行级别,在rc.d下都有一个子目录分别是rc0.d,rc1.d ….. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正干活的init.d里的脚本。

拓展:rc?.d的作用

rc?.d中的?代表不同的运行级别了,/etc/rc.d/rc根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。

例如进入图形模式的运行级别是5,就是说在rc5.d中的S开头进程都会运行,网络多用户文本模式的运行级别是3,就是运行所有rc3.d中S开头的进程。

单用户模式就是rc1.d,如果是rc0.d就是关机,其中没有S开头的,都是K开头的进程名字,代表杀掉进程。

注:其余操作(1)exit(2)logout(注销)(3)reboot(重启)(4)shutdown(有参数,可以通过shutdown --help/shutdown --??/man shutdown-man【manual-手册的意思】会详细介绍指令,退出用q),即关机的意思,然后可以关闭虚拟机的电源。

(5)一般敲init0也会关机。

Linux启动层次

注:NFS 网络文件系统,有NFS时可以联网。

配置文件

etc目录作用:

/etc目录用来存放系统中的配置文件,基本上所有的配置文件都可以在这里找到。这些文件一般都以XXX.conf的形式命名。通过编辑这些文件, 就可以对系统进行更改和管理。如/etc/xinetd.conf是xinetd服务的配置文件,/etc/resolv.conf是用来指定本机的 DNS服务器地址等。

我们安装好了一个新的软件。其配置文件可能存放在/etc目录下,也可能是在其他的目录,如软件主程序所在的目录。有时为了便于管理,可以在/etc目录下建立到新软件配置文件的符号链接,这样无论软件如何安装,我们都可以在/etc目录下找到其配置文件。

例如:DNS服务的named进程配置文件named.conf一般存放在/var/named目录下,则可以通过以下命令建立上述符号链接:

# ln -s /var/named/named.conf /etc/named.conf

以后再修改DNS服务的配置,只要编辑 /etc/named.conf就可以了。

rc0.d是一个目录,不是一个文件,如下:

--对于linux任意一个指令敲5次esc,会出现所有的指令。

--指令加上--help或者指令加上--?即可给出指令的相应提示信息或者用 man shutdown--这就可以告诉我们shutdown的相关操作

exist退出terminal终端,shutdown关机,logout注销。

关于Linux系统启动顺序是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

系统 运行 文件 目录 级别 进程 脚本 配置 模式 服务 内核 开头 指令 硬件 程序 顺序 用户 链接 不同 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库工程师简历优化 数据库中约束和触发器举例 扫码共享浴室软件开发 网络安全新媒体培训会 学校网络安全应急及容灾备份方案 联合网络安全审查 网络安全是属于信息还是 珠海数字软件开发费用是多少 上海蛙扑网络技术百科 云服务器的安全 西安安卓软件开发工程师 深圳福田java软件开发班 江西一站式软件开发市价 战术小队服务器op指令 数据库查询顺序变化 数据库中的事物的组成 php 数据库的安全性 网课资源数据库 大话西游2游戏服务器在什么地方 湛江软件开发费用是多少 合肥软件开发公司排名 昆山嵌入式软件开发工资待遇 王者荣耀为什么无法进入服务器 软件开发小程序制作培训机构 兰州中小学网络安全 刀片机服务器安装系统 南京邮电大学 网络安全学院 超级动物大逃杀服务器在哪 域服务器怎么管理计算机 郑州联通软件开发工资待遇
0