linux0.11的启动顺序~

本文详细介绍了从系统加电到Linux内核启动的具体过程,包括BIOS初始化、磁盘引导扇区加载、bootsect.s及setup.s执行、system模块加载与初始化、保护模式设置等关键步骤。

 

入上图所示:

1.系统加电后,80X86的CPU将进入实模式,并从地址0xFFFF0开始自动执行程序代码,而这个地址通常是ROM-BIOS中的地址。

2.BIOS将执行一些系统的检测,并在物理地址0处初始化中断向量。将可启动设备的第一个扇区(磁盘引导扇区MBR)读入内存绝对地址0x7C00处,并跳转到这个地方。对linux0.11来说,读到这个地方的是bootsect.s(磁盘引导块程序)。

3.bootsect.s开始执行后,第一,将自己从0x7C00移动到0x90000(576k);第二,使用BIOS中断将setup.s加载到自己的后面(0x90200)(576.5k);第三,将system加载到地址0x10000处。

4.setup.s的功能主要是利用BIOS中断读取机器系统数据,并将这些数据保存到0x90000开始的位置(覆盖掉了bootsect 程序所在的地方),这些数据将被内核中相关程序使用。

5.然后setup 程序将system 模块从0x10000-0x8ffff(当时认为内核系统模块system 的长度不会超过此值:
512KB)整块向下移动到内存绝对地址0x00000 处。

6.接下来加载中断描述符表寄存器(idtr)和全局描述符表寄存器(gdtr),开启A20 地址线,重新设置两个中断控制芯片8259A,将硬件中断号重新设置为0x20 - 0x2f。最后设置CPU 的控制寄存器CR0(也称机器状态字),从而进入32 位保护模式运行,并跳转到位于system模块最前面部分的head.s 程序继续运行。

7.为了能让head.s 在32 位保护模式下运行,在本程序中临时设置了中断描述符表(idt)和全局描述符表(gdt),并在gdt 中设置了当前内核代码段的描述符和数据段的描述符。在下面的head.s 程序中会根据内核的需要重新设置这些描述符表。

本方案针对2025华为杯第二十二届中国研究生数学建模:F提供高质量成品文章、完整解题代码及所有结果表。内容涵盖Python,MATLAB版本代码、Word论文文档无水印(Word版本),并包含详细思路解析,助力参赛队伍高效完成比赛,冲刺高奖项。【核心内容】成品文章包含完整解题思路、模型构建、数据分析与结果讨论。格式规范,符合竞赛论文要求,可直接提交或稍作修改使用。完整代码提供Python和MATLAB语言实现,覆盖数据处理、模型训练、结果可视化全流程。代码模块化设计,注释清晰,便于理解与二次开发。结果表格所有实验数据与结果均已整理成表,直观展示模型性能与对比分析。提供一键转换工具,方便用户根据需求调整论文格式。【产品优势】高效实用:成品论文与代码已通过严格测试,确保结果准确且可复现。全面覆盖:从思路解析到最终成果,一站式解决参赛需求。灵活便捷:支持多平台使用,网盘直发,后续更新免费获取。【适用人群】希望快速掌握解题思路与实现方法的学习者。需要高质量参考材料的科研爱好者。【交付清单】成品论文(Word)Python代码包数据集与结果表1.加密赛题开始下载时间:2025年9月20日8:00,截止时间:2025年9月25日12:00;2.赛题解密密码公布时间:2025年9月21日8:00,截止时间:2025年9月25日12:00;3.竞赛开始时间:2025年9月21日8:00,截止时间:2025年9月25日12:00;4.上传竞赛论文MD5码开始时间:2025年9月24日12:00,截止时间:2025年9月25日12:00;5.竞赛论文PDF格式上传开始时间:2025年9月25日14:00,截止时间:2025年9月26日24:00;6.附件上传开始时间:2025年9月27日8:00,截止时间:2025年9月28日24:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值