环境:Windows 下的 Ubuntu 18.04 虚拟机
实践一下#
🎯目标:让自己的系统输出 "Hello OS"
下载源码#
- 可在系统任意位置,打开终端执行以下命令,下载源码到虚拟机上
生成 bin 文件#
- 在库中具体位置:/lesson02/HelloOS 下,编译源码,生成 HelloOS.bin
- 首先,需要安装工具 gcc、make、nasm,默认只有 nasm 没有,其它工具如没有再安装
- 然后,执行编译即可,默认按照 Makefile 里的规则,生成 HelloOS.bin
移动 bin 文件#
- 将 HelloOS.bin 放到 /boot/ 目录下
修改 grub 启动配置⭐#
- 修改 /boot/grub/grub.cfg 文件
- 使用 sudo 权限,用 vim 打开
- 在最后位置插入以下代码,注意修改两个地方:set root、multiboot2
- 修改内容参考此步骤,再打开一个终端,观察 df /boot/ 的结果,关注两个地方:文件系统、挂载点

- 文件系统⭐
- 若为 /dev/sda1,即 1 对应修改 set root='hd0,msdos1'
- 如果不是 sda [其它系统环境],还需看情况修改 [看课程评论]
- 挂载点⭐
- 若为 /boot,对应修改 multiboot2 /HelloOS.bin
- 若为 /,则无需修改
PS:使用:w!
保存,使用:q
退出编辑

重启机器#
- 重启机器,在加载系统前疯狂按 shift 键 [也可能是其他键,如 esc 键],进入 grub 引导界面

- 选择自己的系统,按 enter 键

- 如果此处报错,主要涉及系统类型(物理机、其它虚拟机系统)、系统分区类型(UEFI)、分区表类型(GPT)等因素,可参考以下参考内容👇
参考内容#
如果在其他环境下运行,可参考课程里的评论和相关博客
- 操作系统实战 45 讲 01:运行 HelloOS——CSDN
- pedro/pos—— 码云
- 可在非桌面端(如 WSL2)下实现
- 彭东的【操作系统实战】交流群核心问题汇总—— 石墨
- ❗ 这里基本都能找到答案!
- 02 | 几行汇编几行 C:实现一个最简单的内核—— 极客时间
课程链接#
扫码即可加入: