1669_MIT 6.828 xv6代码的获取以及编译启动

         全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)

         6.828的学习的资料从开始基本信息的讲解,逐步往unix的一个特殊版本xv6过度了。这样,先得熟悉一下这个OS的基本代码以及环境。

         在课程中其实是提供了一个git可以直接获取代码的链接的,但是我尝试了一下失败。大概率这个链接还是只开放给在校的学生的缘故,也可能是课程结束后或者其他的什么原因无法继续访问了。

不过,现在比价好的是我们还拥有一个比较大的开源社区github,在上面很顺利找到了一个。链接: https://github.com/guilleiguaran/xv6

工程克隆完了之后,直接尝试编译失败了。这里需要说明一下的是编译环境的搭建,我这里采用的跟JOS的环境完全相同的虚拟机,因此整个环境是完全相同的。虚拟机除了这个课程需要的工具基本没有安装其他的工具,因此也就没有对比makefile中的工具具体细节。不过,看makefile中的信息,qemu的目录还是Mac上的。因此,也顺手改掉了。后面,我会在编译成功之后尝试在QEMU中启动。

         我这里复现了一下出现的问题,由于其他文件都是已经编译过的,因此这里的log会跟拿过来的原始的编译的log略有差异。

         既然引用的库文件中已经有了这个定义,姑且直接换成库函数里面的应用。如果调试有问题的时候再尝试这方面问题的解决。那么,处理的方式很简单了,上面的代码屏蔽。

         之后的编译非常顺利。接下来尝试在QEMU中启动。

         为保证启动的顺利,先修改了qemu的路径,这个路径需要跟我们系统上的工具路径一致。JOS启动的过程中,已经针对此有过基本的探索尝试。而我现在的调试环境是ssh远程连接到了虚拟机,因此后面的启动需要以nox的方式启动。Makefile中提供了qemu-nox的target。可以执行make qemu-nox即可,与JOS一致。

         这是启动的效果。

         看了一下,还提供了好几个工具。

         由于还没有pwd等命令支持,我先尝试切换到根目录看看有什么信息,发现之前所在的就是根目录。不过,这已经看到了OS的影子了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python工具库安装

1、Python工具库下载 (1)查询安装Python的版本信息。 按键 WinR,在弹出的“运行”对话框中输入cmd,在弹出的Dos系统中,输入python,即可查询得到Python的版本信息。本次所安装的python版本为3.8.10。 &…

后端开发之Swagger API开发工具

最近刚入职公司,做Java后端。当下对于新手程序员来说,的确并不友好,不仅是经济低迷,而且这次chatgpt的大火也极大地冲击了软件开发行业,所以小白必须抓紧时间卷,哪怕自己写出来的东西把自己搞失业……也要尽…

【Python从入门到进阶】14、字典高级应用

接上篇《13、元组高级应用及常见切片操作》 上两篇我们学习了Python中元组的高级应用,以及字符串、列表和元祖的切片操作。本篇我们来学习字典的高级应用,包括字典的查询、修改、添加、删除及遍历操作。 一、字典高级简介 我们通过前面的学习知道&…

ORACLE创建表空间、用户、授权和Navicat创建序列和触发器及解决ORA-00942、ORA-01219错误

问题描述:因为每次Oracle删除数据库的时候磁盘文件还没删除,然后自己手动停止Oracle,删除磁盘里的.DBF文件导致数据库重启后无法连接。 cmd sqlplus sys as sysdba执行alter database open;查看你报错的数据文件(就是你停止Orac…

Git 基础知识总结

Git 基础知识总结 1. Git 简介 Git 是什么 Git是一款分布式版本控制系统,可以有效地管理代码的版本和变更。Git可以在本地进行版本控制,也可以在多人协作开发时进行远程版本控制。Git的设计目标是速度快、数据完整性高、支持分布式、非线性开发流程。…

NVIDIA-cuSPARSE数据类型2023年(二)

4 cuSPARSE数据类型参考 4.1 数据类型 float,double,cuComplex,cuDoubleComplex后两个类型是来自cuComplex.h 4.2 cusparseStatus_t 表示库函数返回的状态,可以有以下取值: CUSPARSE_STATUS_SUCCESS 操作成功完成CUSPARSE_STATUS_NOT_INITIALIZED 库…

SpringBoot整合junitmybatis

SpringBoot整合junit&mybatis3,SpringBoot整合junit3.1 环境准备3.2 编写测试类4,SpringBoot整合mybatis4.1 回顾Spring整合Mybatis4.2 SpringBoot整合mybatis4.2.1 创建模块4.2.2 定义实体类4.2.3 定义dao接口4.2.4 定义测试类4.2.5 编写配置4.2.6 …

拉取代码到本地 git pull 和 git clone 的区别

一、git pull 使用 git pull 拉取代码,你需有权限。 从你自己的远程仓库拉取代码,或者使用你团队的仓库拉取代码。 1.有 有权限可以拉取代码的远程仓库 1. 所以首先要连接远程仓库,前提你得先有个本地仓库存放,如果没有先创建。 …

ToBeWritten之反入侵安全技术面经总结

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

ReactJS到React-Native,架构原理概述

React是一个纯JS的UI库,只能干HTML/CSS/JS 提供的Web服务(新的H5 API不一定支持), React-Native厉害在于它能打通JS和Native Code, 让JS能够调用丰富的原生接口,充分发挥硬件的能力, 实现非常复杂的效果,同时能保证效率和跨平台性…

【CocosCreator入门】CocosCreator组件 | MotionStreak(拖尾)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中MotionStreak是Cocos Creator中一个非常有用的特效组件,可以创建出类似于拖尾的效果。本文将深入讲解MotionStreak的实现原理及使用方法。 目录 一、MotionStreak的实现原…

黑客与渗透师的区别,如何才能成为一名黑客

网络安全员顾名思义就是“研究网络的安全性的人员”没有“渗透师”这个称呼,都是“渗透测试工程师”“黑客”像是个俗名,广义概念上是一种精神,狭义概念还得按照时代来分1、网络安全这个领域非常庞大,包括了安全服务(渗…

碉堡!“万物皆可分”标记模型上线「GitHub 热点速览」

作者:HelloGitHub-小鱼干这周有个让人眼前一亮的图像识别模型 segment-anything,它能精细地框出所有可见物体,它标记出的物体边界线清晰可见。如此出色的模型,自然获得了不少人的赞赏,开源没几天,就拿下了 …

VSCode+PyQt之Python界面编写

环境配置 1、python3.9 2、安装库 pip install PyQt5 pip install PyQt5-tools3、选择python解释器 4、在VSCode里下载并安装PYQT Integration 5、配置pyqt integration 5.1 将下面改为:D:\ProgramFiles\Python39\Scripts\pyuic5.exe 5.2 将下面的改为&#xff…

Kafka 入门篇(三)

文章目录 提交和偏移量的概念特殊偏移自动提交提交当前偏移量异步提交同步和异步组合提交提交特定的偏移量提交和偏移量的概念 特殊偏移 我们上面提到,消费者在每次调用poll() 方法进行定时轮询的时候,会返回由生产者写入 Kafka 但是还没有被消费者消费的记录,因此我们可以…

ccc-pytorch-宝可梦自定义数据集实战-加载数据部分(9)

文章目录第一步:构建路径与种类的映射关系第二步:载入所有的宝可梦图像第三步:打散顺序并通过路径名提取映射关系构建映射文件第四步:完善选取、获取图片信息功能并可视化第五步:对数据进行预处理第六步:批…

【李宏毅】深度学习——HW4-Speaker Identification

Speaker Identification 1.Goal 根据给定的语音内容,识别出说话者是谁 2.Data formats 2.1data directory 目录下有三个json文件和很多pt文件,三个json文件作用标注在下图中,pt文件就是语音内容。 mapping文件 metadata文件 n_mels:Th…

飞桨EasyDL落地三大工业场景,工业AI赋能产业升级

数智化时代,如何利用人工智能实现传统生产方式的转型升级,成为摆在每个工业制造企业的一道必答题。工业生产、质检、管理等环节,持续产生海量数据。以机器视觉为代表的AI技术,广泛应用在3C电子、快消品制造、汽车零部件制造等多个…

指令系统和寻址方式

文章目录指令系统指令的基本格式扩展码指令格式指令的操作类型指令的寻址方式指令寻址数据寻址隐含寻址立即寻址直接寻址间接寻址寄存器寻址寄存器间接寻址相对寻址基址寻址变址寻址堆栈寻址使用场景PSW小结程序的机器级代码表示CISC和RISC刷题小结指令系统 指令:计…

Revit插件 | 建模助手2023年度版本大更新,就是这么懂你

​大家好,本期是懂你的建模助手。 从去年开始,建模助手几乎每个月都会有大大小小的活动,目的是让大家用最低的成本尝试极棒的建模体验!强行挽尊ing 但作为一支很pro的团队,单一地搞活动肯定不行滴,还得在…
最新文章