MIT 6.828
[TOC] 实验总结 本次实验用时约八个小时。 收获是对线性地址的理解更深入了。 遇到的困难包括: 懒。 xv6-riscv 默认开了 kpti(内核和用户态页表分离) ,故需要在各种系统调用头部手动模拟 traverse 页表的过程,以及模拟处理缺页异常。(我现在觉得这不是一个很好的设计) 测试结果: $ make grade running lazytests: (3.7s) lazy: pte printout: OK lazy: map: OK lazy: unmap: OK usertests: (95.8s) usertests: pgbug: OK usertests: sbrkbugs: OK usertests: argptest: OK usertests: sbrkmuch: OK usertests: sbrkfail: OK usertests: sbrkarg: OK usertests: stacktest: OK usertests: all tests: OK Score: 100/100 0. 实验准备 实验指导链接 上来直接: $ cd xv6-riscv-fall19 $ git checkout lazy 实验分为四个子任务(实际更多个): 设计一个输出页表的调试程序 vmprint(pagetable_t) 。 实现不立即分配内存的