2023 秋冬季开源操作系统训练营日志(二)
吐槽
国内的运维和程序员,天生就比别人难度高。起码你得会搭梯子,然后是各种地方运用梯子,docker、k8s、github、google…建议各位通过软路由分流,这样实验环境就不用担心各种下载超时,真的很费时间和耐心,费人。
记录点
按第二阶段的官方说明,将实验源码克隆到本地。官方推荐的实验环境是 ubunt20.04 + qemu-7.0.0。我本机是 Gentoo Linux,滚动更新,目前的版本情况如下:
软件名称 | 版本 |
---|---|
qemu | 8.1.1 |
podman | 4.7.1 |
rust | 1.75-nightly |
于是为做了如下的尝试:
docker还是podman?
官方的 Makefile 里,默认是用 docker 命令来执行 make docker,我修改成自动检测是否安装了 podman, 是的话用 podman,否则用 docker,
Makefile:
; ;
qemu-7.2是个分水岭
测试了一堆版本:7.0.0、7.1.0、7.2.6( 版本 7 目前最新的 release )、8.0.5( 版本 8 目前最新的 release )、8.1.1。发现如下规律:
- qemu 版本小于 7.2,官方示例 ch1 可以正常运行
- qemu 版本从 7.2 开始到最新,直接采用官方 rustsbi 会不显示虚机的输出,这时用其他终端通过 ps 命令可以看到实际上 qemu-system-riscv64 已经在执行,ctrl+c 无法中断,只能 kill -9 杀掉。如果用 rustsbi 的 github 下载的 Prereleased 2023-03-06 版本,就能正常运行。该版本的发布记录有这么一条,个人猜测与这有关:
Fix dtb parsing for qemu 7.2
ubuntu 20.04还是latest
我都尝试了,都可以。
docker还是实体机
个人决定后续主要在 Gentoo Linux 环境继续实验,如果踩坑再切换 docker 环境验证。
明天开始继续,希望一切顺利。