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

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.lryc.cn/news/261866.html

相关文章:

  • 工具在手,创作无忧:一键下载安装Auto CAD工具,让艺术创作更加轻松愉悦!
  • 第25节: Vue3 带组件
  • ubuntu apache2配置反向代理
  • 【数据挖掘 | 关联规则】FP-grow算法详解(附详细代码、案例实战、学习资源)
  • 力扣题目学习笔记(OC + Swift) 11
  • JVM基础入门
  • 前端真的死了吗
  • 前后端分离开发
  • 向量数据库——AI时代的基座
  • 【️什么是分布式系统的一致性 ?】
  • 鸿蒙ArkTS Web组件加载空白的问题原因及解决方案
  • 【Java】网络编程-UDP回响服务器客户端简单代码编写
  • 【设计模式】之工厂模式
  • 70.爬楼梯
  • 【论文解读】ICLR 2024高分作:ViT需要寄存器
  • 【Redis】AOF 基础
  • C语言—每日选择题—Day50
  • [C/C++]——内存管理
  • PDF文件的限制编辑,如何设置?
  • Linux 中使用 docker 安装 Elasticsearch 及 Kibana
  • 在Flutter中使用PhotoViewGallery指南
  • c语言中的static静态(1)static修饰局部变量
  • 生信算法4 - 获取overlap序列索引和序列的算法
  • springboot 学习网站
  • 论文笔记:A review on multi-label learning
  • 接口文档 YAPI介绍
  • LeetCode 300最长递增子序列 674最长连续递增序列 718最长重复子数组 | 代码随想录25期训练营day52
  • Improving IP Geolocation with Target-Centric IP Graph (Student Abstract)
  • 华为技面三轮面试题
  • Linux arm架构下构建Electron安装包