[MIT-6.S081-2020] OS课程----Xv6作业系统的环境架设

前言

哈罗大家好,6.S081是麻省理工的一门作业系统的课程,小弟我在寒假时有听说这们课程很厉害,但是才写了一个lab就没有继续写下去了XD

想说趁暑假闲闲没事,来再次尝试读读这们课程,顺便写个笔记:)

学习方法

跟着课程进度一直走下去就可以了,个人觉得重点是写完各个lab(类似作业的东西)

什麽是Xv6 ?

6.S081提供了一个教学用的作业系统Xv6,让学生可以直接修改以及trace程序码,我认为这非常的让人兴奋,平常虽然每天都在使用作业系统,但也不是很了解OS是如何运作的,而这们课程透过Xv6来把OS的原型展露出来,有不懂的地方都可以向原始码请教

Xv6的环境架设

这部份的详细内容都写在lab util中,大致上你会需要一个linux系统(windows使用者可以用虚拟机),然後Xv6会跑在linux所架设的虚拟机上

  1. 下载原始码
$ git clone git://g.csail.mit.edu/xv6-labs-2020
$ cd xv6-labs-2020
$ git checkout util
  1. 安装架设虚拟机的套件
    我自己是用Debian,如果你用的是ubuntu了话下载步骤应该也是一样的,至於是其他系统的使用者,可以看这里
$ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
  1. compile程序码并且让他跑在虚拟机上
$ make qemu
...
(一大串讯息)
...
xv6 kernel is booting

hart 2 starting
hart 1 starting
init: starting sh
$

到这里,Xv6已经成功开机了!

  1. 尝试打个指令
$ ls
.              1 1 1024
..             1 1 1024
README         2 2 2059
xargstest.sh   2 3 93
cat            2 4 24120
echo           2 5 22944
forktest       2 6 13184
grep           2 7 27424
init           2 8 23680
kill           2 9 22904
ln             2 10 22744
ls             2 11 26312
mkdir          2 12 23040
rm             2 13 23032
sh             2 14 41856
stressfs       2 15 23904
usertests      2 16 148312
grind          2 17 38008
wc             2 18 25232
zombie         2 19 22280
console        3 20 0

没意外了话,会出现以上的画面

  1. 离开虚拟机
    按下ctrl+a放开这两个键之後,再按下x
$ QEMU: Terminated

就可以里开了

之後应该会继续写笔记,再请各位多多指教~


<<:  0 day 安全笔记 第一章 1.4 crack 小实验

>>:  使用 Vue 串接 Facebook Login JavaScript SDK 时 FB.getLoginStatus 总是回应 unknown 状态,但明明已经登入成功

Day 01 HTML<常用标签>

1. 标题标签 <h1> - <h6> (一级标题 - 六级标题) 文字粗体...

[Day25] 求值策略

Call by Value 传值 Call by Reterence 传参照 Call by Sh...

[Report] 怎麽让筛选条件可以复选

1.add report 2.add dataset 3.edit param be mulit 2...

[Day 22] 2D批次渲染 (三) - 终於找到问题了

今日目标 [Debug] 批次渲染 DrawLine 终於找到问题在哪了... 终於找到问题在哪里,...

Day 25: 边界:画线、剖析、预留 (待改进中... )

「软件架构就是画线的艺术,我称这些线为边界 (Boundaries)」 「架构师的目标是尽量减少建...