MIT6.S081-实验准备

实验全程在Vmware虚拟机 (镜像:Ubuntu-20.04-beta-desktop-amd64) 中进行

一、版本控制

1.1 将mit的实验代码克隆到本地

  • git clone git://g.csail.mit.edu/xv6-labs-2020

1.2 修改本地git配置文件

  1. 创建github仓库,记录仓库地址
    • 我的仓库地址就是https://github.com/luhexin/MIT6.S081-Labs.git
    • 由于MIT教授不希望学生开源作业代码,因此我将仓库设置为private
  2. 向 Git 仓库添加一个新的远程仓库
    • 首先进入本地项目
      • cd xv6-labs-2020/
    • git remote add <remote-name> <remote-url>
      • 例如: git remote add mygit https://github.com/luhexin/MIT6.S081-Labs.git
    • 查看本地仓库的git配置文件
      • cat .git/config
        请添加图片描述

      • 因为已经有origin了,所以使用一个别的remote-name

1.3 git分支管理

  • 查看远端分支
    • git branch -r
      请添加图片描述
      • 每一个lab对应一个分支
  • 切换到相应分支
    • 比如切换到第一个lab util: git checkout util
    • 使用git branch查看本地的分支

1.4 git push

  • git push <远程主机名> <本地分支名>:<远程分支名>
    • 如果本地分支名与远程分支名相同,则可以省略冒号
      • git push <远程主机名> <本地分支名>
    • 例如: git push mygit util:util
      • 将本地的util分支push到远端的util分支
    • 提示Support for password authentication was removed: 参考https://zhuanlan.zhihu.com/p/443038323
    • 假如出现网络超时或者其他网络的问题可以尝试使用SSH进行连接,但是需要改一下.git/config
      • git remote remove mygit https://github.com/luhexin/MIT6.S081-Labs.git
      • git remote add mygit …
    • 使用SSH进行push时,不能与github.com建立连接可以参考下面文章
      • https://blog.csdn.net/mj_zm/article/details/120413479

二、安装工具链

  • 官方教程: https://pdos.csail.mit.edu/6.S081/2020/tools.html
# 必要的工具链
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu # 单独移除掉qemu的新版本, 因为不知道为什么build时候会卡壳
sudo apt-get remove qemu-system-misc
# 额外安装一个旧版本的qemu
sudo apt-get install qemu-system-misc=1:4.2-3ubuntu6# 验证安装
$ riscv64-unknown-elf-gcc --version
riscv64-unknown-elf-gcc (GCC) 10.1.0
...
$ qemu-system-riscv64 --version
QEMU emulator version 5.1.0# 编译和运行xv6
# in the xv6 directory
$ make qemu
# ... lots of output ...
init: starting sh

参考

  • https://xv6.dgs.zone/labs/use_git/git1.html
  • https://pdos.csail.mit.edu/6.S081/2020/tools.html

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

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

相关文章

C# 基本桌面编程(二)

一、前言 本章为C# 基本桌面编程技术的第二节也是最后一节。前一节在下面这个链接 C# 基本桌面编程&#xff08;一&#xff09;https://blog.csdn.net/qq_71897293/article/details/135024535?spm1001.2014.3001.5502 二、控件布局 1 叠放顺序 在WPF当中布局&#xff0c;通…

饥荒Mod 开发(十):制作一把AOE武器

饥荒Mod 开发(九)&#xff1a;物品栏排列 饥荒Mod 开发(十一)&#xff1a;修改物品堆叠 前面的文章介绍了很多基础知识以及如何制作一个物品&#xff0c;这次制作一把武器&#xff0c;装备之后可以用来攻击怪物。 制作武器贴图和动画 1.1 制作贴图。 先准备一张武器的贴图&a…

解决:AttributeError: module ‘scipy.misc’ has no attribute ‘imsave’

解决&#xff1a;AttributeError: module ‘scipy.misc’ has no attribute ‘imsave’ 文章目录 解决&#xff1a;AttributeError: module scipy.misc has no attribute imsave背景报错问题报错翻译报错位置代码报错原因解决方法方法一 scipy版本回退&#xff08;不推荐&#…

MySQL_13.InonDB表空间

InnoDB 表空间介绍以及管理 1.mysql表空间类型 system tablespace 系统表空间 file-per-table tablespace 独立表空间 temporary tablespace 临时表空间 undo tablespace UNDO表空间 general tablespace…

React中props 和 state异同初探

在 React 中&#xff0c;props 和 state 是两个非常重要的概念&#xff0c;它们决定了组件的行为和渲染方式。 Props props&#xff08;属性&#xff09;是父组件传递给子组件的数据。它们类似于函数的参数&#xff0c;可以在组件内部被访问和使用&#xff0c;但不能被修改。…

鸿蒙4.0核心技术-WebGL开发

场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理&#xff0c;比如绘制彩色图形等。 接口说明 表1 WebGL主要接口列表 接口名描述canvas.getContext获取canvas对象上下文。webgl.createBuffer(): WebGLBuffernullwebgl.bindBuffer(target: GLenum, buffer: …

饥荒Mod 开发(十三):木牌传送

饥荒Mod 开发(十二)&#xff1a;一键制作 饥荒Mod 开发(十四)&#xff1a;制作屏幕弹窗 一键传送源码 饥荒的地图很大&#xff0c;跑地图太耗费时间和饥饿值&#xff0c;如果大部分时间都在跑图真的是很无聊&#xff0c;所以需要有一个能够传送的功能&#xff0c;不仅可以快速…

Web前端-JavaScript(js表达式)

文章目录 JavaScript基础第01天1.编程语言概述1.1 编程1.2 计算机语言1.2.1 机器语言1.2.2 汇编语言1.2.3 高级语言 1.4 翻译器 2.计算机基础2.1 计算机组成2.2 数据存储2.3 数据存储单位2.4 程序运行 3.初始JavaScript3.1 JavaScript 是什么3.2 JavaScript的作用3.3 HTML/CSS/…

《点云处理》平面拟合

前言 在众多点云处理算法中&#xff0c;其中关于平面拟合的算法十分广泛。本篇内容主要是希望总结归纳各类点云平面拟合算法&#xff0c;并且将代码进行梳理保存。 环境&#xff1a; VS2019 PCL1.11.1 1.RANSAC 使用ransac对平面进行拟合是非常常见的用法&#xff0c;PCL…

医疗智能化革命:AI技术引领医疗领域的创新进程

一、“AI”医疗的崛起 随着人工智能&#xff08;AI&#xff09;技术的崛起&#xff0c;"AI"医疗正在以惊人的速度改变着医疗行业的面貌。AI作为一种强大的工具&#xff0c;正在为医疗领域带来前所未有的创新和突破。它不仅在医学影像诊断、病理学分析和基因组学研究等…

Linux ls命令教程:如何有效地列出文件和目录(附案例详解和注意事项)

Linux ls命令介绍 ls是Linux中的基本命令之一&#xff0c;任何Linux用户都应该知道。ls命令列出文件系统中的文件和目录&#xff0c;并显示有关它们的详细信息。它是所有Linux发行版都安装的GNU核心实用程序包的一部分。 Linux ls命令适用的Linux版本 ls命令在所有Linux发行…

vertx写sip服务器

Vert.x SIP 模块默认使用 TCP 协议进行通信。如果您需要支持 UDP 协议&#xff0c;您需要自定义 SIP 协议栈&#xff0c;并在其中实现 UDP 传输。 以下是一个示例代码&#xff0c;演示如何在 Vert.x 中创建一个支持 UDP 的 SIP 服务器&#xff1a; import io.vertx.core.net.…

设计模式——状态模式

引言 状态模式是一种行为设计模式&#xff0c; 让你能在一个对象的内部状态变化时改变其行为&#xff0c; 使其看上去就像改变了自身所属的类一样。 问题 状态模式与有限状态机 的概念紧密相关。 其主要思想是程序在任意时刻仅可处于几种有限的状态中。 在任何一个特定状态中…

手拉手EasyExcel极简实现web上传下载(全栈)

环境介绍 技术栈 springbootmybatis-plusmysqleasyexcel 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis-plus 3.5.3.2 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。 他能让你在不用考虑性…

【shell脚本实战案例】sed替换文本中指定数据所在的行

目录 问题背景&#xff1a; 解决方法&#xff1a; 1.sed替换每行第一个出现的关键字 2.sed替换某一行出现的关键字 3.sed替换某一行第N次出现的关键字 4.sed替换文件中所有的关键字 5.sed将文件中所有关键字替换成空&#xff08;即关键字全部删除的另一种方式&#xff09…

19.Oracle 中count(1) 、count(*) 和count(列名) 函数的区别

count(1) and count(字段) 两者的主要区别是 count(1) 会统计表中的所有的记录数&#xff0c;包含字段为null 的记录。count(字段) 会统计该字段在表中出现的次数&#xff0c;忽略字段为null 的情况。 即不统计字段为null 的记录。 count(*) 和 count(1)和count(列名)区别 …

CentOS7安装教程

1.准备工作 安装虚拟机软件 VMware Workstation 17 Player下载CentOS7 镜像 2. 安装VMware Workstation 17 Player 官网 下载链接 下载好了安装包&#xff0c;双击安装包&#xff0c;傻瓜式安装一直下一步&#xff0c;安装即可。 3. 安装CentOS7 官网 推荐下载地址&…

Tekton 构建容器镜像

Tekton 构建容器镜像 介绍如何使用 Tektonhub 官方 kaniko task 构建docker镜像&#xff0c;并推送到远程dockerhub镜像仓库。 kaniko task yaml文件下载地址&#xff1a;https://hub.tekton.dev/tekton/task/kaniko 查看kaniko task yaml内容&#xff1a; 点击Install&…

RabbitMQ 消息持久化

默认情况下&#xff0c;exchange、queue、message 等数据都是存储在内存中的&#xff0c;这意味着如果 RabbitMQ 重启、关闭、宕机时所有的信息都将丢失。 RabbitMQ 提供了持久化来解决这个问题&#xff0c;持久化后&#xff0c;如果 RabbitMQ 发送 重启、关闭、宕机&#xff…

05 动态渲染数据

概述 实际上动态渲染数据&#xff0c;在《使用CDN开发Vue3项目》中就已经学习过了&#xff0c;核心代码如下&#xff1a; <div id"vue-app">{{text}}</div> <script src"https://cdn.staticfile.org/vue/3.0.5/vue.global.js"></sc…