1.9 KiB
1.9 KiB
README for AI Agents
项目简介
DragonOS是一个面向云计算轻量化场景的,完全自主内核的,提供Linux二进制兼容性的64位操作系统,旨在为容器化工作负载提供轻量级、高性能的解决方案。
设计思想
- Linux兼容性:系统调用接口/procfs/sysfs/devfs等的行为应当符合Linux语义。参考Linux 6.6的行为进行实现。
- 轻量:简化复杂的抽象设计,保留合理的、简洁、符合Rust开发最佳实践的的抽象,提升系统性能。
- 安全:注重内存安全、并发安全
开发准则
项目目录结构:
- 文档:在
docs/目录下 - 内核:在
kernel/目录下 - 自行编写的单元测试程序:在
user/apps/c_unitest目录下 - gvisor系统调用测试程序:根据用户给出的程序代码片段来读取测试代码。如果用户没有提供,就尝试寻找,如果找不到,则从 https://cnb.cool/DragonOS-Community/gvisor/-/tree/dragonos/release-20250616.0/test/syscalls/linux 下面获取(下载文件然后再尝试读取)
开发最佳实践
- 三思而后行!深度研究,掌握解决问题所必要的信息,然后再动手开发/修复。
- 设计要具有合理抽象,避免过度抽象。并且要注意代码复用。
- 实现代码的时候,多问问自己:这代码写在这里合理吗?(架构、正确性等方面)
- 高内聚、低耦合
- 符合Linux语义
- 不得使用workaround的方法绕过问题。要从本质解决问题!
测试修复相关
- 符合Linux 6.6的语义
- 结合测例报错、测例代码、DragonOS代码、Linux行为实现来深入分析
开发时的一些常见命令
- 格式化代码:在项目根目录下运行
make fmt,会自动格式化,并且运行clippy检查 - 编译内核:在项目根目录下运行
make kernel. 当你想检查你编辑的代码有没有语法错误的时候,请执行这个命令