DragonOS的功能
规范
- 启动引导:Multiboot2 
- 接口:posix 2008 
内核层
内存管理
- 页分配器 
- slab分配器 
- VMA 
- MMIO地址空间自动分配 
多核
- 多核引导 
- ipi框架 
进程管理
- 进程创建 
- 进程回收 
- 内核线程 
- fork 
- exec 
- 进程睡眠(支持高精度睡眠) 
- kthread机制 
同步原语
- mutex互斥量 
- semaphore信号量 
- atomic原子变量 
- spinlock自旋锁 
- wait_queue等待队列 
调度
- CFS调度器 
- 单核调度 
IPC
- 匿名pipe管道 
- signal信号 
文件系统
- VFS 
- fat12/16/32 
- Devfs 
- RamFS 
- procfs 
异常及中断处理
- APIC 
- softirq 软中断 
- 内核栈traceback 
内核数据结构
- 普通二叉树 
- kfifo缓冲区 
- 循环链表 
- IDR 
内核实用库
- LZ4压缩库(1.9.3) 
- 字符串操作库 
- ELF可执行文件支持 
- printk 
- 基础数学库 
- 屏幕管理器 
- textui框架 
- CRC函数库 
系统调用
测试框架
- ktest 
驱动程序
- ACPI 高级电源配置模块 
- IDE硬盘 
- AHCI硬盘 
- PCI 
- XHCI(usb3.0) 
- ps/2 键盘 
- ps/2 鼠标 
- HPET高精度定时器 
- RTC时钟 
- local apic定时器 
- UART串口 
- VBE显示 
- VirtIO网卡 
- x87FPU 
- TTY终端 
用户层
LibC
- 基础系统调用 
- 基础标准库函数 
- 部分数学函数 
shell命令行程序
- 基于字符串匹配的解析 
- 基本的几个命令 
驱动程序
- ps/2键盘用户态驱动 
软件移植
- GCC 11.3.0 (暂时只支持了x86_64的Cross Compiler)https://github.com/DragonOS-Community/gcc 
- binutils 2.38(暂时只支持了x86_64的Cross Compiler)https://github.com/DragonOS-Community/binutils 
- mpfr 4.1.1 https://github.com/DragonOS-Community/mpfr