这是一个不到2000行的操作系统,巧妙地利用ARM9 CPU的内存管理单元(MMU)实现进程的切换。ARM9的4G虚拟地址可分成128个进程空间,每个32M。虽然它们的虚拟地址(VA)都是0-(32M-1),但是对应的MVA(Modified vitual address,由虚拟地址VA和进程号PID组合而来)不一样,设置MVA对应的页表指向不同物理地址就可以很方便地让各进程运行空间相互隔开。代码很少,注释丰富,希望能对想理解操作系统、了解ARM体系结构的朋友有所帮助。