osbook-lab1-v1.0.10-for-天.pdf
在本次实验中,学生将通过操作系统课程配套的实验来加深对操作系统原理的理解。这一系列实验基于上海交通大学并行与分布式系统研究所开发的ChCore微内核操作系统原型,经过简化和添加练习后,成为ChCore课程实验(ChCoreLabs)。ChCore实验强调动手实践,要求学生完成包括ARM汇编语言、QEMU模拟器使用、内核启动和加载在内的多个环节。 实验分为三个主要部分。第一部分旨在让学生熟悉ARM汇编语言和QEMU模拟器的使用,以及QEMU/GDB的调试过程。学生将学习AArch64汇编语言,这是ARMv8 ISA的64位执行状态,并且需要通过阅读《ARM指令集参考指南》的特定章节来熟悉ARM ISA。如果是x86-64汇编语言的学习者,还需要对比这两种指令集的异同。在本部分实验中,学生将学会编写简单的汇编代码,并通过QEMU模拟器及GDB进行调试练习。QEMU是一个硬件模拟器,能够模拟RaspberryPi3(Raspi3),而GDB则是用于调试的工具。学生将使用QEMU/GDB调试ChCore内核,例如通过在chcore目录下执行make build命令来交叉编译ChCore的bootloader和内核,并通过make qemu命令在QEMU中运行镜像,进而观察标准输出。 第二部分聚焦于内核的引导与加载。在本部分,学生将观察Raspi3如何从闪存(SD卡)中加载.img镜像中的bootloader并执行。bootloader的作用包括将处理器的异常级别切换到EL1以及初始化引导UART、页表和MMU。这一步骤将引导程序跳转到实际的内核执行。异常级别由ARM指令集中的函数arm64_elX_to_el1进行切换,异常级别的概念在ARM指令集参考指南的A3.2节中有所描述。 在实验过程中,学生将使用gdb-multiarch来调试AArch64代码,这需要QEMU启动一个远程目标,等待GDB客户端的连接。为此,学生将需要在两个终端分别运行带有GDB调试的QEMU和GDB本身。GDB脚本.gdbinit用于初始化GDB,设置监听端口为QEMU的默认端口。通过执行make qemu-gdb和make gdb命令,学生可以分别打开带调试功能的QEMU和GDB,在QEMU中将看到(tcp::1234)输出,表明GDB正在监听来自QEMU的调试信息。 整体来看,本次实验是学生学习操作系统课程实践操作的第一步,涉及的知识点包括ARM汇编语言基础、QEMU模拟器及其调试工具GDB的使用,以及操作系统的引导加载过程。通过这一系列的实验,学生将逐步构建起对操作系统底层原理的理解,同时掌握必要的系统编程和调试技巧,为后续更深入的学习打下坚实的基础。
























剩余11页未读,继续阅读


- 粉丝: 11
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 中国建设银行电子商务金融服务平台商城账户操作手册.doc
- 酒水行业网络营销.doc
- 网络营销规划书.docx
- 计算机局域网工作组无法访问无法共享资源解决方案.doc
- 最新国家开放大学电大《机电一体化系统》网络核心课形考网考作业及答案.pdf
- 校园网网站建设经验谈.docx
- 项目八网络营销效果评价.ppt
- 项目管理施工队伍进场沟通协调对接交底.doc
- 中医体质软件流程演示.ppt
- 电子商务基础知识.pptx
- 佛山电台制播系统集成及附属设备的主要技术参数:.pdf
- 企业网络安全综合设计方案.pptx
- 网络宣传推广方案制作.doc
- 面向Oracle8数据库系统知识.pptx
- 机床仿真软件VERICUT说明书.ppt
- 基于单片机的红外遥控小车设计.doc


