155e63fcbSfslongjin(_genreal_features)= 255e63fcbSfslongjin 355e63fcbSfslongjin# DragonOS的功能 455e63fcbSfslongjin 555e63fcbSfslongjin## 规范 655e63fcbSfslongjin 755e63fcbSfslongjin- [x] 启动引导:Multiboot2 855e63fcbSfslongjin 955e63fcbSfslongjin- [x] 接口:posix 2008 1055e63fcbSfslongjin 1155e63fcbSfslongjin## 内核层 1255e63fcbSfslongjin 1355e63fcbSfslongjin### 内存管理 1455e63fcbSfslongjin 1540fe15e0SLoGin- [x] 页帧分配器 1640fe15e0SLoGin- [x] 小对象分配器 1755e63fcbSfslongjin- [x] VMA 1855e63fcbSfslongjin- [x] MMIO地址空间自动分配 1940fe15e0SLoGin- [x] 页面映射器 2040fe15e0SLoGin- [x] 硬件抽象层 2140fe15e0SLoGin- [x] 独立的用户地址空间管理机制 2240fe15e0SLoGin- [x] C接口兼容层 2355e63fcbSfslongjin 2455e63fcbSfslongjin### 多核 2555e63fcbSfslongjin 2655e63fcbSfslongjin- [x] 多核引导 2755e63fcbSfslongjin- [x] ipi框架 2855e63fcbSfslongjin 2955e63fcbSfslongjin### 进程管理 3055e63fcbSfslongjin 3155e63fcbSfslongjin- [x] 进程创建 3255e63fcbSfslongjin- [x] 进程回收 3355e63fcbSfslongjin- [x] 内核线程 3455e63fcbSfslongjin- [x] fork 3555e63fcbSfslongjin- [x] exec 3655e63fcbSfslongjin- [x] 进程睡眠(支持高精度睡眠) 377087e9fbSfslongjin- [x] kthread机制 3840fe15e0SLoGin- [x] 可扩展二进制加载器 3955e63fcbSfslongjin 4055e63fcbSfslongjin#### 同步原语 4155e63fcbSfslongjin 4255e63fcbSfslongjin- [x] mutex互斥量 4355e63fcbSfslongjin- [x] semaphore信号量 4455e63fcbSfslongjin- [x] atomic原子变量 4555e63fcbSfslongjin- [x] spinlock自旋锁 4655e63fcbSfslongjin- [x] wait_queue等待队列 4755e63fcbSfslongjin 4855e63fcbSfslongjin### 调度 4955e63fcbSfslongjin 5055e63fcbSfslongjin- [x] CFS调度器 5140fe15e0SLoGin- [x] 实时调度器(FIFO、RR) 5255e63fcbSfslongjin- [x] 单核调度 5340fe15e0SLoGin- [x] 多核调度 5440fe15e0SLoGin- [x] 负载均衡 5555e63fcbSfslongjin 5655e63fcbSfslongjin### IPC 5755e63fcbSfslongjin 5855e63fcbSfslongjin- [x] 匿名pipe管道 599358ff0fSlogin- [x] signal信号 6055e63fcbSfslongjin 6155e63fcbSfslongjin### 文件系统 6255e63fcbSfslongjin 6355e63fcbSfslongjin- [x] VFS 6452ab5d90Slogin- [x] fat12/16/32 6552ab5d90Slogin- [x] Devfs 6652ab5d90Slogin- [x] RamFS 6740fe15e0SLoGin- [x] Procfs 6840fe15e0SLoGin- [x] Sysfs 6955e63fcbSfslongjin 7055e63fcbSfslongjin### 异常及中断处理 7155e63fcbSfslongjin 7255e63fcbSfslongjin- [x] APIC 7355e63fcbSfslongjin- [x] softirq 软中断 7455e63fcbSfslongjin- [x] 内核栈traceback 7555e63fcbSfslongjin 7655e63fcbSfslongjin 7755e63fcbSfslongjin### 内核实用库 7855e63fcbSfslongjin 7955e63fcbSfslongjin- [x] 字符串操作库 8055e63fcbSfslongjin- [x] ELF可执行文件支持 8155e63fcbSfslongjin- [x] printk 8255e63fcbSfslongjin- [x] 基础数学库 8355e63fcbSfslongjin- [x] 屏幕管理器 8455e63fcbSfslongjin- [x] textui框架 85ac13e53aSlogin- [x] CRC函数库 86*5db5a565SLoGin- [x] 通知链 8755e63fcbSfslongjin 8855e63fcbSfslongjin### 系统调用 8955e63fcbSfslongjin 9055e63fcbSfslongjin  [请见系统调用文档](https://docs.dragonos.org/zh_CN/latest/syscall_api/index.html) 9155e63fcbSfslongjin 9255e63fcbSfslongjin### 测试框架 9355e63fcbSfslongjin 9455e63fcbSfslongjin- [x] ktest 9555e63fcbSfslongjin 9655e63fcbSfslongjin### 驱动程序 9755e63fcbSfslongjin 9855e63fcbSfslongjin- [x] ACPI 高级电源配置模块 9955e63fcbSfslongjin- [x] IDE硬盘 10055e63fcbSfslongjin- [x] AHCI硬盘 10140fe15e0SLoGin- [x] PCI、PCIe总线 10255e63fcbSfslongjin- [x] XHCI(usb3.0) 10355e63fcbSfslongjin- [x] ps/2 键盘 10455e63fcbSfslongjin- [x] ps/2 鼠标 10555e63fcbSfslongjin- [x] HPET高精度定时器 10655e63fcbSfslongjin- [x] RTC时钟 10755e63fcbSfslongjin- [x] local apic定时器 10855e63fcbSfslongjin- [x] UART串口 10955e63fcbSfslongjin- [x] VBE显示 11052ab5d90Slogin- [x] VirtIO网卡 11152ab5d90Slogin- [x] x87FPU 11252ab5d90Slogin- [x] TTY终端 11340fe15e0SLoGin- [x] 浮点处理器 11440fe15e0SLoGin 11555e63fcbSfslongjin 11655e63fcbSfslongjin## 用户层 11755e63fcbSfslongjin 11855e63fcbSfslongjin### LibC 11955e63fcbSfslongjin 12055e63fcbSfslongjin- [x] 基础系统调用 12155e63fcbSfslongjin- [x] 基础标准库函数 12255e63fcbSfslongjin- [x] 部分数学函数 12355e63fcbSfslongjin 12455e63fcbSfslongjin### shell命令行程序 12555e63fcbSfslongjin 12655e63fcbSfslongjin- [x] 基于字符串匹配的解析 12755e63fcbSfslongjin- [x] 基本的几个命令 12855e63fcbSfslongjin 12940fe15e0SLoGin### Http Server 13055e63fcbSfslongjin 13140fe15e0SLoGin- 使用C编写的简单的Http Server,能够运行静态网站。 1329358ff0fSlogin 1339358ff0fSlogin## 软件移植 1349358ff0fSlogin 1359358ff0fSlogin- [x] GCC 11.3.0 (暂时只支持了x86_64的Cross Compiler)[https://github.com/DragonOS-Community/gcc](https://github.com/DragonOS-Community/gcc) 1369358ff0fSlogin- [x] binutils 2.38(暂时只支持了x86_64的Cross Compiler)[https://github.com/DragonOS-Community/binutils](https://github.com/DragonOS-Community/binutils) 1379358ff0fSlogin- [x] gmp 6.2.1 [https://github.com/DragonOS-Community/gmp-6.2.1](https://github.com/DragonOS-Community/gmp-6.2.1) 1389358ff0fSlogin- [x] mpfr 4.1.1 [https://github.com/DragonOS-Community/mpfr](https://github.com/DragonOS-Community/mpfr) 1399358ff0fSlogin- [x] mpc 1.2.1 [https://github.com/DragonOS-Community/mpc](https://github.com/DragonOS-Community/mpc) 14040fe15e0SLoGin- [x] relibc [https://github.com/DragonOS-Community/relibc](https://github.com/DragonOS-Community/relibc) 141*5db5a565SLoGin- [x] sqlite3 142