米家龙实验2:理解bootloader的保护模式与OS加载过程
本次实验是系统软件启动过程的深入学习,主要针对2018级米家龙同学在数据科学与计算机学院进行的第二部分实践。实验的目标是熟悉Ubuntu系统操作、掌握硬件模拟器Qemu的使用以及gdb调试技巧,同时理解和实现bootloader的功能。 首先,实验在虚拟机环境下进行,利用老师提供的mooc-os-2015.vdi虚拟机,该虚拟机搭载的是64位Ubuntu操作系统版本4.4.0-19041-Mic。实验环境还包括WSL(Windows Subsystem for Linux),这使得学生能够在Windows系统上与Linux环境无缝交互。 实验的核心内容包括: 1. **虚拟机与操作系统**:理解并操作64位Ubuntu,设置和配置虚拟机环境,以便进行后续的实验操作。 2. **宏定义与寄存器管理**:通过练习3,学生需要分析bootloader如何通过宏定义来控制寄存器,如清零特定寄存器并开启A20位,这是从实模式切换到保护模式的关键步骤。 3. **保护模式与32位代码**:学习bootloader如何开启保护模式,这是一个安全模式,允许32位代码的执行,这对于操作系统启动至关重要。 4. **全局描述符表(GDT)初始化**:在保护模式下,初始化GDT(全局描述符表)用于管理内存空间,确保内存访问的正确性。 5. **bootloader加载过程**:在练习4中,学生需探讨bootloader如何读取硬盘扇区,以及如何解析和加载ELF格式的操作系统映像。这涉及硬盘I/O操作和文件系统管理。 6. **函数调用堆栈跟踪与中断处理**:练习5要求实现函数调用堆栈跟踪,理解堆栈在程序执行中的作用,而练习6则涉及到中断初始化和处理,包括中断向量表的结构和中断处理代码的定位。 实验中的具体问题和要求包括: - 分析bootloader如何从实模式进入保护模式,并理解其中的步骤。 - 描述bootloader加载ELF格式OS时涉及到的具体技术细节,如硬盘扇区读取和文件映射等。 - 实现堆栈跟踪函数,以便于跟踪函数调用的执行路径。 - 完善中断处理机制,明确中断向量表中每个表项的结构以及中断处理代码的存储位置。 这个实验着重于让学生亲自动手实践,深入理解操作系统启动流程、硬件模拟器的使用以及调试技术,这些都是现代软件工程师必备的基础技能。通过完成这些练习,学生不仅能够提升技术能力,还能对系统级编程有更全面的认识。
剩余18页未读,继续阅读
- 粉丝: 33
- 资源: 311
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 构建智慧路灯大数据平台:物联网与节能解决方案
- 智慧开发区建设:探索创新解决方案
- SQL查询实践:员工、商品与销售数据分析
- 2022智慧酒店解决方案:提升服务效率与体验
- 2022年智慧景区信息化整体解决方案:打造数字化旅游新时代
- 2022智慧景区建设:大数据驱动的5A级管理与服务升级
- 2022智慧教育综合方案:迈向2.0时代的创新路径与实施策略
- 2022智慧教育:构建区域教育云,赋能学习新时代
- 2022智慧教室解决方案:融合技术提升教学新时代
- 构建智慧机场:2022年全面信息化解决方案
- 2022智慧机场建设:大数据与物联网引领的生态转型与客户体验升级
- 智慧机场2022安防解决方案:打造高效指挥与全面监控系统
- 2022智慧化工园区一体化管理与运营解决方案
- 2022智慧河长管理系统:科技助力水环境治理
- 伪随机相位编码雷达仿真及FFT增益分析
- 2022智慧管廊建设:工业化与智能化解决方案