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