首页 > 系统相关 >linux系统启动顺序

linux系统启动顺序

时间:2024-05-18 12:42:42浏览次数:21  
标签:初始化 系统启动 系统 用户 顺序 内核 linux 进程 加载

Linux系统的启动过程可以分为以下几个阶段:

1. **BIOS/UEFI阶段:**
- 计算机通电后,首先执行固件程序,即BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)。
- BIOS/UEFI负责进行硬件自检(POST)、初始化硬件设备(如CPU、内存、显卡、硬盘等)、加载引导程序等。

2. **引导加载程序(Bootloader)阶段:**
- 引导加载程序是在BIOS/UEFI完成初始化后加载的,它负责加载操作系统内核到内存中并启动。
- 在大多数Linux系统中,常用的引导加载程序是GRUB(GRand Unified Bootloader)或者类似的引导加载程序,它们通常被安装在硬盘的引导扇区或者特定的分区中。
- 引导加载程序会读取配置文件(如`/boot/grub/grub.cfg`),根据配置加载内核映像和初始化ramdisk(initramfs)。

3. **内核加载阶段:**
- 引导加载程序加载Linux内核映像(通常是`vmlinuz`或`bzImage`)到内存中。
- 内核负责初始化系统硬件、建立内存管理、加载并初始化必要的驱动程序等。
- 在初始化完成后,内核会启动用户空间的第一个进程,即init进程。

4. **初始化进程(init)阶段:**
- 初始化进程是用户空间的第一个进程,它负责系统的初始化和启动用户空间的其他进程。
- 在传统的SysVinit系统中,init进程会根据配置文件(如`/etc/inittab`)启动一系列的系统服务和用户进程。
- 在现代的Linux系统中,通常使用Systemd作为初始化系统,它会并行启动系统服务,并根据依赖关系和配置文件(如`/etc/systemd/system/*.service`)管理系统的启动过程。

5. **用户空间初始化阶段:**
- 一旦初始化进程启动完成,系统就进入了用户空间,用户空间的各种服务和进程开始运行。
- 这包括网络服务(如网络管理、DHCP、DNS)、文件系统挂载、用户登录管理等。
- 最终,系统初始化完成,用户可以登录并使用系统了。

总的来说,Linux系统的启动过程涉及硬件初始化、引导加载程序、内核加载、初始化进程启动以及用户空间的初始化等多个阶段,每个阶段都有其特定的功能和作用。

标签:初始化,系统启动,系统,用户,顺序,内核,linux,进程,加载
From: https://www.cnblogs.com/whcjob/p/18199223

相关文章

  • linux启动
    我们在下面会在u-boot下面所有tftp服务从服务器下载linux内核和根文件,并且使用NFS挂载内核的根文件系统,所有下面需要做以下准备:准备阶段linux根文件编译buildroot编译根文件流程:https://www.cnblogs.com/Hlc-/p/17647373.htmlu-boot编译u-boot编译和启动流程:https://www.cn......
  • jsoncpp按写入顺序读取
    jsoncpp按写入顺序读取在不修改jsoncpp源码的基础上,按照写入顺序读取,编写JsonValue类派生自Json::Value。jsonvalue.h#ifndefJSONVALUE_H#defineJSONVALUE_H#include<jsoncpp/json/json.h>classJsonValue:publicJson::Value{public:staticinlineJson::Val......
  • Linux系列---【cannot open directory .: Input/output error】
    1.问题执行cd/tmp,rm-rf/tmp,ll/tmp时,发现报错:cannotopendirectory.:Input/outputerror。2.分析这个一般是因为磁盘损坏导致的,我的是因为我对xfs类型的lv_tmp未卸载,就强制缩容,导致了缩容失败,从而也造成了磁盘不可用。3.解决方案注意:这个方案会丢失数据#-l选项......
  • Linux 提权-Sudo_2
    本文通过Google翻译SudoPart-2–LinuxPrivelegeEscalation-Juggernaut-Sec这篇文章所产生,本人仅是对机器翻译中部分表达不准确的字词进行了校正及个别注释补充。导航0前言1第1部分快速回顾2利用Sudo命令–滥用预期功能2.1使用Hashcat破解Shadow......
  • grafana监控Linux资源,导入8919,无数据解决办法
    这是由于grafana版本过低,和新的8919监控模板不兼容导致的。如下图所示 解决办法方法1、替换grafana为更高版本;方法2、将8919对应的.json文件下载下来,打开后将table-old替换为table,然后再导入  问题得到解决 ......
  • Linux 提权-Sudo_1
    本文通过Google翻译SudoPart-1–LinuxPrivilegeEscalation-Juggernaut-Sec这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航1什么是Sudo以及它是如何工作?1.1Sudo二进制、权限和组解释2手动寻找Sudo权限2.1......
  • 【Linux】《VMware17搭建Ubuntu.22.04-Rust开发环境》
    下载VMware17安装包下载链接:创建虚拟机之后都默认就可以了。进入系统设置登录账号和密码以及修改下语言,剩余都默认即可。设置中文界面设置中文输入法接下来开始设置输入法切换快捷键设置使用Ctrl+Alt+T打开终端,输入ibus-setup重启,看一下是......
  • linux 按照docker容器
    安装前提条件Docker要求CentOS系统的内核版本高于3.10,首先验证你的服务器是否支持Docker!通过uname-r命令查看当前的内核版本`[root@localhosthome]#uname-r3.10.0-1160.el7.x86_64`可以看到我的服务器是4.18.0,是支持Docker的。第一步:检查并清除系统残余项,并安......
  • ArchLinux/Manjaro升级到6.9内核后的问题解决
    1.KDEWallet系统配置---个性化---账户详细信息---kde钱包1.需要启用kde钱包子系统,否则无法正常使用记录的账号密码信息2.右下角,调用钱包管理器,修改密码,设置为空密码至此,开机需要输密码连接kdewallet的应用不需要输入即可密码连接2.更新archcn-keyring报GPG错误解决:sudopa......
  • Linux平台移植音频芯片实战记录
    本文详细记录在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程,其他平台操作方法类似,希望为大家提供帮助。1. 环境准备平台: HD6ULL-IOT开发板要求: 外接一个WM8960模块。要求能正常播放音频文件。2. 原理图及相关资料将模块飞线到底板J17上,接法如下;且模块1脚 ......