【问题标题】:How to change the source code of minix in a local repository如何在本地存储库中更改 minix 的源代码
【发布时间】:2018-10-04 05:50:17
【问题描述】:

我一直想知道如何解决以下问题。我目前正在学习如何根据自己的喜好修改操作系统的源代码,工作示例是 A.S.Tanenbaum 的 minix

假设我使用qemu 运行minix,并将ssh 端口重定向到localhost:10022(使用-net user,hostfwd=tcp::10022-:22),这样我就可以ssh -p 10022 user@localhost 连接到在qemu 上运行的系统。

现在,minix 的源代码位于/usr/src。我想在我的机器上本地拥有这段代码——最好在git 存储库中——并且能够修改它,然后推送它并在虚拟机上构建。

总而言之,我想要:

  • 在我的机器上的 git 存储库中拥有 minix/usr/src 的副本
  • 为了能够从我的机器(或类似的东西)git push 它,这样如果我的更改完全破坏了系统,我可以从minix 的基本映像重新开始

我已经尝试将/usr/src 制作成一个 git 存储库,我可以将它克隆到我的本地机器上。但是,显然不建议推送到非裸存储库,并且不包含任何未提交文件的裸 git 存储库似乎不是要走的路。

另外,我不希望通过推/拉到另一个遥控器来强行使用它。

如果能提供有关如何设置存储库以创建所需工作流程的任何提示,我将不胜感激。

【问题讨论】:

    标签: git qemu minix


    【解决方案1】:

    主机:只有一个非裸存储库(+备份)。

    VM:/usr/src 中的一个裸存储库和一个非裸存储库。

    初始设置:在 VM 的 /usr/src 中创建一个非裸存储库。添加并提交所有内容。将非裸仓库克隆到某个地方的裸仓库。从虚拟机上的裸仓库克隆到主机上的非裸仓库。

    工作流程:在主机上编辑源,添加和提交。从主机推送到 VM 上的裸仓库。在 VM 上从裸机拉到非裸机并编译。

    可以使用"remote deploy" 钩子(接收后或更新后)自动从裸露拉到非裸露。

    【讨论】:

      最近更新 更多