# LineOS **Repository Path**: inaline/line-os ## Basic Information - **Project Name**: LineOS - **Description**: A Simple X84_64 Unix-like Operating System written by Rust. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-18 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LineOS 一个从零编写的裸机 x86_64 操作系统内核,使用 Rust nightly + `no_std` 环境开发,从 Multiboot2 引导一路运行到 ring3 交互式 Shell。 ## 功能特性 - **引导**:Multiboot2 + GRUB(BIOS / UEFI 混合 ISO),汇编完成 32 → 64 位长模式切换 - **显示**:VGA 文本模式 + 800×600 线性帧缓冲控制台(8×16 位图字体、XOR 反色虚拟光标、滚屏、退格) - **日志**:COM1 串口输出 + 分级日志系统(Error/Warn/Info/Debug/Trace,支持早期环形缓冲) - **中断**:IDT、8259A PIC 重映射、PIT 100Hz 时钟、PS/2 键盘驱动(整批排空 + 轮询兜底) - **内存**:物理帧分配器、4 级页表(递归映射 + 物理帧窗口)、bump + slab 双堆分配器 - **多任务**:Round-Robin 抢占式调度、内核线程、阻塞/唤醒原语 - **用户态**:GDT/TSS、`syscall`/`sysret` 快速系统调用、ELF 加载器、ring3 用户进程 - **Shell**:交互式命令行(`echo` / `help` / `clear` / `exit`),行编辑与回显 ## 环境要求 | 工具 | 用途 | | --- | --- | | Rust nightly | 见 `rust-toolchain.toml`(含 `rust-src`、`llvm-tools-preview`) | | NASM | 编译启动汇编 `boot.asm` | | GRUB 工具链 | `grub-pc-bin`、`grub-efi-amd64-bin`、`xorriso`(生成混合 ISO) | | QEMU | 运行与调试(`qemu-system-x86_64`) | ## 构建与运行 ```bash make iso # 构建内核 + 用户程序,生成 lineos.iso make run # QEMU 运行(BIOS 模式,串口映射到终端) make run-uefi # QEMU 运行(UEFI 模式,需安装 OVMF) make run-bochs # Bochs 运行(WSL 调用 Windows 侧 Bochs) make release # 发布构建 make clean # 清理 ``` 默认 target 已在 `.cargo/config.toml` 中配置,直接 `cargo build` 即可编译内核本体。 ## 项目结构 ``` src/ ├── main.rs # 内核入口(no_std + no_main) ├── arch/x86_64/ # 启动汇编、GDT/TSS、IDT/PIC/PIT、syscall 基础设施 ├── kernel/ # 内存管理、任务调度、ELF 加载、系统调用、同步原语 ├── drivers/ # VGA、帧缓冲、串口、PS/2 键盘 ├── utils/ # 日志系统、错误屏幕 └── user/shell/ # ring3 用户态 Shell(独立 crate) ``` ## 许可证 本项目代码采用 [MIT 许可证](LICENSE) 开源。 **注意**:LineOS 名称及 Logo(包括内核中内置的 Logo 字形与相关图形标识)为项目商标,**不在开源授权范围内**。MIT 许可证仅授予代码的使用、修改与分发权利,不包含任何商标使用授权。