DragonOS/AGENTS.md

45 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`. 当你想检查你编辑的代码有没有语法错误的时候,请执行这个命令