# myos **Repository Path**: deepplayer/myos ## Basic Information - **Project Name**: myos - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## mykernel Rust 实现的 x86_64 裸机最小内核,包含自写 boot loader,在屏幕上打印 "Hello, world!"。 ### 特性 - 自写 boot loader(不使用 multiboot2/UEFI) - 16 位实模式 → 32 位保护模式 → 64 位长模式 - 直接操作 VGA 文本缓冲区输出 - 可在 QEMU 或 x86_64 实机上运行 ### 构建要求 - `nasm` - 汇编器 - `ld` 和 `objcopy` - 链接工具(binutils) - `rustc` - Rust 编译器 - `qemu-system-x86_64` - 模拟器(可选,用于测试) ### 安装依赖(Ubuntu/Debian) ```bash sudo apt-get update sudo apt-get install -y nasm binutils qemu-system-x86 ``` ### 快速开始 ```bash # 检查依赖 make check-tools # 构建内核镜像 make # 在 QEMU 中运行(如果已安装) make run ``` ### 项目结构 ``` src/ ├── boot.asm # 引导扇区代码(实模式→保护模式→长模式) └── main.rs # Rust 内核(VGA输出) linker.ld # 链接脚本 Makefile # 构建脚本 x86_64-unknown-none.json # Rust 目标描述 ``` ### 启动流程 1. **BIOS** 加载引导扇区到 0x7c00 2. **16位实模式**:加载内核到内存,启用 A20,设置 GDT 3. **32位保护模式**:检查长模式支持,设置页表 4. **64位长模式**:跳转到 Rust 内核入口 `_start` 5. **Rust 内核**:清屏,打印 "Hello, world!" target=x86_64-unknown-none