操作系统从硬盘加载到内存的启动流程回顾

在这里插入图片描述

操作系统的启动是一个精密的多阶段过程,涉及硬件自检、引导加载程序、内核初始化等多个关键步骤。以下是其核心流程:


1. BIOS/UEFI自检与启动设备选择
  • 硬件自检(POST)
    计算机通电后,BIOS/UEFI首先执行加电自检(POST),检测CPU、内存、硬盘等核心硬件是否正常。若检测到故障(如内存损坏),系统会通过蜂鸣声或屏幕错误提示中止启动。
  • 启动设备选择
    BIOS/UEFI根据预设顺序(如硬盘、U盘、光驱)查找可引导设备。若选择硬盘,则读取硬盘的第一个扇区(MBR或GPT分区表),获取引导加载程序的位置。

2. 引导加载程序(Bootloader)加载内核
  • MBR与引导加载程序的作用
    MBR(主引导记录)位于硬盘首扇区(512字节),包含主引导程序和分区表。其核心任务是将操作系统的引导程序(如GRUB)加载到内存。现代系统若使用UEFI,则直接调用EFI Boot Manager,跳过MBR的限制。
  • 内核加载与initramfs
    引导加载程序(如GRUB)从硬盘的/boot分区读取**压缩的内核镜像(如vmlinuz)初始内存盘(initramfs)**到内存。initramfs包含临时根文件系统及硬件驱动,用于挂载实际根文件系统前的过渡环境。

3. 内核初始化与模式切换
  • 实模式到保护模式
    内核首先在实模式下运行初始化代码(如检测硬件参数),随后切换至保护模式或64位模式,解压内核镜像到内存高端地址(如16MB以上)。
  • 硬件初始化与根文件系统挂载
    内核加载必要的驱动程序(如硬盘、显卡驱动),初始化内存管理、进程调度等核心模块,并通过initramfs挂载临时根文件系统。随后切换到硬盘上的实际根文件系统(如ext4)。

4. 系统服务启动与用户登录
  • 第一个用户进程(init/systemd)
    内核启动后,创建进程号为1的init进程(现代系统多为systemd)。该进程负责挂载根文件系统、启动系统服务(如网络、日志、SSH),并执行初始化脚本。
  • 用户空间环境准备
    系统服务启动完成后,进入用户登录界面(图形化或命令行)。用户登录后,启动Shell或桌面环境,完成整个启动流程。

关键技术与扩展

  • MBR与GPT的区别:MBR仅支持2TB以下硬盘和4个主分区,而GPT支持更大容量和更多分区,适合现代UEFI系统。
  • initramfs的作用:解决硬件驱动依赖问题(如RAID、LVM),确保内核能访问实际根文件系统。
  • 冷启动与热启动:冷启动(断电重启)会触发完整硬件自检,热启动(Ctrl+Alt+Del)仅重置软件状态。

通过上述流程,操作系统从硬盘的静态数据逐步加载为内存中动态运行的系统,实现从硬件控制到用户交互的完整链条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值