Linux 内核:从开机加电到执行main函数的4个主要步骤

本文详细描述了早期Linux版本0.11的启动流程,从BIOS自检到bootsect加载引导程序,再到setup阶段的内存规划和内核复制,以及head.s中关键步骤如保护模式转换和main函数执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 0.11 是一个非常早期的 Linux 版本,其启动过程体现了经典的操作系统启动方式,下面说明从开机加电到执行main函数之前的过程。

1. BIOS

  • 硬件的初始化和自检 检测显卡内存等
  • 建立中断向量表和中断服务程序
  • 通过int 0X19中断把软盘第一扇区的bootsect载入内存的0x07C00位置

2. bootsect(引导扇区)

  • 规划内存

  • 把自身从0x07C00复制到0x90000 操作系统开始按照自己意愿安排内存
  • 借助bios提供的 int 0x13 中断加载4个扇区的setup程序到内存
  • 借助bios提供的 int 0x13 中断加载240个扇区的system程序到内存
  • 确定软盘驱动器为根设备(linux启动需要内核镜像和根文件系统)
  • 写入机器系统数据
  • 跳转至0x90200将控制权转交给 setup

3. setup

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值