# rust-os-kernel **Repository Path**: mr-lwq/rust-os-kernel ## Basic Information - **Project Name**: rust-os-kernel - **Description**: 个人练习项目,用rust语言实现一个内核,练习rust 和 系统编程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-05 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Rust OS - 使用Rust编写的操作系统内核 一个使用Rust语言编写的简单操作系统内核,能够在x86_64架构下运行,通过QEMU虚拟机进行测试和运行。 ## 项目特性 - 裸机(bare-metal)运行环境,不依赖任何操作系统 - 直接操作VGA显存进行文本输出 - 基于bootloader自动加载和启动 - 支持x86_64架构的64位处理器 - 内置测试框架支持 ## 环境要求 ### 必需软件 - **Rust编译器** (最新稳定版) - **QEMU虚拟机** (推荐7.0+版本) - **Git** (用于克隆项目) ### 平台特定安装指南 #### Windows环境 ```powershell # 1. 安装Rust (访问 https://rustup.rs/ 下载rustup-init.exe) # 2. 安装QEMU # 方法1: 官网下载 https://www.qemu.org/download/#windows # 方法2: 使用Chocolatey choco install qemu # 3. 验证安装 qemu-system-x86_64 --version ``` #### macOS环境 ```bash # 1. 安装Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 2. 安装QEMU (使用Homebrew) brew install qemu # 3. 验证安装 qemu-system-x86_64 --version ``` ### Rust工具链配置 (所有平台通用) ```bash # 安装必要的Rust组件 rustup component add rust-src # 添加Rust源码,用于编译内核 rustup target add thumbv7em-none-eabihf # 添加bare-metal目标支持 # 安装bootimage工具 (用于创建可启动镜像) cargo install bootimage ``` ## 编译项目 ### 基本编译 (所有平台通用) ```bash # 编译内核 (开发模式) cargo build # 编译内核 (发布模式,优化性能) cargo build --release ``` ### 创建启动镜像 (所有平台通用) ```bash # 生成可启动的磁盘镜像文件 cargo bootimage # 指定发布模式生成镜像 cargo bootimage --release ``` ## 运行内核 ### 基本运行 (所有平台通用) ```bash # 直接运行内核 (cargo会自动构建镜像并启动QEMU) cargo run # 运行发布版本 cargo run --release ``` ### 手动使用QEMU运行 #### Windows环境 (PowerShell) ```powershell # 基本运行命令 qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin # 带调试信息的运行 qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin -serial stdio -display gtk # 运行发布版本 qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/release/bootimage-rust_os.bin # 如果QEMU不在PATH中,使用完整路径 (假设安装在D:\software\qemu\) & "D:\software\qemu\qemu-system-x86_64.exe" -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin ``` #### macOS环境 (Terminal/Bash/Zsh) ```bash # 基本运行命令 qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin # 带调试信息的运行 (macOS使用cocoa显示后端) qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin -serial stdio -display cocoa # 运行发布版本 qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/release/bootimage-rust_os.bin # 后台运行模式 (无GUI窗口) qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin -nographic -serial stdio ``` ### QEMU参数说明 - `-drive format=raw,file=<镜像路径>`: 指定启动磁盘镜像 - `-serial stdio`: 将串口输出重定向到终端 (用于调试) - `-display gtk`: 使用GTK显示后端 (Linux/Windows) - `-display cocoa`: 使用Cocoa显示后端 (macOS专用) - `-nographic`: 无图形界面模式,适合服务器环境 - `-device isa-debug-exit,iobase=0xf4,iosize=0x04`: 添加调试退出设备 ### 平台特定注意事项 #### Windows环境 如果QEMU命令无法直接运行: 1. **添加QEMU到系统PATH环境变量** 2. **使用完整路径** (如上面示例) 3. **创建批处理脚本**方便快速启动 #### macOS环境 1. **推荐使用Homebrew安装QEMU**,会自动配置PATH 2. **如果使用-display cocoa**,需要在图形界面环境下运行 3. **使用-nographic模式**可以在SSH或终端中运行,无需图形界面 ## 运行测试 (所有平台通用) ```bash # 运行内置测试 cargo test # 运行特定测试 cargo test test_name ``` ## 项目结构 ``` rust_os/ ├── src/ │ ├── main.rs # 内核主入口 │ └── vga_buffer.rs # VGA文本缓冲区驱动 ├── Cargo.toml # 项目配置和依赖 ├── x86_64-rustos.json # 自定义目标配置 └── README.md # 项目说明 ``` ## 预期运行效果 成功运行后,QEMU虚拟机会显示黑色屏幕,左上角显示白色文字 "Hello from rust_os!"。 内核会进入无限循环状态,按 `Ctrl+C` 或关闭QEMU窗口来退出虚拟机。 ## 双平台开发对比 | 项目 | Windows | macOS | |------|---------|-------| | **包管理器** | Chocolatey (可选) | Homebrew (推荐) | | **QEMU安装** | 官网下载 或 `choco install qemu` | `brew install qemu` | | **终端环境** | PowerShell / CMD | Terminal (bash/zsh) | | **显示后端** | `-display gtk` | `-display cocoa` | | **路径格式** | `D:\software\qemu\qemu-system-x86_64.exe` | `/usr/local/bin/qemu-system-x86_64` | | **快速启动** | 创建 `.bat` 批处理文件 | 创建 `.sh` 脚本文件 | ### 快速启动脚本示例 #### Windows (run.bat) ```batch @echo off cargo bootimage & "D:\software\qemu\qemu-system-x86_64.exe" -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin -serial stdio pause ``` #### macOS (run.sh) ```bash #!/bin/bash cargo bootimage qemu-system-x86_64 -drive format=raw,file=target/x86_64-rustos/debug/bootimage-rust_os.bin -serial stdio -display cocoa ``` 记住给macOS脚本添加执行权限:`chmod +x run.sh`