北航2024操作系统实验

Yunge HuOS

北航2024操作系统实验

这里是每次实验的实验报告,实验代码仓库位于2024-os-labopen in new window

实验内容

本课程设计的操作系统实验分为6个实验(Lab1 ~ Lab6),目标是在一学期内自主开发一个小型操作系统。具体实验内容如下。

  • 内核、启动和 printf :通过PC启动的实验,掌握硬件的启动过程,理解链接地址、加载地址和重定位的概念,学习如何编写裸机代码。
  • 内存管理:理解虚拟内存和物理内存的管理,实现操作系统对虚拟内存空间的管理。
  • 进程与异常:通过设置进程控制块和编写进程创建、进程中止和进程调度程序,实现进程管理;编写通用中断分派程序和时钟中断例程,实现中断管理。
  • 系统调用与 fork :掌握系统调用的实现方法,理解系统调用的处理流程,实现本实验所需的系统调用。
  • 文件系统:通过实现一个简单的、基于磁盘的、微内核方式的文件系统,掌握文件系统的实现方法和层次结构。
  • 管道与 shell :实现具有管道,重定向功能的命令解释程序 shell ,能够执行一些简单的命令。最后将6部分链接起来,使之成为一个能够运行的操作系统。

实验内容的关系

另外,考虑有些学生对Linux系统、GCC编译器、Makefilegit 等工具不熟悉,专门设置了一个Lab0,主要介绍Linux、Makefilegitvi 和仿真器的使用以及基本的 shell 编程等,为后续实验的顺利实施打好基础。

实验设计

由于开发一个实际的操作系统难度大、工作量繁重,为了保证教学效果,在核心能力部分采用微内核结构和增量式设计的原则,因此可以从最基本的硬件管理功能逐步扩充,最后完成一个完整的系统。实验内容的设计满足以下条件。

  • 每个实验可独立运行与测试,便于调试与评测,可获得阶段性成果。
  • 每个实验内容包含相对独立的知识点,并只依赖其前序实验。
  • 基本保证在两周内完成一个实验,这样在一学期内可以完成整个实验。
  • 各个实验提交的代码一直伴随整个实验过程,可以不断改进、完善代码。

补充说明

本人在实验课中的成绩如下,所以请放心答案的正确性:

result

希望大家能体验到自己动手完成一个小操作系统的乐趣!

Last Updated 9/22/2024, 8:35:40 AM