# HanOS **Repository Path**: junjie2021/HanOS ## Basic Information - **Project Name**: HanOS - **Description**: 基于微内核的通用操作系统 - **Primary Language**: C - **License**: MIT - **Default Branch**: mainline - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2021-12-03 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: x64, hobby-os, osdev, 操作系统, 爱好者操作系统 ## README # HanOS - 基于微内核的通用操作系统 [English](https://github.com/jjwang/HanOS/blob/mainline/README.md) | [中文](https://github.com/jjwang/HanOS/blob/mainline/README.zh-cn.md) ![](https://img.shields.io/github/license/jjwang/HanOS) ![](https://raw.githubusercontent.com/jjwang/HanOS/image-data/badge.svg) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/eb7d6f1d9d1741e1ad3c40889c3fb1b2)](https://app.codacy.com/gh/jjwang/HanOS/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) ## 设计思想 - Bootloader:Limine用于使内核尽快运行,HanOS选择了Limine启动协议 - CPU模式:HanOS支持x86-64长模式,HanOS没有计划支持其他x86模式 - GUI:GUI不是HanOS的首要任务,但HanOS将来会移植一些GUI库 ## 当前进展 - [x] 基于帧缓冲的终端和内核日志系统 - [x] 初始化GDT和IDT以处理异常 - [x] 物理内存分配器和虚拟内存管理器 - [x] 解析ACPI表并初始化MADT - [x] 启动所有CPU - [x] 设置APIC(高级可编程中断控制器)中断控制器 - [x] 从CMOS读取RTC时间并配置HPET计时器 - [x] 由APIC计时器驱动调度 - [x] 键盘/鼠标驱动程序和命令行界面 - [x] VFS、FAT32和RAMFS文件系统,RAMFS用于从ELF文件加载和执行程序 - [x] 内核和用户空间的任务 - [x] 用于命令行界面的背景图像显示 - [x] 为bash和其他系统工具实现系统调用 - [x] 从xv6移植的简单的用户空间shell应用程序 ## 字体选用 - 使用bdf2psf将来自https://font.gohu.org/的14px字体转换为psf1: `bdf2psf gohufont-14.bdf /usr/share/bdf2psf/standard.equivalents /usr/share/bdf2psf/ascii.set 256 gohufont-14.psf` - 在根目录下运行"doxygen Doxygen",然后在latex目录运行"make"生成项目PDF文档 ## 如何运行 - 发布文件夹中的磁盘映像文件 - "hdd.img" 可用于测试: `qemu-system-x86_64 -enable-kvm -serial stdio -M q35 -m 1G -smp 2 -no-reboot -rtc base=localtime -drive id=handisk,if=ide,format=raw,bus=0,unit=0,file=hdd.img`