首页 > 系统相关 >在Linux中,开机启动过程是什么?

在Linux中,开机启动过程是什么?

时间:2024-06-07 11:10:51浏览次数:22  
标签:初始化 systemd 启动 系统 用户 Linux 开机 加载

Linux系统的开机启动过程是一个复杂但有序的序列,它确保系统从硬件初始化到提供一个完全功能的操作环境。以下是这个过程的详细步骤:

  1. BIOS/UEFI启动

    • 当计算机加电时,首先执行的是基本输入输出系统(BIOS)或更现代的统一可扩展固件接口(UEFI)。BIOS/UEFI主要负责硬件自检(POST,Power-On Self Test),检测和初始化系统中的硬件组件,并根据用户设置(如启动设备顺序)找到合适的启动设备。
    • 对于UEFI,还会加载EFI系统分区上的EFI应用程序,这通常是引导加载程序的一部分。
  2. 引导程序加载

    • 一旦BIOS/UEFI完成其任务,它会加载引导加载程序(Bootloader),最常用的引导加载程序是GRUB(Grand Unified Bootloader),但也可能是LILO, systemd-boot等。
    • 引导加载程序提供了用户选择操作系统的界面(如果安装了多个系统),并加载用户选定的内核及初始RAM磁盘(initrd),后者包含启动过程中所需的驱动程序和模块,用于挂载根文件系统前所需的硬件支持。
  3. 内核初始化

    • Linux内核(通常以vmlinuz文件形式存在)被加载到内存中并开始执行。内核初始化包括检测和设置硬件,加载必要的驱动程序(或从initrd中解压),以及设置内存管理、进程管理和文件系统等核心子系统。
  4. 初始化系统与运行级别

    • 在较旧的系统中,使用SysV init作为初始化系统,它会根据/etc/inittab文件定义的默认运行级别执行一系列初始化脚本。而在现代系统中,大多采用systemd作为初始化系统,它管理服务的启动顺序,并根据.target(相当于旧系统的运行级别)来决定启动哪些服务。
    • systemd会启动基础系统服务,如udev(管理设备节点)、systemd-logind(管理用户会话)、systemd-journald(日志系统)等。
  5. 系统初始化脚本和服务启动

    • 无论是SysV init还是systemd,接下来都会按预定的顺序启动系统服务和守护进程。这些服务包括网络管理、SSH访问、数据库服务器、Web服务器等,具体取决于系统配置和需求。
  6. 登录管理

    • 启动图形界面系统时,显示管理器(如GDM、LightDM或SDDM)将启动,等待用户登录。用户通过图形界面输入用户名和密码,或者在文本模式下通过getty和login程序登录。
  7. 用户会话启动

    • 成功登录后,用户的shell(bash、zsh等)启动,加载个人环境变量、启动文件(如~/.bashrc)和启动应用程序。用户可以在命令行界面或图形桌面环境中开始工作。

综上所述,整个启动过程涉及大量的硬件交互、软件初始化和配置读取,且随着技术的进步,具体的实现细节(如systemd替代SysV init)一直在演变。此外,系统管理员可以通过修改配置文件来调整启动服务的顺序和状态,以优化启动时间和系统性能。

标签:初始化,systemd,启动,系统,用户,Linux,开机,加载
From: https://www.cnblogs.com/huangjiabobk/p/18236865

相关文章

  • 中电金信:产教联合共育人才 AFAC2024金融智能创新大赛启动
    当前,人工智能技术正在蓬勃发展,引领着各行各业迈向智能化的新纪元,特别是在金融科技领域,伴随人工智能技术的不断迭代与突破,金融服务的边界也在不断拓展,传统的金融业态正经历着深刻的变革与重塑。 与此同时,随着金融科技持续创新与数字化转型深入推进,我国对于金融科技人才的需求日......
  • Linux -- 命令执行顺序的控制
    提示:制作不易,可以点个收藏和关注哦。前言提示:这里可以添加本文要记录的大概内容:  通常情况下,我们每次只能在终端输入一条命令,按下回车执行,执行完成后,我们再输入第二条命令,然后再按回车执行……,当有时候我们会一次输入多条命令,这个时候的执行过程又是如何的呢?下面我......
  • linux命令
    rpm-ivh:rpm-ivh是在Linux系统中用于安装RPM(RedHatPackageManager)软件包的命令。以下是对每个参数的解释:--i:表示安装(install)。--v:表示显示详细的安装过程信息(verbose)。--h:以水平进度条的形式显示安装进度(hash)。通过执行这个命令,可以将指定的RPM软件包安装到......
  • Win 开机自启动顺序
    所有Windows系列都没有提供调整开机自启动优先级的功能,但Windows可以间接延迟启动顺序。1:自启动方式开机自启动一般有以下三种方式,启动顺序根据设置方式决定。系统启动时执行的顺序大于用户登录时执行的顺序。方式解释计划任务用户登录时执行和系统启动时执......
  • Linux下的gcc命令
    转载:https://blog.csdn.net/weixin_47826078/article/details/120474122文章目录准备:test.c1.编译过程1.1预处理(Pre-Processing)1.2汇编(Assembling)1.3编译(Compiling)*gcc-c1.4链接(Linking)2.简化过程——gcc3.gcc常用选项总结准备:test.c在正式开......
  • 【四】Linux重定向、管道符、通配符、转义字符详解
    重定向与管道符重定向输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。输出重定向使用较多,故将输出重定向分为了标准输出重定向和错误输出重定向,以及覆盖写入与追加写入两种模式。输出重定向的符号及其作用:命令>文件......
  • 【一】Linux基础命令讲解
    Linux系统内核与Linux发行套件系统。Linux系统内核指的是提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。Linux发行套件系统是我们常说的Linux操作系统,也即是由Linux内核与各种常用软件的集合产品。常见的有:1、红帽企业版Linux(RHEL)2、社区企业操作系统Cen......
  • Linux开发:多进程通过shm_open/mmap共享内存
    Linux编程:多进程间通过shmget共享内存_检测共享内存中是否有数据-CSDN博客介绍了通过SYSV的方式进行多进程间共享内存,这种方式属于比较久远的方式。POSIX也提供了共享内存的方法,使用起来要更容易些式其原理是利用Linux的tmpfs(Linux开发:tmpfs文件系统-CSDN博客)$df......
  • springboot启动之-本地配置(一)
    没有前言,只有源码~~,依然是最简单的依赖plugins{ id'java' id'org.springframework.boot'version'3.3.0' id'io.spring.dependency-management'version'1.1.5'}java{ sourceCompatibility='17'}dependenci......
  • linuxc
    Linux编程环境编译链接3.1LinuxC程序的编译执行3.1.1gcc常用指令https://gcc.gnu.org/onlinedocs/gcc/#toc-GCC-Command-Options构建相关:看不懂没事,可以看下一个加粗部分"调试和优化相关的示例"-E:预处理,生成.i文件-S:预处理+编译,生成.s汇编语言文件-c:预处理+编......