本章的1.1节将简单介绍RISC-V的诞生和发展历史,其后将介绍和讨论RISC-V体系结构的各个方面,如1.2节介绍汇编语言、1.3节讨论机器状态、1.4节分析中断和中断处理机制、1.5节讨论分页机制。最后,在1.6节介绍PKE实验涉及的工具软件,以及它们的使用方法。值得注意的是,RISC-V的体系结构本身就是一个庞大的知识体系,实际上是很难用一章的内容完全讲清楚的(我们鼓励对该体系结构感兴趣的读者延申阅读参考文献[开源指令集的指南](#references)以及[RISC-V instruction set manual](#references))。然而,不懂体系结构又无法理解操作系统和开展PKE的实验,所以本章将重点阐述和讨论与操作系统设计有关的知识内容,力求精简和突出重点。
本章的1.1节将简单介绍RISC-V的诞生和发展历史,其后将介绍和讨论RISC-V体系结构的各个方面,如1.2节介绍汇编语言、1.3节讨论机器状态、1.4节分析中断和中断处理机制、1.5节讨论分页机制。最后,在1.6节介绍PKE实验涉及的工具软件,以及它们的使用方法。值得注意的是,RISC-V的体系结构本身就是一个庞大的知识体系,实际上是很难用一章的内容完全讲清楚的(我们鼓励对该体系结构感兴趣的读者延申阅读参考文献[开源指令集的指南](#references)以及[RISC-V instruction set manual](#references))。然而,不懂体系结构又无法理解操作系统和开展PKE的实验,所以本章将重点阐述和讨论与操作系统设计有关的知识内容,力求精简和突出重点。
代理内核方案避免了完整内核方案以上的很多缺点,因为代理内核的存在“天生”就是为在硬件(模拟器)上支撑应用,而设计的最小化的操作系统内核。**它可以根据应用的复杂度的不同,调整自身的复杂度**:例如,如果只是为了支撑Hello world!程序,它就只需要加载、系统调用支持即可,无需进程调度、设备、文件,甚至虚拟存储等等内容。当然,如果所支撑的应用非常复杂(例如,一个多线程的网络媒体服务器),代理内核将约等于一个完整的操作系统内核!**从学习操作系统知识的角度来看,代理内核的这些特点更有利于读者站在应用的角度来审视操作系统对硬件的包装和为应用所做的支撑,从而更好地理解从原理课程所学到的知识**。也正是代理内核的这些优点,驱使我们在RISC-V Proxy Kernel and Boot Loader这个开源项目[ProxyKernel](#references)的基础上,开发并设计了本书的一组操作系统实验。为了与开源项目进行区分,在本书中,我们将称我们开发和设计的代理内核为PKE(Proxy Kernel for Education)。