xv6 操作系统的环境搭建
xv6 是 MIT 设计的一个教学型操纵系统。xv6 可在 Intel X86 框架上运行,为了方便,建议将 xv6 运行在 QEMU 虚拟机器上,本人的实验环境是 ubuntu 18.04 。
1. 安装系统
- 
安装 QEMU 软件。 sudo apt-get install qemu # 安装软件 man qemu-system-i386 # 查看使用说明
- 
下载 xv6 ,本人学习的版本是基于 X86 框架的 xv6-rev11,如果安装了 git可以直接拉取我的仓库主分支。sudo apt-get install git # 安装 git 工具 git clone https://github.com/professordeng/xv6-expansion.git # 拉取代码 cd xv6-expansion # 进入目录
- 
编译运行 sudo apt-get install gcc # gcc 负责编译 make # 编译 make qemu-nox # 运行运行上面的指令若没有出错就会进入 xv6 系统操作界面,显示信息如下: qemu-system-i386 -nographic -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 2 -m 512 xv6... cpu1: starting 1 cpu0: starting 0 sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58 init: starting sh其中 qemu-system-i386就是模拟下的 X86 平台,-nographic不需要图形设备(对服务器友好),-smp是选择启动 CPU 的核数(2 核),-m是指给此系统分配的内存大小。
- 
使用 QEMU 调试功能 按 ctrl + a,再按c,进入 QEMU 调试功能,包括但不限于以下功能- 按 q退出虚拟机器。
- 输入 info registers查看所有寄存器信息。
- 按 ctrl + a,再按c又回到 xv6 系统。
- 输入 info mem显示映射的虚拟地址和权限。
- 输入 info pg显示当前页表结构。
 
- 按 
- 
补充 xv6 也可以使用 make qemu启动,此时会启动两个窗口。鼠标被捕捉后可以用Alt + Ctrl组合键解脱。
2. 简单使用系统
执行 make qemu-nox 进入 xv6 操作系统后,就可以使用系统了。xv6 实现了一小部分 Linux 系统上通用的命令,例如:
ls                        # 显示当前目录下的文件
cat README.md             # 将 README.md 的内容打印到屏幕上
echo hello                # 输出 hello 到屏幕上
cat README.md | grep qemu # 用管道连接两个命令
wc README.md              # 对 README.md 的内容进行统计
rm wc                     # 删除 wc 文件
这是一些常见的命令,还有一些其他命令可用 ls 查看。
- 
拓展(可以跳过) 通过 ctrl + p查看进程信息(由proc.c文件中的procdump()内核函数实现)。可以看到sleep进程后面跟着一串数字,是调用栈中关于函数调用的地址。例如1 sleep init 80103e27 80103ec7 80104879 80105835 8010564f 2 sleep sh 80103dec 801002ca 80100f9c 80104b62 80104879 80105835 8010564f打开另一个终端,利用 addr2line工具,执行如下命令addr2line -e kernel 80103e27可以知道地址 0x80103e27对应于kernel内核代码proc.c文件的第 445 行,显示信息如下:/home/ubuntu/xv6-expansion/proc.c:445查看 proc.c文件的第 445 行可知,该行代码位于sleep()函数中。
2. 修改系统代码
接下来做个最简单的热身动作,打开 main.c 文件,将 cprintf() 函数打印的启动提示信息 cpu0: starting 0 修改成 cpu0: let 0 go,然后执行下面指令进入系统
make 
make qemu-nox
你会发现系统提示信息已经改变,恭喜你,你开始动手修改 xv6 操作系统了。
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号