MIT6.828——LAB0

基于Centos7搭建MIT6.828实验环境

xv6 是一个类Unix的教学操作系统(MIT基于Unix v6 的重新实现),而 JOS 是在xv6的基础上改写,让我们能在其上进行实验的 OS。 所以,实际上当我们遇到不会实现的实验或不清晰实现的过程时,可以去参考 xv6 相应部分的源码

1 安装依赖包:

$ yum install libX11 libX11-devel SDL2 SDL2-devel -y

这个是我一开始在网上查到的,然后就安装上了,但一开始没有想到自己的linux是不支持图形界面的。如果是使用的linux图形界面就必须安装,如果是命令行的话其实是不需要的

$ yum install -y glib*
$ yum install zlib*
$ yum install autoconf
$ yum install SDL-devel  //如果没有图形界面而是命令行的话,不需要安装
$ yum install libtool*
$ yum install wget  	   //有的话就不用安装

2 创建6.828

完全跟着MIT6.828官网的步骤进行就行了。

$ mkdir 6.828
$ cd 6.828
$ cd lab

此时官网是默认系统中安装了qemu,但其实还没有安装。

3 安装qemu

$ git clone https://github.com/mit-pdos/6.828-qemu.git qemu

直接使用官网提供的qemu就行了,是最合适的

$ cd qemu/
$ ./configure --disable-kvm --disable-werror --prefix=$HMOE --target-list="i386-softmmu x86_64-softmmu"			

上面的configure是没有关闭SDL的,如果系统不支持图形界面的话,之后启动就会报错

Could not initialize SDL(No available video device) - exiting

所以,如果只支持命令行的话,就需要加上--disable-sdl如果支持图形界面则不需要

执行configure后可能会报错:

ERROR: pixman >= 0.21.8 not present. Your options:
         (1) Preferred: Install the pixman devel package (any recent
             distro should have packages as Xorg needs pixman too).
         (2) Fetch the pixman submodule, using:
             git submodule update --init pixman

选择第二种方法:

$ git submodule update --init pixman

然后再执行configure,出现以下信息,说明成功了:

......
usb net redir     no
OpenGL support    yes
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
GlusterFS support no
Archipelago support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   no
TPM passthrough   yes
QOM debugging     yes
vhdx              no
Quorum            no
lzo support       no
snappy support    no
bzip2 support     no
NUMA host support no

使用vim 编辑qemu/qga/commands-posix.c

添加头文件#include<sys/sysmacros.h>

然后执行make && make install

至此,qemu安装成功

4 验证安装是否成功

此时应该在qemu的工作目录下,返回上一级lab/

$ cd ..
$ make
$ make qemu

如果出现以下画面就表示环境搭建成功:

qemu-system-i386 -drive file=obj/kern/kernel.img,index=0,media=disk,format=raw -serial mon:stdio -gdb tcp::25000 -D qemu.log 
VNC server running on `::1:5900'
6828 decimal is XXX octal!
entering test_backtrace 5
entering test_backtrace 4
entering test_backtrace 3
entering test_backtrace 2
entering test_backtrace 1
entering test_backtrace 0
leaving test_backtrace 0
leaving test_backtrace 1
leaving test_backtrace 2
leaving test_backtrace 3
leaving test_backtrace 4
leaving test_backtrace 5
Welcome to the JOS kernel monitor!
Type 'help' for a list of commands.
K> 

退出方法:ctrl + a然后松手,在键入x即可退出。

参考文章:

1、MIT 6.828 JOS学习笔记1. Lab 1 Part 1: PC Bootstrap - fatsheep9146 - 博客园 (cnblogs.com)
2、MIT-6.828-JOS-环境搭建

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MIT 6.828是一门关于xv6操作系统的课程,该课程提供了关于xv6操作系统的中文指南和实验室。 xv6是一个操作系统的教学版本,MIT 6.828课程提供了xv6全文的翻译成书供学习使用。 在课程中,还提供了一些实验,供学生进行实践和学习。 关于xv6的具体实现细节,根据引用中的内容,在user.h文件中可以找到函数的定义。需要在date.c的代码中补充相应的函数。 另外,引用中提供了一个样例过程,展示了一系列操作的执行顺序,包括fork、exec、open、close、write等。这个样例过程可以帮助理解xv6操作系统的运行机制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MIT-6.828:MIT 6.828操作系统课程](https://download.csdn.net/download/weixin_42139357/15728097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MIT6.828 Homework3 xv6 system calls](https://blog.csdn.net/qq_43012789/article/details/107746030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nobugnolife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值