欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 【MIT-OS6.S081笔记1】xv6环境搭建

【MIT-OS6.S081笔记1】xv6环境搭建

2024/11/15 10:20:20 来源:https://blog.csdn.net/subtitle_/article/details/143443376  浏览:    关键词:【MIT-OS6.S081笔记1】xv6环境搭建

最近开始做一个操作系统的神课MIT-OS6.S081,我做的是老版本的2020版本的,环境使用的是VirtualBox的Ubuntu系统,在这里记录一下学习的过程。首先需要搭建一下环境,参考官网Tools Used in 6.S081,这个知乎文章也写得很好:MIT 6.S081 Operating System Lab1:Utilities

$ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu 
# 这里安装的qemu-system-misc可能和当前的内核有兼容性问题,这里移除安装的新版本
$ sudo apt-get remove qemu-system-misc
# 安装qemu
$ wget https://download.qemu.org/qemu-5.1.0.tar.xz
$ tar xf qemu-5.1.0.tar.xz
$ cd qemu-5.1.0
$ ./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu"
$ make
$ sudo make install

下面介绍了qemu的用处:

QEMU(Quick Emulator)是一个广泛使用的开源虚拟化软件。它主要有以下用途:

  • 一、模拟不同架构的计算机系统
    跨平台开发和测试
    开发人员可以在一种操作系统上模拟另一种操作系统和硬件架构,进行软件的开发和测试。例如,在 x86 架构的计算机上模拟 ARM 架构的设备,以便开发和测试适用于移动设备的软件。
    这对于需要支持多种硬件平台的软件开发非常有用,可以在不具备实际硬件的情况下进行早期的开发和调试。
    学习和研究
    学生和研究人员可以使用 QEMU 来学习不同的计算机体系结构和操作系统原理。通过模拟各种硬件和软件环境,可以深入了解计算机系统的工作方式。
    可以模拟古老或罕见的计算机系统,帮助研究计算机历史和技术发展。
  • 二、虚拟化
    虚拟机运行
    QEMU 可以创建虚拟机,在其中运行不同的操作系统。用户可以在同一台物理计算机上同时运行多个虚拟机,每个虚拟机都可以独立运行不同的操作系统和应用程序。
    这对于服务器虚拟化、桌面虚拟化等场景非常有用,可以提高硬件资源的利用率,降低成本。
    容器化环境模拟
    虽然容器技术(如 Docker)通常使用不同的虚拟化技术,但 QEMU 也可以在某些情况下用于模拟容器化环境,特别是在需要更高级别的隔离或模拟特定硬件环境时。
  • 三、设备模拟
    嵌入式系统开发
    在嵌入式系统开发中,QEMU 可以模拟目标硬件平台,使开发人员能够在开发主机上进行软件开发和调试,而无需实际的嵌入式设备。这可以大大提高开发效率,减少开发周期。
    可以模拟各种嵌入式设备的外设,如传感器、通信接口等,以便进行全面的系统测试。
    硬件测试和验证
    硬件制造商可以使用 QEMU 来模拟他们的硬件产品,进行软件兼容性测试和验证。这可以帮助他们在硬件生产之前发现和解决潜在的问题,提高产品质量。
    可以模拟各种故障情况,测试硬件和软件的容错能力。
  • 四、安全研究
    恶意软件分析
    安全研究人员可以使用 QEMU 来隔离和分析恶意软件。在模拟的环境中运行恶意软件,可以观察其行为而不会对实际系统造成危害。
    可以设置不同的安全限制和监控工具,以便更好地了解恶意软件的工作原理和攻击方法。
    漏洞研究和利用
    QEMU 可以用于模拟存在漏洞的系统,帮助研究人员发现和利用安全漏洞。通过在可控的环境中进行漏洞研究,可以更好地理解漏洞的本质和影响,从而提出更有效的安全解决方案。

查看一下qemu是否安装成功:

qemu-system-riscv64 --version

在这里插入图片描述
继续操作:

# 克隆xv6实验仓库
$ git clone git://g.csail.mit.edu/xv6-labs-2020
$ cd xv6-labs-2020
$ git checkout util
# 进行编译
$ make qemu

这里我出现了报错:

riscv64-linux-gnu-gcc: error: unrecognized command line option
‘-mno-relax’; did you mean ‘-Wno-vla’?

查看这个博主的文章xv6环境搭建说riscv64-linux-gnu-gcc编译工具链版本太低,进行下列操作:

 $ sudo apt install gcc-8-riscv64-linux-gnu$ sudo update-alternatives --install /usr/bin/riscv64-linux-gnu-gcc riscv64-linux-gnu-gcc /usr/bin/riscv64-linux-gnu-gcc-8 8

重新make qemu,OK进入环境了:

在这里插入图片描述
现在我们可以简单测试一下,输入

ls

OK了,实验环境设立完成, 我们成功boot了xv6这个简易操作系统.

在这里插入图片描述

退出环境:先按Ctrl+A,然后按x,下一篇再见了,enjoy it!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com