xref: /DragonOS/docs/introduction/features.md (revision c75089286e9d49cef8d039446bf570c1bd4d2550)
1(_genreal_features)=
2
3# DragonOS的功能
4
5## 规范
6
7- [x] 启动引导:Multiboot2
8
9- [x] 接口:posix 2008
10
11## 内核层
12
13### 内存管理
14
15- [x] 页帧分配器
16- [x] 小对象分配器
17- [x] VMA
18- [x] MMIO地址空间自动分配
19- [x] 页面映射器
20- [x] 硬件抽象层
21- [x] 独立的用户地址空间管理机制
22- [x] C接口兼容层
23
24### 多核
25
26- [x] 多核引导
27- [x] ipi框架
28
29### 进程管理
30
31- [x] 进程创建
32- [x] 进程回收
33- [x] 内核线程
34- [x] fork
35- [x] exec
36- [x] 进程睡眠(支持高精度睡眠)
37- [x] kthread机制
38- [x] 可扩展二进制加载器
39
40#### 同步原语
41
42- [x] mutex互斥量
43- [x] semaphore信号量
44- [x] atomic原子变量
45- [x] spinlock自旋锁
46- [x] wait_queue等待队列
47
48### 调度
49
50- [x] CFS调度器
51- [x] 实时调度器(FIFO、RR)
52- [x] 单核调度
53- [x] 多核调度
54- [x] 负载均衡
55
56### IPC
57
58- [x] 匿名pipe管道
59- [x] signal信号
60
61### 文件系统
62
63- [x] VFS
64- [x] fat12/16/32
65- [x] Devfs
66- [x] RamFS
67- [x] Procfs
68- [x] Sysfs
69
70### 异常及中断处理
71
72- [x] APIC
73- [x] softirq 软中断
74- [x] 内核栈traceback
75
76### 内核数据结构
77
78- [x] 普通二叉树
79- [x] kfifo缓冲区
80- [x] 循环链表
81- [x] IDR
82
83### 内核实用库
84
85- [x] LZ4压缩库(1.9.3)
86- [x] 字符串操作库
87- [x] ELF可执行文件支持
88- [x] printk
89- [x] 基础数学库
90- [x] 屏幕管理器
91- [x] textui框架
92- [x] CRC函数库
93- [x] 通知链
94
95### 系统调用
96
97  [请见系统调用文档](https://docs.dragonos.org/zh_CN/latest/syscall_api/index.html)
98
99### 测试框架
100
101- [x] ktest
102
103### 驱动程序
104
105- [x] ACPI 高级电源配置模块
106- [x] IDE硬盘
107- [x] AHCI硬盘
108- [x] PCI、PCIe总线
109- [x] XHCI(usb3.0)
110- [x] ps/2 键盘
111- [x] ps/2 鼠标
112- [x] HPET高精度定时器
113- [x] RTC时钟
114- [x] local apic定时器
115- [x] UART串口
116- [x] VBE显示
117- [x] VirtIO网卡
118- [x] x87FPU
119- [x] TTY终端
120- [x] 浮点处理器
121
122
123## 用户层
124
125### LibC
126
127- [x] 基础系统调用
128- [x] 基础标准库函数
129- [x] 部分数学函数
130
131### shell命令行程序
132
133- [x] 基于字符串匹配的解析
134- [x] 基本的几个命令
135
136### Http Server
137
138- 使用C编写的简单的Http Server,能够运行静态网站。
139
140## 软件移植
141
142- [x] GCC 11.3.0 (暂时只支持了x86_64的Cross Compiler)[https://github.com/DragonOS-Community/gcc](https://github.com/DragonOS-Community/gcc)
143- [x] binutils 2.38(暂时只支持了x86_64的Cross Compiler)[https://github.com/DragonOS-Community/binutils](https://github.com/DragonOS-Community/binutils)
144- [x] gmp 6.2.1 [https://github.com/DragonOS-Community/gmp-6.2.1](https://github.com/DragonOS-Community/gmp-6.2.1)
145- [x] mpfr 4.1.1 [https://github.com/DragonOS-Community/mpfr](https://github.com/DragonOS-Community/mpfr)
146- [x] mpc 1.2.1 [https://github.com/DragonOS-Community/mpc](https://github.com/DragonOS-Community/mpc)
147- [x] relibc [https://github.com/DragonOS-Community/relibc](https://github.com/DragonOS-Community/relibc)
148- [x] sqlite3
149