仓库布局
基础仓库和每个设备仓库使用相同布局。
UniXNU/
unixnu 入口
scripts/unixnu/ 构建驱动
package/ UniXNU EDK II package
drivers/ 内置 XNU 驱动
kits/ 内核库
patches/ XNU、libpthread、Mesa 补丁
scripts/ 构建和校验脚本
docs/ 本文档站
assets/ 标志
feeds.toml 固定的外部源码
examples/device/ 示例设备仓库模块类型
| 类型 | 目录 | 内容 |
|---|---|---|
| driver | drivers/<Name> | XNU 驱动源码和参考 plist |
| kit | kits/<Name> | 内核库 |
| patch | patches/<Name> | 补丁集 |
| script | scripts/ | 构建和校验脚本 |
| package | package/ | UniXNU package |
| refer | 拉取的树 | Apple 源码或 edk2 |
设备仓库可以提供任意类型,同名模块覆盖基础模块。
解析顺序
--local-module [KIND:]NAME=PATH--local-<kind> DIR--local DIRfeeds.toml的local键或local.toml- 设备仓库
- 基础仓库
feeds.toml的 git 源码
构建树
unixnu tree 写 out/<board>/tree:
tree/
drivers/ kits/ patches/ refer/
scripts/ package/
build/ .cache/符号链接指向选中的模块,脚本被复制,设备 package/ 出现在 kits/<board.kit>。
脚本
构建脚本从自身路径定位构建树。scripts/ 中的脚本可以读取 ROOT、build/、.cache/、refer/、drivers/、kits/、patches/ 和 package/。
新增模块
- 在对应类型下创建目录。
- 加入构建或校验逻辑。
- 从板级文件或内核脚本引用。
- 在对应文档章节记录。
提交范围
一个提交只改一个主题:
| 前缀 | 主题 |
|---|---|
feat(<area>) | 新能力 |
fix(<area>) | 缺陷修复 |
docs | 文档 |
build(<area>) | 构建系统 |
chore | 清理 |
提交信息描述变化,文档描述当前状态。