6.s081/6.1810(Fall 2022)环境搭建(Win11 + WSL + Visual Studio 2022)

文章讲述了作者如何在WindowsSubsystemforLinux(WSL)的Ubuntu22.04环境中搭建MIT课程6.s081的操作系统实验环境,包括安装RISC-V工具链、测试QEMU、克隆并编译xv6,以及使用VisualStudio进行代码编辑和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

好吧,又开了个坑,不知道这个能写多久。。。。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
在这里插入图片描述

Tokens:然后按提示生成Token串,那一串东西也就是我们上面出错的地方应该输的密码!不过这里不建议这样远程拉取,我们直接在主页下载压缩包,CV到/Ubuntu22.04/home/user 下,再在vscode里打开:先查看更多版本:找到Fall 2023弄好之后打开vscode, 远程连接上wsl,此时应该是这样的:然后按着主页一步步BUILD:sudo build_support/packages.sh这里不出意外的话会出意外,也是我遇到的第二个拦路虎:这里出错涉及到packages.sh文件的读写权限,感谢我的舍友帮我解决,大家照着图中一步步输入:llll build_supportsudo chmod -R 777 ./然后重新输入:sudo build_support/packages.sh就可以继续按着官网主页顺利完成BUILD环节了!$ mkdir build$ cd build$ cmake ..$ makeIf you want to compile the system in debug mode, pass in the following flag to cmake: Debug mode:$ cmake -DCMAKE_BUILD_TYPE=Debug ..$ make -j`nproc`环境搭建也到此结束。2.TASK 1俗话说得好:”万事配环境难!“现在我们已经搭建好了环境,接下来就摩拳擦掌,正式进行P0的编写在 task1 中我们一共需要用到三个文件:/src/include/primer/trie.h/src/primer/trie.cpptest/primer/trie_test.cpptire.h:头文件,需要我们读懂,并且用到一些变量名tire.cpp:在此文件里写代码tire_test.cpp:给定好的测试文件,用来测试TASK 1是否通过在写代码之前一件很很很重要的事情:代码格式!!!Google C++ Style
最新发布
04-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值