当前位置: 首页 > news >正文

XV6 操作系统实验

环境搭建

ubuntu

新建一个文件setup.sh,内容如下

#获取工具链
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
#安装必要依赖
sudo apt-get update
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-devsudo apt-get install pkg-config
sudo apt-get install libpixman-1-dev
sudo apt-get install libglib2.0-dev libgthread2.0-dev
sudo apt-get install git
apt install gcc-riscv64-unknown-elf#编译工具链
cd riscv-gnu-toolchain
./configure --prefix=/usr/local
sudo make -j$(nproc)
cd ..
#下载并解压qemu
wget https://download.qemu.org/qemu-4.1.0.tar.xz
tar xf qemu-4.1.0.tar.xz
#编译qemu
cd qemu-4.1.0
./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu"
make -j$(nproc)
sudo make install
cd ..#下载xv6实验代码
git clone git://g.csail.mit.edu/xv6-labs-2021

在终端输入bash setup.sh

等待完成基本就可以了,如果哪里报错缺少什么模块就自己去下就好了,这份代码集成了许多我参考别人时遇到的软件包不可用或找不到的问题,大概率是没问题的,有问题可以评论区提出,到时候看到再在文章里补充

检验是否搭建完毕

$ riscv64-unknown-elf-gcc --version
> riscv64-unknown-elf-gcc (GCC) 10.1.0
$ qemu-system-riscv64 --version
> QEMU emulator version 4.1.0

输入$ 后面的代码,如果出现下一行>后面显示的内容就说明成功了(可能不止这么短,但出现这些功能包和版本号就是成功了)

使用VScode进行SSH连接

首先在ubuntu中运行

sudo apt-get update
sudo apt-get install openssh-server

在Ubuntu中启动ssh服务,下面的代码都可以试试

sudo service ssh start
sudo ufw allow ssh

启动xv6

进入到xv6的文件夹中,运行

make qemu

如果出现下面的提示,就说明搭建成功了

xv6 kernel is bootingvirtio disk init 0
init: starting sh

参考文献

2021 MIT6.S081 Xv6 实验环境配置 - 知乎 (zhihu.com)

 从零开始使用Vscode调试XV6 - 知乎 (zhihu.com)

OS实验xv6 6.S081 开坑_xv6.s081 mmap github-CSDN博客

Deadpool带你做XV6实验-Lab1: Utilities_哔哩哔哩_bilibili

http://www.lryc.cn/news/183965.html

相关文章:

  • leetcode - 双周赛114
  • 【LeetCode刷题笔记】双指针
  • 互联网Java工程师面试题·Memcached 篇·第二弹
  • 特斯拉被称为自动驾驶领域的苹果
  • stm32之HAL库操作PAJ75620
  • 医学影像归档与通讯系统(PACS)系统源码 PACS三维图像后处理技术
  • web漏洞-PHP反序列化
  • Redis-分布式锁
  • 什么时候使用继承,好莱坞原则(设计模式与开发实践 P11+)
  • 蓝桥等考Python组别十四级001
  • TI单芯片毫米波雷达代码走读(二十七)—— 角度维(3D)处理之通道间幅相一致性补偿
  • 数据结构 2.2 单循环链表
  • 矩阵距离——多源BFS
  • 关于在 Notion 中使用 Markdown 语法
  • sigmoid和softmax函数有什么区别
  • 第五章:最新版零基础学习 PYTHON 教程—Python 字符串操作指南(第七节 - Python 中使用 % 进行字符串格式化)
  • 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)
  • Eclipse MAT解析headp dump,total size小于file size
  • 【数据挖掘】2022年 Quiz 1-3 整理 带答案
  • AcWing 288. 休息时间,《算法竞赛进阶指南》,环形与后效性处理
  • 一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)
  • UE5.1编辑器拓展【三、脚本化资产行为,删除无引用资产】
  • 防抖和节流的实现
  • alsa pcm接口之阻塞和非阻塞打开和异步通知模式
  • Python Random模块详解
  • Vue3 模糊搜索筛选
  • 【MVC】C# MVC基础知识点、原理以及容器和管道
  • 【kubernetes】基于prometheus的监控
  • Gmail 将停止支持基本 HTML 视图
  • 电影大师杂记