banan-os 快速上手指南:10 分钟完成编译与 QEMU 模拟器运行
【免费下载链接】banan-osMirror of banan-os, my hobby operating system项目地址: https://gitcode.com/gh_mirrors/ba/banan-os
banan-os 是一款开源的 hobby 操作系统,本文将带你在 10 分钟内完成从源码克隆到 QEMU 模拟器运行的全过程,让你快速体验这款操作系统的魅力。
准备工作:环境与依赖
在开始之前,请确保你的系统满足以下要求:
- Linux 操作系统(推荐 Ubuntu 20.04+ 或其他基于 Debian 的发行版)
- 已安装 Git、CMake(3.26+)、GCC、QEMU 等基础编译工具和模拟器
- 至少 2GB 空闲内存和 5GB 存储空间
通过以下命令安装必要依赖:
sudo apt update && sudo apt install git cmake gcc g++ qemu-system-x86 ovmf第一步:克隆源码仓库
使用 Git 克隆 banan-os 源码仓库到本地:
git clone https://gitcode.com/gh_mirrors/ba/banan-os cd banan-os第二步:配置编译环境
banan-os 提供了便捷的配置脚本,自动设置编译所需的环境变量和工具链路径。执行以下命令加载配置:
source script/config.sh配置脚本会自动设置以下关键路径(可在 script/config.sh 中查看详细定义):
- 构建目录:
build/ - 系统根目录:
build/sysroot/ - 磁盘镜像路径:
build/banan-os.img - 默认架构:
x86_64(支持 i686/x86_64 架构)
第三步:编译操作系统
使用 CMake 和 Make 进行编译。项目根目录下的 CMakeLists.txt 定义了完整的构建流程,执行以下命令开始编译:
mkdir -p build && cd build cmake .. make -j$(nproc)编译过程会自动构建:
- 内核(kernel/)
- 用户空间程序(userspace/)
- 引导加载程序(bootloader/)
第四步:创建磁盘镜像
编译完成后,需要创建包含操作系统的磁盘镜像。执行以下脚本自动生成格式化的磁盘镜像:
cd .. # 返回项目根目录 script/image-create.sh该脚本会创建一个 500MB 的磁盘镜像(script/image-create.sh),并完成分区和文件系统初始化:
- UEFI 启动模式:GPT 分区表 + ESP 引导分区
- BIOS 启动模式:GPT 分区表 + bios_grub 分区
第五步:QEMU 模拟器运行
使用项目提供的 QEMU 启动脚本运行操作系统:
script/qemu.sh启动脚本会自动配置以下参数(script/qemu.sh):
- 内存:1GB
- CPU 核心:4 核
- 网络:e1000e 网卡(用户模式网络)
- 存储:默认 AHCI 接口(支持 NVME/IDE/USB 模式)
- 输入设备:USB 键盘和鼠标
运行效果展示
成功启动后,你将看到 banan-os 的终端界面,包含系统信息和基本命令行交互:
界面中显示了系统版本、CPU 信息、内存使用等关键数据,你可以尝试执行ls /dev查看设备列表,或运行bananfetch查看系统概览。
常见问题解决
1. 编译时报 CMake 版本错误
确保已安装 CMake 3.26 或更高版本,可通过 toolchain/cmake-platform/ 目录下的配置文件查看详细编译配置。
2. QEMU 启动后无显示
检查是否安装 OVMF(UEFI 固件),默认路径为/usr/share/ovmf/x64/OVMF.fd,可通过OVMF_PATH环境变量自定义路径。
3. 磁盘镜像创建失败
确保有足够的权限执行losetup和mkfs.ext2命令,可能需要使用 sudo 权限运行 script/image-create.sh。
总结
通过以上步骤,你已成功编译并运行了 banan-os 操作系统。这个过程涵盖了从源码获取到模拟器运行的完整流程,适合操作系统爱好者快速上手。如果想深入了解系统架构,可以查看 kernel/include/ 目录下的头文件,或参与 ports/ 目录中的应用移植工作。
现在,你可以开始探索这款 hobby 操作系统的更多功能,甚至尝试修改源码并重新编译,体验操作系统开发的乐趣!
【免费下载链接】banan-osMirror of banan-os, my hobby operating system项目地址: https://gitcode.com/gh_mirrors/ba/banan-os
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考