操作系统实验报告主要探讨了操作系统启动过程中的关键环节,特别是针对EOS(实验操作系统)的启动机制。实验旨在让学生熟悉操作系统集成实验环境OS Lab,以及如何编译和调试EOS内核和应用程序。
实验名称为“操作系统的启动”,其目的是让学生掌握OS Lab的基本操作,包括编译和调试EOS内核。实验环境是OS Lab,这是一个专为操作系统学习和开发设计的平台。实验内容涉及使用Bochs作为远程目标机进行调试,以及分析软盘引导扇区程序的行为。
在实验过程中,有以下几个关键步骤:
1. **新建**:创建新的实验项目。
2. **调试**:使用Bochs模拟器进行调试。
3. **使用Bochs作为远程目标机**:Bochs被配置为虚拟目标机,用于模拟EOS操作系统的运行。
4. **调试软盘引导扇区程序**:引导扇区是启动过程的第一步,负责加载后续的loader.bin。
5. **查看boot.lst文件**:此文件包含了启动过程中涉及的文件列表和加载位置。
6. **查看指令字节码**:理解代码在机器层面是如何执行的。
7. **调试加载程序**:loader.bin负责加载kernel.dll到内存中,并设置保护模式。
8. **调试内核**:检查EOS内核在启动后的状态和行为。
9. **进程和线程分析**:区分应用程序进程(ID 31,优先级8)和系统进程(ID 31,优先级24),以及应用程序主线程(ID 33)与系统线程的差异。
实验的思考题涉及到EOS启动时为何需要boot.bin和loader.bin两个程序。boot.bin在实模式下运行,通过BIOS服务读取FAT12文件系统找到loader.bin;loader.bin则负责加载内核,检测内存并设置保护模式。若将loader.bin的功能合并到boot.bin,可能导致文件超过512字节,超过软盘引导扇区的容量限制。
第二个问题讨论了为什么loader.bin被加载到内存的0x1000处。这是由于该位置是第一个用户可用区域的开始,且空间相对较小,适合较小的loader.bin。这样做有利于内存管理,但限制了loader.bin的大小不能超过1c00k。
通过这个实验,学生不仅加深了对操作系统启动原理的理解,还提升了在实际环境中解决问题的能力,包括编译调试和报告编写技巧。实验过程中的困难和解决方法进一步促进了学生的个人成长和技术能力的提升。