MIT6.S081 Lab lazy page allocation

本次实验是有关内存页懒分配的。所谓内存页懒分配,在本实验中,指的是在用户进程使用 sbrk() 系统调用来增加内存中堆的空间时,我们不直接在物理内存中分配相应的页,而是只是记录了分配到了哪些用户地址,在用户页面表中这些地址默认标记为无效。当进程首次尝...

学习笔记

MIT6.S081 Lab Traps

本实验主要是关于如何使用陷阱实现系统调用的。 RISC-V assembly (easy) 这个部分主要是回答一些问题。 首先我们按照实验的指示,运行下面的命令得到一份容易读懂的汇编和 C 结合的代码,位于 user/call.asm。 1make...

学习笔记

MIT6.S081 Lab Page Tables

实验开始前的折腾 突然发现 2023 版的和 2020 版的实验内容其实还不一样…… 因为我正在看的视频以及参考资料都是基于 2020 版的课程,因此我还是决定将之前的实验都迁移到 2020 版的 xv6-lab-2020 来。 在自己的 Macb...

学习笔记

MIT6.S081 Lab syscall

这一个实验的主要内容就是给 xv6 添加两个系统调用:trace 和 sysinfo。 Using gdb (easy) 这个部分我就不做了…… M1 的 Macbook Air 上的 gdb 太难安装了,所以暂时用不了 gdb 调试…… Sys...

学习笔记

MIT6.S081 Lab util

环境准备 不得不说,在 M1 的 Macbook Air 上写这个实验还挺费劲…… 我尝试根据课程的官方指引安装了 qemu 和 riscv-tools,结果总是遇到各种奇怪的问题…… 首先,根据官方的指导,我应该这样安装 riscv-tools:...

学习笔记