最新 最热

6.S081/6.828: 10 Lab mmap

本实验实现mmap和munmap系统调用来更好的控制进程地址空间,可以向数组那样读写文件,写的数据放在buffer cache可以被其他进程所看到。

2023-02-18
3

6.S081/6.828: 9 Lab file system

目前xv6包含12个直接索引和1个二级索引,共索引12KB+256KB。增加xv6文件的索引范围,使得能够索引256*256KB+256KB+11KB,牺牲一个直接索引,将其转变为三级索引。...

2022-12-02
3

6.S081/6.828: 6 Lab thread

多线程是通过多路复用实现的,给每个进程独占CPU的幻觉。多路复用就是从一个进程切换到另外一个进程,切换时机是以下两种:

2022-11-30
3

6.S081/6.828: 1 Lab Xv6 and Unix utilities

第一个Lab是实现几个shell工具,每个工具都是一个可以独立运行的main函数,会调用系统调用,但其本身并不是系统调用。

2022-11-26
3

6.S081/6.828: 0 环境搭建和调试

本文讲解如何搭建6.S081的环境,主要涉及到仿真模拟器(qemu)、镜像文件、依赖。Ubuntu20搭建起来比较简单,执行以下命令即可。6.S081环境搭建

2022-11-26
3

6.S081/6.828: xv6源码分析--页表

在实现6.S081 Lab3过程中,需要对xv6页表有一定的掌握,因此写了这份源码分析。

2022-11-26
3

6.S081/6.828: 2 Lab system calls

上一个Lab实现了一些shell工具,这个Lab实现一些系统调用,来帮助理解系统调用如何工作、如何暴露。

2022-11-26
3

6.S081/6.828: 3 Lab page tables

本实验需要掌握内核页表、用户页表的布局,切换原理,初始化过程,遍历逻辑等方面,可以参考xv6源码分析--页表。

2022-11-26
3

6.S081/6.828: xv6源码分析--trap机制

处理器只能识别机器指令,不能识别汇编指令。汇编语言是直接面向处理器的程序设计语言,并且操作的对象不是数据,而是寄存器、内存。

2022-11-26
2

6.S081/6.828: 4 Lab traps

这个实验探索系统调用是如何通过trap实现的,会涉及到汇编代码和寄存器操作,建议先参考xv6手册以及xv6源码分析--trap机制。

2022-11-26
3