xref: /DragonOS/docs/introduction/features.md (revision c3dc6f2ff9169c309d1cbf47dcb9e4528d509b2f)
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