基于ORANGE'S源码的第三次实验:操作系统实现与调试
需积分: 0 131 浏览量
更新于2024-08-05
收藏 739KB PDF 举报
在本次实验记录中,学生冯亚林(学号191850036,南京大学软件学院)针对操作系统实现项目《ORANGE’S:一个操作系统的实现》进行了深入学习和实践。首先,他从Gitee仓库获取了第七章的源码,并选择文件夹m作为开发框架。在项目开始前,他进行了必要的准备工作,包括大致阅读参考资料、调试程序环境以及运行样例代码,以熟悉项目背景和代码结构。
遇到的问题之一是编译时的“__stack_chk_fail_local”错误,这个问题在Ubuntu环境下通过在makefile的CFLAGS中添加`-fno-stack-protector`选项得以解决。另一个挑战是由于虚拟机是64位的,而源程序是32位的,因此他需要在makefile中明确指定使用32位编译和链接方式。
在实现过程中,学生扩展了makefile的功能,增加了对"makerun"的支持,即在makeimage之后直接在终端执行"bochs"命令来启动虚拟机。他意识到大部分任务已完成,但仍需实现Tab键功能、20秒清屏、ESC按键查找以及Ctrl+Z撤回等特定功能。
在源码阅读方面,他建议按照《orange's》这本书的指导,先从第242页至252页关于键盘输入相关部分开始理解,特别是`keyboard.keyboard.c`中的`keyboard_handler()`函数和`init_keyboard()`方法,这两个函数分别负责键盘中断处理和初始化键盘中断。书中还提到,键盘输入是通过8048或兼容的键盘控制器8042实现的,这部分内容对于理解操作系统如何处理用户输入至关重要。
总结来说,这次实验涉及到了操作系统源码的调试、编译问题的解决、虚拟机环境配置、源码阅读策略以及具体功能的实现,这些都是操作系统实现项目中的核心知识点。通过这个过程,学生不仅提升了编程技能,也加深了对操作系统原理的理解。
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-08 上传
2022-08-08 上传
2019-03-16 上传
2023-09-16 上传
2018-06-06 上传
2024-05-06 上传
独角兽邹教授
- 粉丝: 39
- 资源: 320
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构