tianole/docs/agents/linux-layout.md

42 lines
2.2 KiB
Markdown
Raw Permalink 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.

# Linux 顶层目录映射
这个文档记录 Tianole 参考 Linux 顶层目录时的取舍。目标是学习 Linux 的工程分层,
而不是机械复制 Linux 的全部历史目录。
## 已采用或已预留
- `arch/`:对应 Linux `arch/`,放架构相关代码。
- `block/`:对应 Linux `block/`,后续放通用块层。
- `crypto/`:对应 Linux `crypto/`,后续放通用加密和哈希算法。
- `docs/`:对应 Linux `Documentation/`Tianole 使用小写 `docs/`
- `drivers/`:对应 Linux `drivers/`,后续放设备驱动和总线驱动。
- `fs/`:对应 Linux `fs/`,后续放 VFS 和具体文件系统。
- `include/`:对应 Linux `include/`,放公共头文件。
- `init/`:对应 Linux `init/`,后续放初始化流程。
- `ipc/`:对应 Linux `ipc/`,后续放 IPC、signal、pipe、futex 等能力。
- `kernel/`:对应 Linux `kernel/`,放调度、进程和核心内核逻辑。
- `lib/`:对应 Linux `lib/`,后续放通用基础库。
- `mm/`:对应 Linux `mm/`,放内存管理。
- `net/`:对应 Linux `net/`,后续放网络协议栈。
- `scripts/`:对应 Linux `scripts/`,放构建、检查和维护脚本。
- `security/`:对应 Linux `security/`,后续放权限和安全策略。
- `sound/`:对应 Linux `sound/`,后续放音频子系统。
- `tools/`:对应 Linux `tools/`,后续放宿主机侧开发工具。
- `usr/`:对应 Linux `usr/`,后续放初始用户空间。
- `virt/`:对应 Linux `virt/`,后续放虚拟化相关支持。
## 暂不采用
- `certs/`:证书和签名链路还不是当前阶段目标,后续可按安全启动需求加入。
- `io_uring/`:这是 Linux 的特定异步 I/O 子系统Tianole 早期不引入。
- `rust/`:当前内核实现语言是 C/ASM暂不引入 Rust 子树。
- `samples/`:示例代码暂不放顶层,后续可按教学或测试需要决定。
## 目录使用原则
- 可以预留目录,但不要在目录中放临时代码。
- 只有当一个目录对应的子系统真正开始实现时,才添加 `Makefile` 和源文件。
- 目录 README 用来说明长期职责,不替代正式设计文档。
- 如果后续发现目录边界不合理,优先更新本文件和 `docs/agents/code-style.md`