linux启动过程解析
Linux 解析 启动 过程
2023-06-13 09:17:41 时间
- BIOS阶段:
BIOS (Basic Input/Output System) 是一组固件,通常存储在计算机主板上的芯片中。当计算机启动时,BIOS会自动运行,并通过POST (Power-On Self-Test) 对计算机进行自检,以确保硬件设备正常工作。在自检完成后,BIOS会寻找可引导的设备,通常是硬盘或光盘驱动器。如果找到了可引导设备,则BIOS将把控制权交给该设备中的引导程序。
Boot Loader阶段:
引导程序是一段特殊的代码,通常被称为Boot Loader,它负责加载操作系统内核并初始化系统环境。常见的Boot Loader有GRUB、LILO和SYSLINUX等。在Linux中,Boot Loader通常安装在硬盘的MBR (Master Boot Record)或EFI系统分区。当Boot Loader加载时,它会在引导选项菜单中显示可用的内核版本,用户可以选择要引导的内核。
Kernel初始化阶段:
内核是操作系统的核心,它控制着系统的各种操作。当Boot Loader加载内核后,内核会开始初始化硬件设备和文件系统,并启动第一个用户空间进程——init进程。内核初始化的过程包括以下几个步骤:
- 加载驱动程序:内核会加载与硬件设备对应的驱动程序,并初始化这些设备。驱动程序通常存储在内核模块中,可以在运行时加载和卸载。
- 初始化文件系统:内核会检查和挂载根文件系统,以便系统可以访问文件和目录。根文件系统通常在内核中硬编码。
- 启动init进程:内核会在用户空间启动第一个进程——init进程。init进程是所有进程的祖先进程,它负责启动和管理所有其他进程和服务。
- 建立内存映射:内核会将物理内存映射到虚拟内存空间中,并为每个进程分配一定的虚拟内存空间。
用户空间初始化阶段:
在init进程启动后,它会执行一系列初始化脚本,如/etc/inittab、/etc/init.d等等,以初始化各种服务和进程。这些初始化脚本通常包括以下几个步骤:
- 启动系统服务:系统服务是一些后台进程,如网络服务、邮件服务、Web服务等等。它们在系统启动时自动启动,并在后台运行,以提供各种功能和服务。
- 启动用户登录管理程序:用户登录管理程序(如getty和systemd-logind)负责管理用户登录和会话。当用户输入用户名和密码后,登录管理程序会验证用户身份并启动相应的会话。
- 启动图形界面:如果系统安装了图形界面,那么初始化脚本会启动图形界面管理程序,如Xorg或Wayland。这些程序负责管理图形界面和用户桌面环境。
用户登录阶段:
当图形界面启动后,用户可以在屏幕上看到登录窗口,输入用户名和密码后,登录管理程序会验证用户身份并启动相应的会话。在会话开始后,用户可以使用各种应用程序和工具,如终端、浏览器、编辑器等等。
相关文章
- 制作Linux系统U盘启动盘:制作简单实用(linux系统u盘启动盘)
- Linux内核配置解析:深入剖析内核参数(linux内核配置详解)
- 开源Linux:神奇的开源世界(linux的源代码)
- Linux基本磁盘管理:解析实现磁盘控制(linux基本磁盘管理)
- 鸟哥用Linux驱动服务器之旅(linux鸟哥服务器)
- 在Linux上运行Windows程序的方法(linux运行windows程序)
- 深入探索Linux虚拟串口的驱动开发(linux虚拟串口驱动)
- Linux下检测Oracle数据库启动状态(linux查看oracle是否启动)
- Linux自动启动配置:轻松实现自启动(linux自启动配置文件)
- Linux分区:一图解析系统结构(linux分区图解)
- Linux启动串口配置指南(linux启动串口配置)
- Linux分支:开启开源之旅(linux的分支)
- 发行Linux系统的分支发行之美(linux的分支)
- 脚本Linux下使用PHP启动脚本指南(linux下php启动)
- 调查:深入探究Linux 启动过程的缓慢困境(linux启动慢)
- Linux系统时钟频率解析(系统时钟频率linux)
- 深入Linux: 玩转文件管理系统(linux操作系统文件管理)
- 探究Linux进程通信机制,解析进程间通讯方式及内核原理,深入了解操作系统运转机制。(linux进程通信机制)
- 深入解析Linux操作系统的原理(linux系统原理解析)
- FPGA与Linux融合之路(fpga和linux)
- Linux软链接:一种优雅的目录设计方式(linux软链接目录)
- Linux程序员的快速入门指南(linux程序员指南)
- Linux如何使用命令启动软件(linux启动软件命令)
- 问题解决Linux桌面的启动问题(linux 桌面启动)
- 快速复制并修改Linux文件名(linux复制并重命名)
- Linux下的make命令:简明解析(make命令 linux)