首页 > 系统相关 >linux 的启动步骤

linux 的启动步骤

时间:2024-08-23 12:05:45浏览次数:9  
标签:systemd 启动 步骤 用户 文件系统 内核 linux 加载

Linux 的启动过程分为多个阶段,每个阶段都扮演着重要的角色,从引导加载程序到启动用户空间的服务和应用程序。以下是 Linux 启动的典型步骤:

1. BIOS/UEFI 阶段

  • BIOS/UEFI 启动: 当计算机开机时,BIOS(传统系统)或 UEFI(较新的系统)会运行硬件自检(POST),然后查找启动设备(例如硬盘、USB 或光盘)。
  • 启动加载程序: BIOS/UEFI 会找到并加载启动设备中的引导加载程序(通常是 MBR 或 GPT 的第一个扇区)。

2. 引导加载程序阶段

  • GRUB/LILO: 常见的引导加载程序是 GRUB(GRand Unified Bootloader)。它负责加载并传递控制权给 Linux 内核。
  • 选择内核: 如果系统中安装了多个内核,GRUB 菜单允许用户选择要加载的内核。
  • 加载内核和 initramfs: 引导加载程序加载选定的内核(通常是 vmlinuz 文件)和 initramfs(初始内存文件系统)。initramfs 是一个临时根文件系统,包含启动内核所需的基本工具和驱动程序。

3. Linux 内核阶段

  • 内核初始化: 内核接管控制权后,开始初始化硬件,挂载根文件系统,并启动 init 进程(PID 1)。
  • 驱动程序加载: 内核加载必要的驱动程序来管理硬件设备。这些驱动程序可以从内核内置的模块或 initramfs 中加载。
  • 挂载根文件系统: 内核会从指定的根设备(例如 /dev/sda1)挂载根文件系统(/)。

4. init/initrd 阶段

  • init/systemd: 内核启动后会运行第一个用户空间进程 init,或在现代系统中运行 systemd。这个进程是所有其他进程的祖先。
  • 执行启动脚本: init 进程根据配置文件(例如 /etc/inittab)执行一系列启动脚本,这些脚本负责启动系统的基本服务和守护进程。

5. 服务启动阶段

  • systemd/upstart/sysvinit: 根据系统使用的初始化系统(例如 systemd),启动各种系统服务和守护进程,例如网络管理器、日志服务、文件系统挂载等。
  • 并行启动: 在 systemd 中,服务启动通常是并行的,允许更快的启动时间。

6. 用户登录阶段

  • 启动登录界面: 启动完成后,系统将显示登录提示符,可能是命令行界面(TTY)或图形化登录界面(例如 GDM、LightDM)。
  • 用户登录: 用户可以登录并开始使用系统。此时,桌面环境或窗口管理器启动,允许用户进行交互。

7. 用户会话阶段

  • 启动用户会话: 用户登录后,系统加载用户特定的配置文件(例如 .bashrc.profile),并启动用户会话。
  • 启动应用程序: 桌面环境或窗口管理器启动用户会话,并允许启动各种应用程序和服务。

总结

从 BIOS/UEFI 启动开始,到最终加载用户会话,Linux 系统经历了多个重要的阶段。每个阶段都可以配置和定制,以满足特定需求。了解这些步骤有助于解决启动问题并优化系统启动过程。

标签:systemd,启动,步骤,用户,文件系统,内核,linux,加载
From: https://www.cnblogs.com/rebrobot/p/18375734

相关文章

  • 科普特与璞华科技PLM项目正式启动,璞华易研助力新材料领域“产品生命周期管理”数字化
    璞华科技与浙江科普特新材料有限公司(以下简称为“科普特”)正式启动璞华易研PLM(产品生命周期管理)项目合作,标志着双方在推动新材料行业数字化转型方面迈出了坚实的一步。  近日,科普特PLM项目启动会在宁波成功召开。通过此次会议,双方进一步明确项目实施范围、方案及保障机制,确保......
  • 在Linux中,查看所有正在运行的进程?
    在Linux中,查看所有正在运行的进程可以使用多种命令,这些命令提供了不同的信息和视图。以下是一些常用的命令:1. ps 命令ps(ProcessStatus)是一个基本的进程查看工具,它可以显示当前系统中活动进程的状态。psauxaux选项组合表示查看所有用户的所有进程。查看特定用户的......
  • flutter在本地化后启动时显示黑屏
    Flutter是一种跨平台的移动应用开发框架,可以同时在iOS和Android平台上构建高性能、美观的应用程序。当Flutter应用程序在本地化后启动时显示黑屏,可能是以下几个原因导致的:资源加载问题:在应用程序本地化后,可能存在资源文件加载失败的情况,导致应用程序无法正常显示。可以检查资源......
  • 配置PXE预启动执行环境:使用PXE装机服务器网络引导装机
    文章目录PXE概述PXE批量部署的优点基本的部署过程搭建的前提条件搭建配置PXE装机服务器1.准备CentOS7安装源(YUM仓库)2.安装并启用TFTP服务3.安装并启用DHCP服务4.准备Linux内核和初始化镜像文件5.准备PXE引导程序6.安装FTP服务并准备CentOS7安装......
  • linux: 用户命名规范
    一,用户的级别:按id0:超级用户root1-999:系统用户1000-65535:用户级用户二,命名规范:1,linux用户名建议符合[a-z_][a-z0-9_-]*[$]正则表达式 即:用户名由字母、数字、下划线(_)组成2,linux用户名长度不超过32位3,用下划线来连接单词可以使用户名更容易记忆和理解4,用户名不应包......
  • Linux基础软件-yum(一)
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的,但是Linux作为一个服务器操作系统,肯定是要安装运行软件......
  • Linux云计算 |【第二阶段】SECURITY-DAY4
    主要内容:Kali系统、扫描与抓包、Nginx安全加固、Linux基本防护补充:使用Curl命令查看网页头部信息和页面内容不加选项,默认查看网页的内容;[-I]选项:访问服务器页面时,显示HTTP的头部信息;[-i]选项:访问服务器页面时,显示HTTP的头部信息和网页内容;[-X]选项:指定请求服务......
  • linux的入门安装
    Linux的入门安装学习什么是操作系统操作系统:人与计算机硬件交互的中介,发送指令给操作系统,操作系统进行翻译,告诉计算机硬件,到底想干啥 操作系统,operatingsystem 简称os是计算机中必不可少的基础系统软件,是应用程序运行以及用户操作必备的基础运行环境,是计算机系统的核心......
  • Linux下安装CGDB,并升级GDB
    下载CGDB创建文件夹mkdircgdbcdcgdbcgdb:Consolefront-endtotheGNUdebugger-GitCode克隆gitclonehttps://gitcode.com/gh_mirrors/cg/cgdb.git进入进入cgdb目录,一步步执行:./configure--prefix=/usr/localmakemakeinstall 参考linux安装cgdb_conf......
  • Linux系统中利用消息队列实现两个进程的通信
    在Linux系统中进程间的通信有很多的方法,这次利用消息队列实现进程的通信进程一的代码实现#include<sys/types.h>#include<sys/ipc.h>#include<stdio.h>#include<sys/msg.h>#include<sys/types.h>#include<sys/ipc.h>#include<string.h>structmsgbuf{ ......