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-riscv-book-Chinese...
一个有用的方法是,为每个内核栈分配的内存由单个与页面对齐的页面组成,因此给定栈的所有栈帧都在同一页面上。可以使用PGROUNDDOWN(fp)(参见kernel/riscv.h)来标识帧指针所指向的页面。 一旦你的backtrace开始工作,在kernel/printf.c中的panic中调用它,当内核奔溃时,这样你就可以看到内核的回溯。 实现 添加提示中的...
XV6学习(6)Lab: traps 这一个实验主要是对RISC-V的汇编、栈帧结构以及陷阱进行简单的了解,难度并不大。 代码放在github上。 1|0RISC-V assembly (easy) Q1: Which registers contain arguments to functions? For example, which register holds 13 in main's call to printf? RISC-V的函数调用过程参数优先...
一、RISC-V toolchain risc-v工具链安装是坑最多的一步,如果按照官网教程来安装,大概率会因为下载过慢而失败,即使我把命令行翻了墙效果也并不好。教程中的安装命令是brew install riscv-tools,但我发现riscv-tools由几个部分组成,我们其实只需要riscv-gnu-toolchain,源码下载方式如下: gitclone--recursive https...
首先,确保将git工作分支切换到traps分支,以获取所有相关文件。实验目标是通过RISC-V汇编和gdb调试user/call.c,掌握基本操作。实验步骤中,运行call程序,并在T2窗口中设置断点。使用gdb指令如si和p命令,观察a1和a2寄存器,它们分别保存printf函数的两个参数。a0寄存器中则存储了格式字符串的地址,通过x...
xv6-riscv + Zig zigriscvxv6operating-systemsxv6-riscv UpdatedApr 20, 2024 C This repository contains my work on the xv6 operating system lab as part of MIT's 6.S081 course. The lab involves extending and optimizing various modules of the xv6 operating system, which is based on the RISC...
本篇是关于 MIT 6.S081-2020-Lab4 的实现; 如果内容上发现有什么问题请不要吝啬您的键盘。 Backtrace 实验指导书上给出了 RISC-V 栈帧布局: 基本上只要看懂这幅图就可以过关了: /* kernel/printf.c */ void backtrace() { uint64 *fp = (uint64*)r_fp(), *ra; ...
xv6-riscv-lab MIT 6.S081 / 2020年秋季实验室 进度 Lab1 Lab2 Lab3 Lab4陷阱 Lab5延迟分配 Lab6写时复制 Lab7多线程 Lab8锁 Lab9文件系统 Lab10 mmap Lab11网络驱动程序 文件 Lab1 Lab2 Lab3点赞(0) 踩踩(0) 反馈 所需:1 积分 电信网络下载 ...
risc-v版本xv6运行环境设置 我打算写一系列文章,试着用来介绍risc-v版本xv6的源代码,xv6是MIT为其操作系统课程开发的教学操作系统。它的代码量不大,总共1万多行代码。代码量不算大.../mit6828-env.html 下载和安装过程比较耗时间。xv6源码:xv6操作系统源码 从github下载xv6源码 git clone git://github.com/mi...
在uvmcopy中,可以看到已有代码分配新页面并映射新页表。这里遵循实验指导,不分配kalloc,而是设置PTE的flag位,主要设置两个关键位。另外,在usertrap函数中,根据中断类型判断是否是缺页,并进行特殊处理。具体来说,根据RISC-V区分的三种页错误类型:加载页错误、存储页错误和指令页错误,scause寄存器指示...