3.10 练习
- 分析RISC-V的设备树以找到计算机拥有的物理内存量。
- 编写一个用户程序,通过调用
sbrk(1)
为其地址空间增加一个字节。运行该程序并研究调用sbrk
之前和调用sbrk
之后该程序的页表。内核分配了多少空间?新内存的PTE包含什么? - 修改xv6来为内核使用超级页面。
- 修改xv6,这样当用户程序解引用空指针时会收到一个异常。也就是说,修改xv6使得虚拟地址0不被用户程序映射。
- 传统上,
exec
的Unix实现包括对shell脚本的特殊处理。如果要执行的文件以文本#!
开头, 那么第一行将被视为解释此文件的程序来运行。例如,如果调用exec
来运行myprog arg1
,而myprog
的第一行是#!/interp
,那么exec
将使用命令行/interp myprog arg1
运行/interp
。在xv6中实现对该约定的支持。 - 为内核实现地址空间随机化