MIT6.S081之xv6的安装risc-v架构
一切的开始
兄弟们,我又又又回来了,又来整活了,啥也不会决定开始不基础,但是问题又来了,基础的基础不会怎么办。
准备开始弄操作系统,这东西也不算基础课吧,但是对于计算机来说又是基础课,上网找了一下学习操作系统的课程,发现知乎一篇文章首推麻省的这个MIT6.S081,外国学校就是不一样,还可以自己选修,我就只能按照培养计划,他说上啥课就上啥课,也不知道国内顶尖大学怎么样,反正我是菜鸡。。。
好的那么就开始整操作系统,好的大学的操作系统课程都有个给你玩的小小操作系统,那么MIT的就是xv6据他自己说是根据第六代Unix修改过来的,是开源架构RISC-V,据他自己说比Unix简单了很多,只有几万行代码,然后又和现代操作系统Linux很类似,反正就是学习他就对了。
课程网址
关于学习MIT6.S081,有几个网址我贴一下。(又到了贴网址的时候,作为笔记本就该有笔记本的觉悟)
视频翻译版(翻译成中文,全文字非字幕) 不知道哪个大佬做的文字版本,挺好的很详细,而且知识点很细
MIT6.S824(同属上一个老哥的翻译版) 同一个大佬做的分布式的课程,记录在此,方便观看
MIT6.S081中文字幕(硬字) 据阿婆主自己写是精译,具体我英语不是很能判断
课程官网2020MIT6.S081 这里面有课程安排,还有xv6的源码下载和配套电子书的下载(很多都在里面,自己看)
开始安装
一些说明
xv6是一个小的系统基于risc-v的,但是我百度安装教程的时候,发现很多都是x86版本的xv6具体也没有细究怎么回事反正无伤大雅。
现在发现可能就是它emmmm也有基于其他架构的,反正这个2020年的这门课用的试RISC-V的,学习操作系统重要,不纠结无伤大雅的东西。
反正跑在qemu-risc-v里面,用qemu模拟了risc-v的环境(包括其他需要的硬件)
安装环境
安装环境不出意外的话,我应该就是:
物理机:x86 windows
虚拟机:vmware
虚拟机系统:ubuntu22 x86
虚拟环境:qemu-risc-v
安装参考文档
我本来以为没有安装教程的,结果我居然在写这个笔记的时候在课程官网点到了,所以反正按照官方的来,比较官方的详细温柔体贴q(≧▽≦q)。
先贴一下官方教程和Github地址。
GNU toolchain for RISC-V, including GCC
根据官方教程
原句:For this class you’ll need the RISC-V versions of a couple different tools: QEMU 5.1, GDB 8.3, GCC, and Binutils.
我的理解:需要RISC-V版本的这些软件, QEMU 5.1, GDB 8.3, GCC, and Binutils。
然后原文好像推荐在MIT的一个云平台,我点开一看要登录,应该是他们学校搭好的环境,提供了ssh接口给学生用,羡慕了。
咱就只能自己搭了他也提供了自己搭的方案,如果想看原文可以看那个Tools Used in 6.S081。
原文写了所有主流的环境安装。
所以咱看Debian系的,包管理工具为APT
具体安装流程
确保Debian版本是”bullseye” 或者 “sid”,可以使用cat /etc/debian_version
命令查看然后运行
1 |
|
这边环境换源什么的就不提了,这个不考虑,然后如果无法使用Github这个也不考虑。
然后他说新版本的qemu好像不适合,运行make qemu时会卡住
于是让你卸载并且安装老版本
1 |
|
但是问题来,我报错了,找不到这个老版本的软件包,于是我就试着直接运行make qemu
,然后我们的xv6直接运行起来了,所以可能当时有bug,但是现在没有。
2023/1/17发现了这个问题所在,问题是2020年的lab代码有bug需要使用如上方法解决,新的lab代码没bug,而且老版本的包已经移除了,如果需要继续学习,请使用2022年或者更新的代码文档。
于是就不需要卸载直接下载vx6的源码
地址是上面的第二个,进入源码目录,运行make qemu,就进去了。
xv6 kernel is booting
hart 1 starting
hart 2 starting
init: starting sh
$
看到这个小$符就是成功了,然后退出环境就是Ctrl-a x.
很怪百度了半天不知道怎么关闭,说是先按Ctrl和a,再按x,但是毫无反应,我就只能直接叉掉。
总结
还好没有按照网上的方法直接安装,这个故事告诉我们,有啥事就去找官方文档,巨贴心,里面提到了其他Linux环境使用一个工具包,很大挂在Github,我找到一篇文章上来就要我下载这玩意根本没用到,不如给我爬,差点就宰了,下载这玩意不得烦死。
所以咱就是说根据环境选择安装方法,仔细阅读官方文档,咱就可以安装成功。