代理内核方案避免了完整内核方案以上的很多缺点,因为代理内核的存在“天生”就是为在硬件(模拟器)上支撑应用,而设计的最小化的操作系统内核。**它可以根据应用的复杂度的不同,调整自身的复杂度**:例如,如果只是为了支撑Hello world!程序,它就只需要加载、系统调用支持即可,无需进程调度、设备、文件,甚至虚拟存储等等内容。当然,如果所支撑的应用非常复杂(例如,一个多线程的网络媒体服务器),代理内核将约等于一个完整的操作系统内核!**从学习操作系统知识的角度来看,代理内核的这些特点更有利于读者站在应用的角度来审视操作系统对硬件的包装和为应用所做的支撑,从而更好地理解从原理课程所学到的知识**。也正是代理内核的这些优点,驱使我们在RISC-V Proxy Kernel and Boot Loader这个开源项目[ProxyKernel](#references)的基础上,开发并设计了本书的一组操作系统实验。为了与开源项目进行区分,在本书中,我们将称我们开发和设计的代理内核为PKE(Proxy Kernel for Education)。