基于ORANGE'S源码的第三次实验:操作系统实现与调试
需积分: 0 45 浏览量
更新于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-08 上传
2022-08-08 上传
2019-03-16 上传
2023-09-16 上传
2018-06-06 上传
独角兽邹教授
- 粉丝: 39
- 资源: 320
最新资源
- 律师个人网站源码 1.0
- 虚拟缓存
- 540 Images Of Popular Graph Theory Graphs540个流行图论图的图像-数据集
- MultHessian.rar_matlab例程_matlab_
- ext-ds:为PHP 7提供有效数据结构的扩展
- AWC日历
- torch_sparse-0.6.12-cp38-cp38-win_amd64whl.zip
- overdrive:Bash脚本从OverDrive有声读物服务下载mp3
- 西红柿梨子水果主题网站模板
- testing-strapi
- guss-rem:将CSS中的rem单位与像素后备一起使用,以用于旧版浏览器
- real-time-cryptocurrency-market-prices-websocket:全面了解可用的websocket,以及如何使用它们在自己的项目中实施执行市场数据
- IP201_GeometryTrans.zip_DSP编程_C/C++_
- torch_sparse-0.6.9-cp37-cp37m-win_amd64whl.zip
- TodoApp:Todo App关联了React Context
- lde64:LDE64(可重定位)源代码