Lab 1 Xv6 and Unix utilities
1.1 - Boot xv6 (easy)
Lab 1 Xv6 and Unix utilities 实验要求:
https://pdos.csail.mit.edu/6.828/2020/labs/util.html
1
实验目的
切换到 xv6-labs-2020 代码的 util 分支,并利用 QEMU 模拟器启动 xv6 系统。
2
实验步骤
使用下面的命令克隆 xv6-labs-2020 代码到本地。
git clone git://g.csail.mit.edu/xv6-labs-2020
使用下面的命令进入 xv6-labs-2020 代码目录。
cd xv6-labs-2020
使用下面的命令切换到 util 分支。
git checkout util
xv6-labs-2020 代码库与配套教材的 xv6-riscv 略有不同,它主要添加一些文件。如果你好奇,使用下面的命令查看 git 日志。如果不感兴趣可以忽略此步骤。
git log
接下来使用下面的命令编译并运行 xv6 系统。
make qemu
xv6 通过 QEMU 模拟器启动后,启动 shell 进程,最后你会看到下面的输出,说明你已经成功编译并运行 xv6 系统。
xv6 kernel is booting
hart 2 starting
hart 1 starting
init: starting sh
$
如果你输入 ls 命令,即创建了一个子进程 ls ,就会看到 xv6 目录下的文件,下面是输出结果。
$ ls
. 1 1 1024
.. 1 1 1024
README 2 2 2059
xargstest.sh 2 3 93
cat 2 4 24256
echo 2 5 23080
forktest 2 6 13272
grep 2 7 27560
init 2 8 23816
kill 2 9 23024
ln 2 10 22880
ls 2 11 26448
mkdir 2 12 23176
rm 2 13 23160
sh 2 14 41976
stressfs 2 15 24016
usertests 2 16 148456
grind 2 17 38144
wc 2 18 25344
zombie 2 19 22408
console 3 20 0
你所看到的这些输出是 mkfs 包含在初始文件系统中的文件,大多数是可以运行的程序。你刚刚就运行了其中的一个:ls。
在 xv6 中按 Ctrl + p 会显示当前系统的进程信息。
1 sleep init
2 sleep sh
在 xv6 中按 Ctrl + a ,然后按 x 即可退出 xv6 系统。