1.XV6环境配置

安装虚拟机

这个就不多说了,搞一台Ubuntu虚拟机即可,最好是通过vscode 用ssh远程连接进行实验会比较方便,具体怎么做可参考我这篇博客:

VsCode配置SSH连接远程服务器(手把手,学不会打我)_vscode remote ssh配置-CSDN博客

获取源码

git clone git://g.csail.mit.edu/xv6-labs-2020
Cloning into 'xv6-labs-2020'...

进入到实验目录下并切换到util分支

cd xv6-labs-2020
git checkout util

看readme可以知道,想运行xv6直接make qemu即可

但执行会报错

Error: Couldn't find a riscv64 version of GCC/binutils.

安装g++/gcc/binutils/qemu

根据上述报错信息,需要安装riscv64版本的binutils,

可以使用apt search搜索相关packages

apt search binutils  |grep binutils-riscv64

使用apt install 安装找到的三个packages

sudo apt install binutils-riscv64-linux-gnu
sudo apt install binutils-riscv64-linux-gnu-dbg
sudo apt install binutils-riscv64-unknown-elf

安装gcc、g++

sudo apt install g++
sudo apt install gcc-10-riscv64-linux-gnu
//进入 /usr/bin 目录建立软连接
sudo ln -s riscv64-linux-gnu-gcc-10 riscv64-unknown-elf-gcc进入 /usr/bin 目录

安装qemu

git clone https://github.com/qemu/qemu.git

下载到本地后目录为qemu进入该文件夹,执行下面指令

mkdir build && cd build
../configure --target-list=riscv64-softmmu && make

不过会出错,缺少了一些包

下面安装一下

sudo apt install ninja-build
sudo apt install pkg-config
sudo apt install libglib2.0-dev
sudo apt install libpixman-1-dev

安装完后继续执行上述命令即可

xv6 的 Makefile 中指定了 QEMU 命令的名称 QEMU = qemu-system-riscv64,会自动在 PATH 环境变量中寻找命令,因此将编译好的二进制文件 qemu-system-riscv64 (位置在 qemu/build 目录)复制到 /usr/bin 目录中。

sudo cp qemu-system-riscv64 /usr/bin/

启动

进入xv6-labs-2020,执行make qemu

执行完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GitLab】使用 Docker 安装 GitLab 1:配置 SSH 端口

使用 Docker 安装 GitLab 要求修改ssh端口 GitLab 使用 SSH 通过 SSH 与 Git 交互。默认情况下,GitLab 使用端口22。 要在使用 GitLab Docker 映像时使用其他端口,您可以执行以下操作之一: 更改服务器的 SSH 端口(推荐)。 更改 GitLab Shell SSH 端口。 更改服务器的 SSH …

数据链路层 III(介质访问控制)【★★★★★】

(★★)代表非常重要的知识点,(★)代表重要的知识点。 介质访问控制所要完成的主要任务是:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。 下图所示是广播…

ubuntu安装虚拟环境(tensorflow、torch)

一、安装需求 1、确保ubuntu可以ping通百度 2、设置好了pip镜像源,(具体可看:ubuntu配pip的源-CSDN博客) 二、安装虚拟环境(务必使用sudo进行) step1:执行安装命令 更改了pip默认使用pip3的…

基于WonderJourney生成电影级连续的3D场景视频

在本文中,我将详细记录在Windows环境下配置和使用WonderJourney项目的完整流程,包括环境搭建、常见问题的解决方案以及如何修改源码以兼容Windows系统。WonderJourney项目能够生成高度逼真的村庄视频,并允许用户通过配置文件对视频生成过程进行精细化控制。 由于官方文档在…

基于Java语言的能源管理系统-水电气热油数据采集系统

介绍 基于SpringCloud的能源管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管管理系统源码 适用于建筑、工厂、商场、医院、园区、高耗能企业、城市双碳建设平台等的水、电、气、热、油等能源数据采集、加工、分析、预警、碳指标、碳排放计算…

vue使用axios请求后端数据

前后端分离项目的基础: 前后端跨域访问 vite.config.js中加入 // 1.为什么要跨域 //因为浏览器的同源策略,不同站点之间访问需要跨域 //实现跨域的方式:server: {proxy: {// 假设要跨域访问的后端 API 地址以 /api 开头/api: { //表示拦截以/api开头的…

域名注册查询方法

域名不仅是网站的地址标识,更是企业和个人在互联网上的身份证明。要确保自己的在线品牌安全,了解域名注册查询方法至关重要。本文将介绍几种常见的域名查询方式,帮助您轻松了解网络资产的归属。 1. WHOIS查询: WHOIS(…

产品经理-​​实习中的自我迭代(41)

实习中的自我迭代,优秀实习生必备素质 跟大家认识了之后,就要开始做事情了,那我们怎么做一个优秀的实习生呢?以下几点作为参考。 1. 目标明确 知道自己的工作为什么要做,要做到什么程度,目前存在什么问题,该…

C++11:右值引用、移动语义和完美转发

目录 前言 1. 左值引用和右值引用 2. 引用范围 3. 左值引用的缺陷 4. 右值引用的作用 5. 右值引用的深入场景 6. 完美转发 总结 前言 C11作为一次重大的更新,引入了许多革命性的特性,其中之一便是右值引用和移动语义。本文将深入探讨其中引入的…

如何科学设定短信群发频率

在利用短信群发作为营销策略时,平衡好发送频率至关重要。过于频繁的短信可能招致客户反感甚至被屏蔽,而发送不足则可能导致品牌信息被遗忘。因此,精准把握短信群发频率,是提升客户体验与品牌记忆度的关键。以下是几个常见行业短信…

Aop切面编程

学习视频 一、定义模型:订单保存模型,订单更新模型,业务层,日志模型 订单保存模型 /*** author durunwu* date 2024-08-20-21:04*/ Data public class SaveOrder {private Long id; }订单更新模型 /*** author durunwu* date …

Veritas NBU8.3.0.2 安装Master Server及汉化包(篇二)

一、环境自检阶段 1、Master角色地址为192.168.189.2,计算机名称为bakmaster,域名为sszz.com 2、防火墙均已关闭 二、安装Master Server 1、右击“Browser”以管理员身份运行 2、单击“NetBackup Server Software Installation” 3、忽略UAC告警&#…

iOS18升级出现白苹果、无法重启等问题,要怎么解决

随着苹果iOS 18系统beta版本的推出,不少用户在私信说升级后遇到了白苹果和无法重启等问题。这些问题不仅影响了大家的正常使用,还会导致数据丢失和系统崩溃。本文将详细介绍iOS 18升级后出现白苹果、无法重启等问题的原因及解决方法,帮助大家…

Mysql的相关编程基础知识

一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装过程如下图所示。 1.安装MySQL 5.0 ​ ​ 2.选择手动配置、服务类型、通用多功能型和安装路径 ​ 3.设置数据库访问量连接数为15、端口为3306(代码中设置URL用到)、编码方式为utf-8 ​ 4.设…

Opencv-C++笔记 (20) : 距离变换与分水岭的图像分割

文章目录 一、图片分割分水岭算法理解分水岭算法过程 二、距离变换与分水岭距离变换常见算法有两种分水岭变换常见的算法步骤 主要函数c代码四、结果展示 一、图片分割 图像分割(Image Segmentation)是图像处理最重要的处理手段之一 图像分割的目标是将图像中像素根据一定的规则…

python之matplotlib (6 等高线和热力图)

等高线 import numpy as np import matplotlib.pyplot as pltdef f(x,y):return (1-x/2x**5y**3)*np.exp(-x**2-y**2) n256 xnp.linspace(-3,3,n) yx X,Ynp.meshgrid(x,y) plt.contourf(X,Y,f(X,Y),8,alpha0.75,cmapviridis) plt.colorbar() Cplt.contour(X,Y,f(X,Y),8,colors…

【Python机器学习系列】建立XGBoost模型预测小麦品种(案例+源码)

这是我的第344篇原创文章。 一、引言 对于表格数据,一套完整的机器学习建模流程如下: 针对不同的数据集,有些步骤不适用,其中橘红色框为必要步骤,欢迎大家关注翻看我之前的一些相关文章。前面我介绍了机器学习模型的二…

EmguCV学习笔记 VB.Net 4.5 像素距离和连通区域

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问:EmguCV学习笔记 C# 目录-CSD…

什么是黄金期权?黄金期权合约详解

想要了解什么是黄金期权首先要了解一下黄金期货。黄金期货是以现货黄金为标的物的期货品种,其交易代码通常为Au。而黄金期权,又称为黄金期货期权,是一种期权合约,其标的物是黄金期货合约本身,而非黄金现货。这意味着期…

设计模式22-迭代器模式

设计模式22-迭代器模式 迭代器模式(Iterator Pattern)动机定义结构定义结构结构图解释注意事项 C代码推导多态属性(虚函数)实现迭代器1. **返回值问题**2. **对象切割问题**3. **内存管理问题**4. **迭代器生命周期问题**5. **接口…