前言
好吧,又开了个坑,不知道这个能写多久。。。。6.s081(现在貌似叫6.1810?)是MIT经典OS神课6.828拆出来的本科生课程,相对于之前的还是简单一些。。。个人环境为WSL(Ubuntu22)。
其他篇章
环境搭建
Lab1: Utilities
Lab2: System calls
Lab3: Page tables
Lab4: Traps
Lab5: Copy-on-Write Fork for xv6
参考链接
官网链接
xv6手册链接,这个挺重要的,建议做lab之前最好读一读。
xv6手册中文版,这是几位先辈们的辛勤奉献来的呀!再习惯英文文档阅读我还是更喜欢中文一点,开源无敌!
个人代码仓库
官方文档
个人环境
- Windows规格
版本 Windows 11 家庭中文版
版本 22H2
安装日期 2023/3/3
操作系统版本 22621.2129
体验 Windows Feature Experience Pack 1000.22669.1000.0 - WSL版本
WSL 版本: 1.3.15.0
内核版本: 5.15.90.4-1
WSLg 版本: 1.0.55
MSRDC 版本: 1.2.4419
Direct3D 版本: 1.608.2-61064218
DXCore 版本: 10.0.25880.1000-230602-1350.main
Windows 版本: 10.0.22621.2129 - Ubuntu版本
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy - VS版本
Visual Studio Community 2022 17.7.0 Preview 6.0
环境搭建
官方首先强烈反对在WSL上运行lab = =:
给出的理由是会有性能损耗,建议使用真机(双系统)或者Athena,这个Athena我查了一下貌似是MIT给他们学生用的一个服务器?反正我用不了!淦!
管他这么多,WSL开搞,有问题再说!
我的Ubuntu是22.04的,官方叫用的是20.04的,应该没啥问题。。吧?
先运行这俩,安装几个工具的RISC-V版本(友情提示:文件较大,建议先换源)。
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
耗时3min28s
测试安装
测试
测试一下工具链安装成功没有,成功的话会给出版本号。
qemu-system-riscv64 --version
riscv64-linux-gnu-gcc --version
安装xv6
然后安装xv6,这本来是lab1的内容,放在这里一并写了。
先创建一个文件夹并打开,免得下的东西到处都是,然后clone并打开代码库
mkdir 6.s081 && cd 6.s081
git clone git://g.csail.mit.edu/xv6-labs-2022
cd xv6-labs-2022
可以看到,clone完后你是在util分支上的。
没有我这个sh的用git status
检查一下就行
编译qemu
make qemu
完成后你会发现你在sh里面了,退出这个命令行使用Ctrl-a
x
(是先按Ctrl + a,然后按x)。退出后想再进去就再次make qemu
即可。
在里面执行ls
:
连接编辑环境
我们先把这代码推到我们自己的github上去,建立库什么的就不说了,
git remote rm origin # 删除当前远程库
git remote add origin + 远程仓库地址 # 连接到现有的自己的库
git branch -M main
git push -u origin main
我选用的编辑环境是Visual Studio 2022,点击这个克隆存储库
在存储库位置 输入库的ssh地址或者在登录github账号后直接选择存储库进行克隆即可。
不过这个项目是Makefile构建的,不是Cmake构建的,因此想调试啥的还是得编辑完后上传、拉取在wsl进行调试运行= =。也可以使用VScode直接连接wsl,也比较方便,不过我个人比较喜欢VS。
另外,如果你和我一样用的是VS,那么别忘了在.gitignore
里加上/.vs