tianole/docs/agents/linux-layout.md

2.2 KiB
Raw Blame History

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