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