github个人文档及实验代码仓库:XV6-Lab-doc&code Boot xv6:初始环境搭建,能够连接 qemu 并运行已经写好的命令行工具。 sleep:实现用户命令 sleep,能够接受命令行输入,以秒为单位暂停。 pingpong:基础的管道(pipe)实验,利用已有的 pipe 接口,实现父子进程之间的双向通信。 primes:利用多线程和 pipe 实现 prime sieve...
Lab0:Utilities Lab1:System calls Lab2:Page tables Lab3:Traps Lab4:Copy on-write Lab5:Multithreading Lab6:Network driver(选做) Lab7:Lock Lab8:File system Lab9:mmap 时间安排 参考资料 MIT课程视频 双语字幕版MIT 6.S081 2020 操作系统 xv6-book 中文翻译版 https://github.com/FrankZn/xv6-risc...
find实验(moderate) find程序。在指定目录中寻找特定的文件。 #include"kernel/types.h"#include"kernel/stat.h"#include"user/user.h"#include"kernel/fs.h"voidfind(char*path,char*target){charbuf[512], *p;intfd;structdirentde;structstatst;char*cur_dir ="/.";char*parent_dir ="/..";if((fd ...
Lab1_5 find 编写一个简单版本的 UNIX 查找程序:查找目录树中具有特定名称的所有文件。给定对应的文件名以及文件名在目录,找到文件名的位置. 查看user/ls.c 以了解如何读取目录。 使用递归允许 find 访问到子目录。 不要递归到“.”和”..”。 对文件系统的更改在 qemu 运行中持续存在; 要获得一个干净的文件...
在find和xargs任务中,我们需要处理文件和命令行参数。find程序需要搜索指定文件夹中的特定文件,而xargs则用于从标准输入读取数据,并将其作为参数传递给其他命令。 总的来说,这个Lab帮助我们熟悉了Unix环境中常用的系统调用和实用程序,如文件操作、进程管理和进程间通信等。
Lab1: Xv6 and Unix utilities这个实验主要是熟悉xv6开发环境,学会使用常见的几个系统调用来编写代码。看其他大佬说这个lab和后面的lab没有太大关联,所以有些很难的直接cv了,不做详细记录,主要是熟悉开发环境构建并运行xv6:$ make qemu打印每个进程的信息:键盘键入Ctrl-p...
xv6使用的是以太网PCI控制器,支持DMA。DMA可以将设备和CPU解耦,并且DMA队列能够支持突发流量,CPU设置内存地址后设备直接将数据写入到该地址内,不经过CPU。 2 Ethernet 代码语言:c 代码运行次数:0 运行 AI代码解释 #defineETHADDR_LEN6// an Ethernet packet header (start of the packet).structeth{uint8 dhost...
xv6-lab-locks/bio.o 46.1 KB Binary file not shown. xv6-lab-locks/buf.h +15 Original file line numberDiff line numberDiff line change @@ -0,0 +1,15 @@ 1 + struct buf { 2 + int valid; // has data been read from disk? 3 + int disk; // does disk "own" buf?
前言本篇是关于 MIT 6.S081-2020-Lab6(Copy-on-Write Fork for xv6) 的实现;如果内容上发现有什么问题请不要吝啬您的键盘。准备工作先大概罗列一下实现 cow-...
MIB 6.1810实验Xv6 and Unix utilities(5)find 难度:moderate Write a simple version of the UNIX find program for xv6: find all the files in a directory tree with a specific name. Your solution should be in the file user/find.c. 题目要求:实现find ,即在某个路径中,找出某个文件...