MIT6.S081-lab-network 发表于 2022-06-16 分类于 MIT-6.S081 0. 前言· 本实验为MIT6.s8081的第十一个实验,也是最后一个实验,主题为 网卡驱动 相关。实验要求实现网卡驱动的收发过程核心逻辑。 本实验的前置知识较多,上来就是E1000网卡手册,但实际上需要阅读和理解的部分很少,实现的代码也只是几十行。 阅读全文 »
MIT6.S081-lab-mmap 发表于 2022-06-09 分类于 MIT-6.S081 0. 前言· 本实验为MIT6.s8081的第十个实验,主题为 mmap 相关。实验要求实现简化版本的 mmap/munmap 。 阅读全文 »
MIT6.S081-lab-fs 发表于 2022-06-05 分类于 MIT-6.S081 0. 前言· 本实验为MIT6.s8081的第九个实验,主题和 文件系统 相关。实验任务有两个: 增大xv6的最大文件size限制 实现软链接 整体来看,实验相对简单。 阅读全文 »
MIT6.S081-lab-lock 发表于 2022-05-31 分类于 MIT-6.S081 0. 前言· 本实验为MIT6.s8081的第八个实验,主题和 锁 相关。实验任务有两个: 增加内核内存分配器的并发性 增加文件系统buffer cache的并发性 本实验是第二个难度较大的实验。很值得一做。 阅读全文 »
MIT6.S081-lab-thread 发表于 2022-05-22 分类于 MIT-6.S081 0. 前言· 本实验为MIT 6.s081的第七个实验,主题和 多线程 相关。实验任务有三个: 实现user level的thread switch 完善并发hash table 实现一个Barrier,类似Java的CyclicBarrier 阅读全文 »
MIT6.S081-中断-uart驱动阅读笔记 发表于 2022-05-22 分类于 MIT-6.S081 听完MIT6.S081的中断课,感觉仍不是很理解,本文摘抄自这篇文章,做些整理写给自己,部分内容可能有错,看原文会更好。 阅读全文 »
MIT6.S081-copy-on-write 发表于 2022-05-21 分类于 MIT-6.S081 0. 前言· 本实验为MIT 6.s081的第六个实验,主题为 copy-on-write(cow, 写时复制)相关。实现进程在fork时的cow机制。 要求: 更改xv6内核 fork 机制,实现延迟分配物理page给子进程。具体而言,在fork时,只用创建子进程的页表,但无需拷贝实际的物理页,并同时更新父子进程对应页的PTE为 not writable。 当父或子进程对物理页进行实际更新时,CPU产生page fault, 内核此时才分配新物理页,执行拷贝和页表项重映射。 阅读全文 »
MIT6.S081-lazy-allocation 发表于 2022-05-17 分类于 MIT-6.S081 0. 前言· 本实验为MIT 6.s081的第五个实验,主题和内存的lazy allocation相关,是page table的应用之一。其余应用包括不限于(copy on write, zero fill on demand, demand paging)。 本实验分为三个task: 取消sbrk系统调用中的内存分配。即准备从eagerly分配变为lazy分配。 实现lazy allocation,然后通过echo hi测试。 继续完善lazy allocation,完成所有测试。包括lazytests和usertests。 阅读全文 »
MIT6.S081-traps 发表于 2022-05-13 分类于 MIT-6.S081 0. 前言· 本实验为MIT 6.s081的第四个实验,实验相对简单,主题和trap相关,目的是使学生了解syscall是如何从用户态到内核态,又是如何内核态回到用户态的。 本实验分为三个task: 检验学生是否熟悉RISCV-V汇编。出了几个问答题目。 Backtrace,实现类似gdb中bt命令的打印结果 Alarm,实现sigalarm系统调用,使得内核周期性回调用户提供handler函数。类似于一个定时器。 阅读全文 »
CS61C-lab4-RISCV汇编练习 发表于 2022-05-11 分类于 CS61C 前言· 为了更好的完成MIT6.S081的后续实验,花了一点时间学习了RISCV汇编。选择的资源为 伯克利CS61C课程,RISCV的介绍为Lec6到Lec9。本lab为RISCV的练习实验。 有用的资源推荐: CS61C 哔哩哔哩搬运 CS61C-RISCV汇编参考card MIT-6.004-RISCV汇编参考card 本lab的要求为: 点这里 实验采用的模拟器为 venus 阅读全文 »