Linux 系统启动过程

本文详细介绍了Linux系统的启动过程,从内核引导到用户登录系统,包括BIOS自检、内核加载、运行init、系统初始化、建立终端以及用户登录的各个阶段。此外,还提到了运行级别的概念和Linux的关机、重启指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 系统启动过程

  • 过程可以分为5个阶段
    • 内核的引导
    • 运行init
    • 系统初始化
    • 建立终端

- 用户登录系统

  • 内核引导
    • 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
    • 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。
graph LR
操作系统-->/boot
  • 运行init
    • init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。
    • init 程序首先是需要读取配置文件 /etc/inittab。
graph LR
操作系统-->/boot
/boot-->init进程
  • 运行级别
    • 许多程序需要开机启动。它们在Windows叫做”服务”(service),在Linux就叫做”守护进程”(daemon)。
    • init进程的一大任务,就是去运行这些开机启动的程序。
    • Linux允许为不同的场合,分配不同的开机启动程序,这就叫做”运行级别”(runlevel)。启动时根据“运行级别”,确定要运行哪些程序。不是程序的优先级而是是否运行。
    • Linux 系统有7个运行级别 0~7
graph LR
操作系统-->/boot
/boot-->init进程
init进程-->运行级别
  • 系统初始化
    • /etc/rc.d/rc.sysinit 完成系统初始化的工作,是每一个运行级别都要首先运行的重要脚本。
    • 真正的rc启动脚本在 /etc/rc.d/init.d/ 目录下。
    • rc启动脚本一般能接受start、stop、restart、status等参数
    • /etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的连接文件,对于以S开头的启动脚本,将以start参数来运行。
    • 而如果发现存在相应的脚本也存在K打头的连接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop为参数停止这些已经启动了的守护进程,然后再重新运行,这样做是为了保证是当init改变运行级别时,所有相关的守护进程都将重启。
graph LR
操作系统-->/boot
/boot-->init进程
init进程-->运行级别
运行级别-->/etc/init.d
  • 建立终端
    • rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
    • init接下来会打开6个终端,以便用户登录系统。
    • 显示登陆界面。
  • 用户登录系统
    • 一般来说,用户登录方式有三种:
      • (1)命令行登录
      • (2)ssh登录
      • (3)图形界面登录
graph LR
操作系统-->/boot
/boot-->init进程
init进程-->运行级别
运行级别-->/etc/init.d
/etc/init.d-->用户登录
  • Linux 关机
    • 关机指令
      • shutdown –h now
      • 或者 halt、poweroff、init 0
    • 重启系统
      • shutdown -r now
      • 或者 reboot、init6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值