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的影子了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值