前言
Pintos是一个运行在80x86架构CPU的教学操作系统,被斯坦福、约翰斯·霍普金斯等著名高校的操作系统课程使用。它是一个很小的操作系统,但足以帮助读者理解操作系统中最基本的概念和机制。Pintos的实现与Linux有很多相似之处,且它的源代码中包括大量的注释,可以帮助读者更快地理解代码。作为专用的教学操作系统,它的实现更为简单,代码与Linux相比更加易懂。
本教程的源代码取自约翰斯·霍普金斯大学的修改版本。Pintos中包括四个project,分别是threads、user program、virtual memory和file system,由于Pintos的实验内容难度较大,编者在本教程的实验中已经对原始代码进行了补充,降低了读者完成项目的难度。
Pintos是一个为80x86体系结构的处理器设计的简单操作系统框架。它支持内核线程,能够加载和运行用户程序,还实现了一个简单文件系统,但这些功能并不完善。在本教程的系列实验中,读者的主要任务就是不断完善这个操作系统。
依托EduCoder平台,编者已经设置好了相应的实验环境,让读者能够更加集中精力于内核代码编写与调试。EduCoder平台提供了图形化的Eclipse调试环境,极大地降低了内核调试的难度。本实验已在EduCoder平台公开发布。
Pintos系列实验中的系统调用涉及wait、read等系统调用的实现,这些系统调用在Linux中也是标准的API,本教程设计了Linux进程管理、线程管理等实验,主要是让读者学会如何使用操作系统提供的API;在此基础上,本教程还设计了一组Pintos内核调试实验,目的是让读者学会分析操作系统;本教程最后设计了一组Pintos内核修改实验,目的是让读者能修改操作系统。从使用到分析再到修改,期望各位读者能在本教程中收获到操作系统的完整知识。
由于编者水平有限,教程中难免出现翻译或编写错误的地方,望广大读者不吝赐教,我们将在后续版本中不断进行修正。
编者2026年7月
