[OSCOMP] 记录 DragonOS 作为基座系统适配 Roadmap
[!NOTE] ~~由于 riscv64 尚不支持完全在容器环境下在 QEMU 中运行镜像,因此若想看到在 riscv64 上做的修改,请在主机上运行
cd tools && bash bootstrap.sh以完善运行环境。鉴于这种方式容易带来环境依赖上的污染,我们正在迁移至 Dev Container 环境中,由此造成的不便我们十分抱歉~~~ 自4月26日起,riscv64可以稳定在devcontainer内编译并启动。
目前已将 DragonOS oscomp 分支迁移到 riscv64 作为默认编译条件。
目前 DragonOS 对不同平台的支持情况:
| x86_86 | riscv64 | loongarch64 | |
|---|---|---|---|
| Container Build & Run | X | X | |
| Container Build & Host Run | X | X | X |
| Host Build & Host Run | X | X | X |
迁回 x86_64
参考 https://docs.dragonos.org.cn/introduction/build_system.html#riscv64
修改 env.mk .vscode/settings.json dadk-manifest.toml
把 env.mk dadk-manifest.toml 里面的ARCH的值改为 riscv64,并且在 setting.json 里面注释 "rust-analyzer.cargo.target": "riscv64-unknown-none", 并取消注释另一项。
x86_64架构,可以在内核中生成 kernel.elf 后,退回用户态执行 make ci-gendisk 操作
编译用户程序
~~直接进入 devcontainer 并不能 make user。CI 容器中不含 x86_64-unknown-linux-musl 工具链,因此需要手动添加该环境以编译部分用户程序。~~
riscv64已经支持用户程序编译,x86_64部分支持。