在Linux中,系统的开机启动顺序是什么?

简介: 在Linux中,系统的开机启动顺序是什么?

在Linux中,系统的开机启动顺序是一个复杂但有序的过程,它涉及从硬件自检到用户登录的多个阶段。以下是Linux系统开机启动顺序的详细说明:

一、BIOS自检与启动设备选择
  1. 加载BIOS:
  • BIOS(基本输入输出系统)是计算机启动时的第一个软件。它负责在硬件和软件之间提供接口,进行开机自检(POST),检查硬件设备是否正常工作,并设置启动顺序。
  • 在BIOS阶段,用户可以通过按键(如F2、F10或Delete等,具体取决于计算机品牌和型号)进入BIOS设置界面,调整启动顺序、时间、硬件参数等。
  1. 选择启动设备:
  • 根据BIOS中设置的启动顺序,BIOS会尝试从指定的启动设备(如硬盘、光盘、USB设备等)加载操作系统。
二、加载Boot Loader
  • Boot Loader:
  • Boot Loader是引导加载程序,它负责加载内核文件到内存中,并传递一些参数给内核。常见的Boot Loader有GRUB(GRand Unified Bootloader)和LILO。
  • 当启动设备被选定后,Boot Loader会从该设备的特定位置(如MBR或特定的启动分区)加载,并显示一个菜单让用户选择启动哪个操作系统或内核版本。
三、加载内核
  • 内核加载:
  • 内核是Linux系统的核心,负责管理系统资源、提供系统服务和驱动硬件设备。
  • 用户选择的内核版本会被Boot Loader加载到内存中,并开始执行。内核会解压缩并初始化各种模块和组件,为后续的启动过程做准备。
四、运行init进程
  • init进程:
  • init是Linux系统的第一个用户空间进程(PID为1),负责启动和管理其他进程。
  • init进程会读取配置文件(如/etc/inittab或/etc/systemd/system/default.target,具体取决于系统使用的初始化系统),确定运行级别(runlevel),并执行相应的初始化脚本。
五、系统初始化
  • 运行级别确定:
  • Linux系统预置了多个运行级别(通常为0-6),每个级别对应不同的系统状态和功能。
  • init进程会根据配置文件中的设置,确定系统启动时的运行级别,并启动相应的服务和程序。
  • 服务启动:
  • 系统会根据运行级别,通过执行/etc/rc.d目录下的脚本来启动或停止各种服务。这些服务可能包括网络、图形界面、数据库等。
六、建立终端
  • 终端创建:
  • 终端是Linux系统与用户交互的界面,可以是文本模式或图形模式。
  • init进程会根据配置文件中的设置,调用相应的程序(如mingetty或xdm)来创建和管理终端。
七、用户登录
  • 用户登录:
  • 用户登录是Linux系统验证用户身份和权限的过程。用户可以通过用户名和密码、公钥和私钥等方式进行登录。
  • 登录后,用户可以执行各种命令和操作,与系统进行交互。
八、进入login shell
  • login shell:
  • 用户登录成功后,会启动一个login shell(登录shell),让用户可以直接与操作系统对话。
  • login shell会读取一系列的配置文件(如/etc/profile、/.bash_profile、/.bash_login、~/.profile等),以设置用户的工作环境和偏好。
九、总结

综上所述,Linux系统的开机启动顺序是一个从硬件自检到用户登录的复杂过程,涉及BIOS自检、Boot Loader加载、内核加载、init进程运行、系统初始化、终端建立和用户登录等多个阶段。每个阶段都扮演着重要的角色,共同确保了Linux系统的顺利启动和运行。

相关文章
|
4天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
19 5
linux系统服务二!
|
4天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
20 3
linux系统服务!!!
|
12天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
108 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
13天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
61 3
Linux系统之部署Linux管理面板1Panel
|
4天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
16 2
|
5天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
8天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
50 3
|
9天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
11天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
14天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
137 2