xref: /DragonOS/README.md (revision c43d65b2c9a3964c56b88f8931387993b63dd906)
137e0334dSfslongjin# DragonOS
237e0334dSfslongjin
30757e7a3Sfslongjin**Languages** 中文|[English](README_EN.md)
40757e7a3Sfslongjin
537e0334dSfslongjin 
637e0334dSfslongjin
737e0334dSfslongjin这是一个运行于x86_64平台的64位操作系统。目前正在开发之中!
837e0334dSfslongjin
937e0334dSfslongjin## 开发环境
1037e0334dSfslongjin
110757e7a3SfslongjinGCC>=8.0
1237e0334dSfslongjin
13e64be7b4Sfslongjinqemu==6.2
1437e0334dSfslongjin
15e64be7b4Sfslongjingrub==2.06
1637e0334dSfslongjin
1737e0334dSfslongjin## 如何运行?
1837e0334dSfslongjin
1937e0334dSfslongjin1. clone本项目
2037e0334dSfslongjin
213961c0e1Sfslongjin2. 运行命令 bash run.sh
2237e0334dSfslongjin
2337e0334dSfslongjin## To do list:
2437e0334dSfslongjin
253961c0e1Sfslongjin- [x] multiboot2
2637e0334dSfslongjin
2737e0334dSfslongjin- [x] printk
2837e0334dSfslongjin
2937e0334dSfslongjin- [x] 简单的异常捕获及中断处理
3037e0334dSfslongjin
31fcb3930aSfslongjin- [x] APIC
3237e0334dSfslongjin
3337e0334dSfslongjin- [x] 初级内存管理单元
3437e0334dSfslongjin
3594f7d963Sfslongjin- [x] SLAB内存池
3637e0334dSfslongjin
37225cda75Sfslongjin- [x] PS/2 键盘、鼠标驱动
38225cda75Sfslongjin
39225cda75Sfslongjin- [x] PCI 总线驱动
40cdc450caSfslongjin
41cdc450caSfslongjin- [ ] usb驱动
4237e0334dSfslongjin
43e5274ce8Sfslongjin- [x] SATA硬盘驱动(AHCI)
4437e0334dSfslongjin
4537e0334dSfslongjin- [ ] 驱动程序框架
4637e0334dSfslongjin
4737e0334dSfslongjin- [ ] 网卡驱动
4837e0334dSfslongjin
49225cda75Sfslongjin- [ ] 网络协议栈
50225cda75Sfslongjin
5137e0334dSfslongjin- [ ] 图形驱动
5237e0334dSfslongjin
530757e7a3Sfslongjin- [x] 第一个进程
5437e0334dSfslongjin
55db8b4a48Sfslongjin- [x] 进程管理
5637e0334dSfslongjin
5737e0334dSfslongjin- [ ] IPC进程间通信
5837e0334dSfslongjin
59d3a5048fSfslongjin- [x] 第一个系统调用函数
6037e0334dSfslongjin
61e7fd5316Sfslongjin- [x] 在物理平台上启动DragonOS(AMD处理器上存在自动重启的问题)
6237e0334dSfslongjin
635ea38e3bSfslongjin- [x] 多核启动
6437e0334dSfslongjin
6537e0334dSfslongjin- [ ] 多核调度及负载均衡
6637e0334dSfslongjin
675ec1b825Sfslongjin- [x] FAT32文件系统
6837e0334dSfslongjin
695ec1b825Sfslongjin- [x] VFS虚拟文件系统
7037e0334dSfslongjin
7137e0334dSfslongjin- [ ] 解析ELF文件格式
7237e0334dSfslongjin
73cdc450caSfslongjin- [x] 浮点数支持
7437e0334dSfslongjin
7537e0334dSfslongjin- [ ] 基于POSIX实现系统调用库
7637e0334dSfslongjin
7737e0334dSfslongjin- [ ] Shell
7837e0334dSfslongjin
7937e0334dSfslongjin- [ ] 内核栈反向跟踪
8037e0334dSfslongjin
8137e0334dSfslongjin- [ ] 动态加载模块
8237e0334dSfslongjin
8337e0334dSfslongjin## 贡献代码
8437e0334dSfslongjin
8537e0334dSfslongjin如果你愿意跟我一起开发这个项目,请先发邮件到我的邮箱~
8637e0334dSfslongjin
8737e0334dSfslongjin## 贡献者名单
8837e0334dSfslongjin
8937e0334dSfslongjinfslongjin
9037e0334dSfslongjin
9137e0334dSfslongjin## 联系我
9237e0334dSfslongjin
9337e0334dSfslongjin我的邮箱:longjin@RinGoTek.cn
9437e0334dSfslongjin
9537e0334dSfslongjin我的博客:[longjin666.cn](https://longjin666.cn)
9637e0334dSfslongjin
9737e0334dSfslongjin## 赞赏
9837e0334dSfslongjin
9937e0334dSfslongjin如果你愿意的话,点击下面的链接,请我喝杯咖啡吧~请在付款备注处留下您的github ID,我会将其贴到这个页面
10037e0334dSfslongjin
10137e0334dSfslongjin[捐赠 | 龙进的博客](https://longjin666.cn/?page_id=54)
10237e0334dSfslongjin
10337e0334dSfslongjin## 赞赏者列表
10437e0334dSfslongjin
1051d440adcSfslongjin- 悟
106db8b4a48Sfslongjin- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
107fcb3930aSfslongjin
108fcb3930aSfslongjin## 开放源代码声明
109fcb3930aSfslongjin
110fcb3930aSfslongjin本项目采用GPLv2协议进行开源,欢迎您在遵守开源协议的基础之上,使用本项目的代码!
111fcb3930aSfslongjin
112cdc450caSfslongjin**我们支持**:遵守协议的情况下,利用此项目,创造更大的价值,并为本项目贡献代码。
113fcb3930aSfslongjin
114cdc450caSfslongjin**我们谴责**:任何不遵守开源协议的行为。包括但不限于:剽窃该项目的代码作为你的毕业设计等学术不端行为以及商业闭源使用而不付费。
115fcb3930aSfslongjin
116fcb3930aSfslongjin若您发现了任何违背开源协议的使用行为,我们欢迎您发邮件反馈!让我们共同建设诚信的开源社区。
117cdc450caSfslongjin
118cdc450caSfslongjin## 参考资料
119cdc450caSfslongjin
120cdc450caSfslongjin本项目参考了以下资料,我对这些项目、书籍、文档的作者表示感谢!
121cdc450caSfslongjin
122cdc450caSfslongjin- 《一个64位操作系统的实现》田宇(人民邮电出版社)
123cdc450caSfslongjin
124cdc450caSfslongjin- 《现代操作系统 原理与实现》陈海波、夏虞斌(机械工业出版社)
125cdc450caSfslongjin
126cdc450caSfslongjin- [SimpleKernel](https://github.com/Simple-XX/SimpleKernel)
127cdc450caSfslongjin
128cdc450caSfslongjin- [osdev.org](https://wiki.osdev.org/Main_Page)
129cdc450caSfslongjin
130cdc450caSfslongjin- Multiboot2 Specification version 2.0
131cdc450caSfslongjin
132cdc450caSfslongjin- ACPI_6_3_final_Jan30
133cdc450caSfslongjin
134cdc450caSfslongjin- the GNU GRUB manual
1350aee6bb4Sfslongjin
1360aee6bb4Sfslongjin- Intel® 64 and IA-32 Architectures Software Developer’s Manual
137d887f9a0Sfslongjin
138d887f9a0Sfslongjin- IA-PC HPET (High Precision Event Timers) Specification
139*c43d65b2Sfslongjin
140*c43d65b2Sfslongjin- [skiftOS]([GitHub - skiftOS/skift: �� A hobby operating system built from scratch in modern C++. Featuring a reactive UI library and a strong emphasis on user experience.](https://github.com/skiftOS/skift))
141*c43d65b2Sfslongjin
142*c43d65b2Sfslongjin- [GuideOS](https://github.com/Codetector1374/GuideOS)
143