#x86-64 #kernel #qemu #no-std #image

no-std app cargo-image

创建 qemu 可引导的 x86_64 操作系统镜像

4 个版本 (2 个破坏性更新)

0.4.0 2019 年 8 月 31 日
0.3.0 2019 年 8 月 26 日
0.2.1 2019 年 8 月 26 日
0.2.0 2018 年 12 月 25 日
0.1.0 2018 年 12 月 25 日

#110 in #qemu

每月 21 次下载

MIT/Apache

12KB
195

Cargo-image

Crates.io maintenance-as-is

使用 cargo-sysrootbootimage 的替代方案。

cargo-sysroot 的优势在于它是可组合的,例如,其他工具可以与之配合使用,即使它们不知道它的存在,因为它设置 cargo,使得正常的命令(如 cargo build)可以正常工作。

bootimage 类似,此工具会将您的内核与 x86_64 bootloader crate 结合起来,因此您可以使用它来引导。

使用方法

在您的项目目录中,只需运行 cargo image

输出镜像将位于 target/{your-triple}/debug/{your-binary-name}.bin。您的二进制名称通常是您项目的名称。

详细信息

使用 cargo sysroot 编译 bootloader sysroot crate,并在构建内核之前调用 cargo sysroot,以确保一切是最新的。

先决条件

  • 夜间编译器。
  • 配置 .cargo/config 来构建您的目标。
  • cargo-sysroot v0.6.0 或更高版本。
  • bootloader v0.8.0 或更高版本。较旧版本未经测试,可能不会工作。
  • 通过 rustup 安装 llvm-tools-preview 组件。

限制

  • 没有尝试遵循 .cargo/config 搜索路径,例如这个工具不会像 cargo 那样在父目录中查找。

常见问题解答

  • 问:关于 bootimage 怎么样?
  • 答:🤷. 它不符合我的需求,所以我写了自己的。

许可证

根据您的要求选择以下任一许可证:

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在工作中的贡献,将如上所述双重许可,不附加任何额外的条款或条件。

依赖

约 2.3–3MB
约 55K SLoC