MIT6.S081学习——二、相关命令行整理

news2024/10/7 8:23:08

MIT6.S081学习——二、相关命令行整理

  • 1 添加user代码到xv6中并编译
  • 2 git版本管理

1 添加user代码到xv6中并编译

问题:如何让在xv6中运行copy.c

答:在xv6中运行copy.c文件,你需要先将该文件添加到xv6源代码目录中,然后修改Makefile以将其编译进内核中。
-1、将copy.c文件添加到xv6源代码目录中。
2、修改Makefile以包含copy.c文件的编译规则。

在Makefile中,你需要添加类似下面的一行:

UPROGS=\
	_cat\
	_cp\
	_echo\
	_forktest\
	_grep\
	_init\
	_kill\
	_ln\
	_ls\
	_mkdir\
	_rm\
	_sh\
	_wc\
	_zombie\
    _copy\   # 添加copy.c编译规则

然后,编译xv6并运行即可。请确保copy.c文件中的代码符合xv6的要求,并且编译通过。

//先清空xv6的qemu的编译
make clean
//再重新编译
make qemu

2 git版本管理

  • 1、下载对应xv6的原始代码
git clone git://g.csail.mit.edu/xv6-lab
  • 2、 在自己github主页创建一个repository,获得其链接
https://github.com/yourname/xv6-labs-2020.git
  • 2、 解压后进入文件夹
    • 查看本地仓库的git配置文件,可以看到origin主机名下已经有了对应的上游仓库地址
cd xv6-labs-2020/
cat .git/config

在这里插入图片描述

  • 3、 不要使用origin,可以使用其他主机名对应到github仓库,例如,我使用github
https://github.com/yourname/xv6-labs-2020.git
git remote add github 你的仓库地址
cat .git/config

在这里插入图片描述

  • 4、git push 命令

    • 功能: git push 命令用于从将本地的分支版本上传到远程并合并。

    • 命令格式:

      git push <远程主机名> <本地分支名>:<远程分支名>
      
    • 如果本地分支名与远程分支名相同,则可以省略冒号

      git push <远程主机名> <本地分支名>
      
  • 5、将实验1用到的util分支推送到github

git checkout util//切换到util分支
git push github util:util
  • 6、 xv6实验git分支建议

    • 建议是每个实验创建一个测试分支,例如对于util来说

      git checkout util # 切换到util分支
      git checkout -b util_test # 建立并切换到util的测试分支
      
      //查看所有分支
      git branch
      //创建分支
      git branch <branch-name>
      
    • 当你在util_test分支中每测试通过一个作业,请提交( git commit )你的代码,并将所做的修改合并( git merge )到util中,然后提交( git push )到github

      git add "新创建的文件(包含目录)"
      git commit -m "完成了第一个作业"
      git checkout util
      git merge util_test
      git push github util:util
      
  • 7、使用Git版本控制系统管理和提交文件以及后续的实验室作业。接下来,切换到一个分支(执行 git checkout util ),其中包含针对该实验室定制的xv6版本。要了解关于Git的更多信息,请查看Git用户手册。Git允许您跟踪对代码所做的更改。例如,如果你完成了其中一个练习,并且想检查你的进度,你可以通过运行以下命令来提交你的变化:

git add <user/name.c>//如果新创建了文件,需要添加到对应位置
 git commit -am 'my solution for util lab exercise 1'
 
Created commit 60d2135: my solution for util lab exercise 1
1 files changed, 1 insertions(+), 0 deletions(-)

在这里插入图片描述

  • 8、可以使用 git diff 命令跟踪您的更改。运行 git diff 将显示自上次提交以来对代码的更改, git diff origin/util 将显示相对于初始xv6-labs-2020代码的更改。这里,origin/xv6-labs-2020是git分支的名称,它是包含您下载的初始代码分支
    在这里插入图片描述

  • 9、测试实验是否成功

./grade-lab-util sleep
make GRADEFLAGS=sleep grade
- 提示:如果运行命令 ./grade-lab-util sleep 报 /usr/bin/env: ‘python’: No such file or directory 错误,请使用命令 vim grade-lab-util,把第一行 python 改为 python3。如果系统没装 python3,请先安装 sudo apt-get install python3 。
  • 10、测试通过
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

备战蓝桥杯---动态规划(应用3之空间优化)

话不多说&#xff0c;直接看题&#xff1a; 我们不妨把问题抽象一下&#xff1a; 首先&#xff0c;我们由裴蜀定理知道如果两个数互质&#xff0c;那么axbyc一定有整数解&#xff08;只要c为1的倍数也就是整数&#xff09;&#xff0c;因此问题就转换为求选一些数使他们gcd1&a…

240Hz高刷电竞显示器 - HKC VG253KM

&#x1f389;&#x1f389;&#x1f389; 各位电竞爱好者们&#xff0c;今天给大家带来一款神秘武器&#xff0c;一款能够让你在游戏中大展拳脚的高刷电竞显示器 - HKC VG253KM&#xff01;&#x1f525;&#x1f525;&#x1f525; 这款显示器&#xff0c;哎呀&#xff0c;真…

windows前后端项目部署

装好windows虚拟机 1.远程连接 计算机右击属性&#xff0c;高级防火墙设置&#xff0c;远程连接服务允许 2.安装jdk,tomcat&#xff0c;解压工具 把安装包拖进去 双击安装解压软件 jdk安装 双击安装 配置环境变量&#xff08;复制jdk路径&#xff09; 计算机右击属性高级…

Unity 2021.3发布WebGL设置以及nginx的配置

使用unity2021.3发布webgl 使用Unity制作好项目之后建议进行代码清理&#xff0c;这样会即将不用的命名空间去除&#xff0c;不然一会在发布的时候有些命名空间webgl会报错。 平台转换 将平台设置为webgl 设置色彩空间压缩方式 Compression Format 设置为DisabledDecompre…

Linux学习方法-框架学习法——Linux驱动架构的演进

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux驱动演进的过程 Linux驱动的原始架构(Linux V2.4) 平台总线架构(platform) Linux设备树 Linux驱动演进的趋势 Linux驱动演进的过程…

python 3.7.3的安装

参考 Linux安装Python3.7-良许Linux教程网 (lxlinux.net) 1、Index of /ftp/python/3.7.9/ 1、安装gcc&#xff0c;yum -y install gcc 2、 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel…

Redis篇之缓存雪崩、击穿、穿透详解

学习材料&#xff1a;https://xiaolincoding.com/redis/cluster/cache_problem.html 缓存雪崩 什么是缓存雪崩 在面对业务量较大的查询场景时&#xff0c;会把数据库中的数据缓存至redis中&#xff0c;避免大量的读写请求同时访问mysql客户端导致系统崩溃。这种情况下&#x…

【前端素材】推荐优质后台管理系统Frest平台模板(附源码)

一、需求分析 定义 后台管理系统是一种用于管理和控制网站、应用程序或系统后台操作的软件工具&#xff0c;通常由授权用户&#xff08;如管理员、编辑人员等&#xff09;使用。它提供了一种用户友好的方式来管理网站或应用程序的内容、用户、数据等方面的操作&#xff0c;并…

【SpringCloudAlibaba系列--OpenFeign组件】OpenFeign的配置、使用与测试以及OpenFeign的负载均衡

步骤一 准备两个服务&#xff0c;provider和consumer 本文使用kotlin语言 provider是服务的提供者&#xff0c;由provider连接数据库 RestController RequiredArgsConstructor RequestMapping("/provider/depart") class DepartController(private val departServ…

使用Postman和JMeter进行signature签名

一、前言 ​ 有些接口的请求会带上sign&#xff08;签名&#xff09;进行请求&#xff0c;各接口对sign的签名内容、方式可能不一样&#xff0c;但一般都是从接口的入参中选择部分内容组成一个字符串&#xff0c;然后再进行签名操作, 将结果赋值给sign; 完整规范的接口文档都会…

对Redis锁延期的一些讨论与思考

上一篇文章提到使用针对不同的业务场景如何合理使用Redis分布式锁&#xff0c;并引入了一个新的问题 若定义锁的过期时间是10s&#xff0c;此时A线程获取了锁然后执行业务代码&#xff0c;但是业务代码消耗时间花费了15s。这就会导致A线程还没有执行完业务代码&#xff0c;A线程…

C++案例->评委打分、员工分组

#include<iostream> using namespace std; #include<vector> #include<string> #include<deque> #include<algorithm> #include<ctime> /* 有5名选手&#xff1a;选手ABCDE&#xff0c;10个评委分别对每一名选手打分&#xff0c;去除最高分…

ACL权限管理

一&#xff0c;简介 ACL是Access Control List的缩写&#xff0c;即访问控制列表。可以通过下列的实例来理解ACL的作用&#xff1a; 二&#xff0c;操作步骤 1. 添加测试目录&#xff0c;用户&#xff0c;组&#xff0c;并将用户添加到组&#xff08;创建zs,ls添加到tgroup组中…

STM32F103x 的时钟源

AHB (Advanced High-performance Bus) 高速总线&#xff0c;用来接高速外设的。 APB (Advanced Peripheral Bus) 低速总线&#xff0c;用来接低速外设的&#xff0c;包含APB1 和 APB2。 APB1&#xff1a;上面连接的是低速外设&#xff0c;包括电源接口、备份接口、 CAN 、 US…

爬取m3u8视频

网址&#xff1a;https://www.bhlsm.com/cupfoxplay/609-3-1/ 相关代码&#xff1a; #采集网址&#xff1a;https://www.bhlsm.com/cupfoxplay/609-3-1/ #正常视频网站&#xff1a;完整视频内容 # pip install pycryptodomex #流媒体文件&#xff1a;M3U8&#xff08;把完整的…

计网运输层

文章目录&#xff1a; 文章目录 概述运输层端口号、复用与分用UDP与TCP对比UDPTCP流量控制拥塞控制拥塞控制算法慢开始(slow-start)拥塞避免(congestion avoidance)快重传(fast retransmit)快恢复(fast recovery) 超时重传时间选择可靠传输实现运输连接管理建立连接连接释放 首…

台式电脑黑屏无法开机怎么办 电脑开机黑屏的解决方法

经常有朋友电脑一开机&#xff0c;发现电脑黑屏没法用了。很多人看到黑屏就懵了&#xff0c;以为电脑要报废了&#xff0c;这是什么原因?电脑开机黑屏怎么解决?一般常说的黑屏故障分为两种&#xff0c;显示屏没有任何显示以及显示英文。下面小编要为大家带来的是台式电脑黑屏…

HTMLElement.click()的回调触发踩坑

先看看以下代码 const el document.getElementById("btn") el.addEventListener("click", () > {Promise.resolve().then(() > console.log("microtask 1"));console.log("1"); }); el.addEventListener("click", (…

基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022

基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022 摘要关键词 1 绪论2 数据与方法2.1 数据2.2 机器学习算法2.3 Penman-Monteith方程2.4 Medlyn公式2.5 模型性能评估 3 基于机器学习算法的混合模型估算农田蒸散量的评价与比较4 利用人工神经网络算法…

信息矩阵、hessian矩阵与协方差矩阵

文章目录 协方差矩阵联合概率密度hessian矩阵marginalize 本节探讨信息矩阵、hessian矩阵与协方差矩阵的关系&#xff0c;阐明边缘化的原理。 一个简单的示例&#xff0c;如下&#xff1a; 来自 David Mackay. “The humble Gaussian distribution”. In: (2006). 以及手写vio第…