操作系统的基本原理与简单实现

—基于ucore OS + RISC-V

对于在校的学生和已经参加工作的工程师而言,能否以较小的时间和精力比较全面地了解操作系统呢?陆游老夫子说过“纸上得来终觉浅,绝知此事要躬行”,也许在了解基本的操作系统概念和原理基础上,通过实际动手来一步一步分析、设计和实现一个微型化的操作系统,会发现操作系统原来如此,概念原理和实际实现之间有紧密的联系和巨大的差异。

早期开放开源的UNIX操作系统和MIT教授 Frans Kaashoek 等基于UNIX v6设计的xv6操作系统给了我们启发:对一个计算机专业的本科生而言,设计实现一个操作系统有挑战但是可行!但x86相对封闭&复杂和有一定历史包袱的CPU硬件接口给OS学习带来了一定的挑战。1980年前后,UC Berkeley的Dave Patterson主导了Berkeley RISC项目并设计了其第一代的处理器RISC I,并在2014年发展到了开放&开源的第五代指令集架构RISC-V。本书想进行这样的教学尝试,以操作系统基本原理为教学引导,以简洁的RISC-V CPU为底层硬件基础,设计并实现一个微型但全面的“麻雀”操作系统—ucore。期望能够采用简化的计算机硬件为基础,以操作系统的基本概念和核心原理为实践指导,逐步解析操作系统各种知识点和对应的实验,做到有“理”可循和有“码”可查,最终让读者了解和掌握操作系统的原理、设计与实现。

陈渝 向勇

清华大学计算机系

2018年春