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