开坑!
课前导学
首先需要说明的是,本课程无论是window,Mac Intel系列芯片、Mac Arm系列芯片,Linux及其各种发行版都能完成,所以硬件问题不用担心!
基础知识也只需要你懂C语言(特别是要理解C指针),大概了解操作系统知识、大概了解Linux系统和系统编程相关知识即可开始!
开始正式学习的流程也只有:
- 搭建环境
- 下载xv6源代码,源码结构如下图:
后续,我们会不断完善、拓展这个文件内容,使得xv6越来越像完美!
之后,我会在每个LAB前写明需要的基础和需要完成的预习内容,让我们愉快得开始吧!
环境搭建
注意:关于环境的搭建,请按照最新课程MIT 6.1810指导进行:https://pdos.csail.mit.edu/6.828/2022/tools.html
根据以上指导,实测无任何报错问题。
MIT 6.S081 M系列芯片环境搭建
我的环境:
电脑型号:MacBook Pro (13英寸,M2,2022)
系统版本:13.6.3 (22G436)
我的芯片是arm64架构的,本环境搭建流程目前适用于M系列芯片
流程如下:
- 先按照官方文档走即可
注:建议使用6.1810的课程配置,在2022的课程中MIT 6.S081改为MIT 6.1810,这里附上链接
https://pdos.csail.mit.edu/6.828/2022/tools.html
注意:关于环境变量设置,我的riscv-gnu-toolchain
路径在/opt/homebrew/Cellar
下
也就是说对于环境变量应该键入:
PATH=$PATH:/opt/homebrew/Cellar/riscv-gnu-toolchain/bin
在终端输入
$ riscv64-unknown-elf-gcc --version
riscv64-unknown-elf-gcc (GCC) 13.2.0
......
$ qemu-system-riscv64 --version
QEMU emulator version 9.0.0
......
打印以上内容即表示安装成功。
- 编译及运行xv6
以下操作请先进入
克隆:
git clone https://github.com/mit-pdos/xv6-riscv.git
编译
cd xv6-riscv
make
使用 qemu 运行
make qemu
出现如下页面表示运行成功。
MIT 6.S081 Linux环境搭建
我使用的是云服务器,硬件架构为:x86_64
注意:关于环境的搭建,请按照最新课程MIT 6.1810指导进行:https://pdos.csail.mit.edu/6.828/2022/tools.html
根据以上指导,实测无任何报错问题。
- 安装依赖,如图:
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
- 查看依赖是否安装成功
- 克隆xv6源码:https://github.com/mit-pdos/xv6-riscv
gh repo clone mit-pdos/xv6-riscv
关于gh repo clone的使用方式自行在本站中搜索解决
- 编译:
make
- 运行qemu :
make qemu
至此,大功告成!
课程资料
注意,在课程和资料全部都直接听2020版本的即可,但是关于环境的搭建和实验相关部分,尽量首先照着最新版本2022的来,2022课程改名为MIT 6.1810
- 2022课程主页:MIT 6.1810
- 课表:MIT 6.S081/Fall 2020
- B站视频搬运:MIT 6.S081 2020 操作系统 [中英文字幕]
- 课程逐字幕翻译文档(如果想节省点儿时间可以看):MIT 6.S081/Fall 2020
- 课程教材翻译(包含实验内容和实验解析):xv6: 一个简单的类Unix教学操作系统
- GitHub仓库 - duguosheng/6.S081-All-in-one: 6.S081课程全记录,包括课程使用的书籍、论文、实验要求的中文翻译,以及实验过程记录
- MIT 6.1810 操作系统 Lab全解(网上找到的实验课全解): MIT 6.1810 操作系统 Lab全解