所需要的文件在Github:
https://github.com/yongkangluo/Ubuntu20.04OS/tree/main/Files/Lec1-GenTools
搭建环境:
构建流程:使用 gcc 编译 .c 文件,利用 as 编译 .s 文件。之后会产生一个 .o 文件,使用链接产生kernel.bin 文件。之后利用 grub 引导 kernel 文件运行,最后生成 iso 文件。 其中重要的是这套交叉编译程序。 其中编译目标是在 i685-efl 。 为了模拟内核,使用 QEMU 和 Bochs , 都是X86模拟器,方便debug。并且QEMU 可以外挂Bochs。
-
利用VM虚拟机搭建一个Ubuntu 操作系统的平台。
注意:不要最新的,22.04, 使用20.04亲测可以。
因为安装SDL2的时候会显示系统不匹配。 -
可以安装之后使用VM-tools,详情见:
链接
。 -
之后就可以开始安装所需要的环境了,首先是GCC的安装,直接使用Shell文件即可,
注意不要使用sudo 命令,会直接安装到root目录下。
-
之后需要安装SDL2的库,使用
sudo apt-get install libsdl2-dev
命令就可以安装了。
-
安装完成后,需要去下载bochs,这个官网就有,直接下载即可。然后将sh文件放入同一文件夹下,即可使用运行,其中可能会缺包
sudo apt-get install libncurses5 libncurses5-dev
亲测这个是可以的。
-
注意一点,运行bochs的sh文件时,需要使用sudo开头,否则会报错。
下面解释一下各个环境的作用:
- SDL2 库是配合Bochs使用的,其中主要作用是进行在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、游戏杆和图形硬件的低级访问。
- Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。但是这里并不是使用sudo apt-get 安装,而是从源码开始安装的。
方法主要跟着B站Up主做的,B站视频链接在:https://www.bilibili.com/video/BV1jL4y1s7X6/?spm_id_from=333.788&vd_source=72ce864f895f9fbf22b81450817f2875