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