这是我学习 mit 6.S081 (原 mit 6.828 课程)的 lab 代码。这十个实验的相关笔记在以下博客地址,课程的学习笔记也在我的博客中。
实验名 | 介绍 | 笔记地址 | 代码分支 |
---|---|---|---|
Lab: Xv6 and Unix utilities | 是熟悉xv6的代码与Unix系统调用流程 | lab1 | util |
Lab: System calls | 为xv6内核添加两个系统调用,负责追踪系统调用信息与收集系统信息 | lab2 | syscall |
Lab: page tables | 跟踪xv6内核如何操作用户进程页表,并添加页表相关功能代码 | lab3 | pgtbl |
Lab: traps | 学习内核如何 Trap 阅读汇编代码回答问题,为 xv6 添加 backtrace 与 支持计时器中断的用户 handler 的系统调用 | lab4 | traps |
Lab 5: Copy-on-Write Fork for xv6 | 为 xv6 添加 Copy-on-Write 的 fork 机制 | lab5 | cow |
Lab 6: Multithreading | 为 xv6 添加用户级线程与使用 pthread 库实现线程安全的hash table 与 barrier | lab6 | thread |
Lab 7: Network driver | 为 xv6 编写网卡设备驱动程序 | lab7 | net |
Lab 8: Locks | 为 xv6 的堆与buf缓冲区提供细粒度锁机制,减少 lock contention 以提高性能 | lab8 | lock |
Lab 9: File System | 为 xv6 文件系统添加大文件读写与符号链接 | lab9 | fs |
Lab 10: mmap | 为 xv6 文件系统添加添加mmap和munmap,重点关注内存映射文件 | lab10 | mmap |