Skip to content

仓库布局 ​

基础仓库和每个设备仓库使用相同布局。

UniXNU/
  unixnu                  入口
  scripts/unixnu/         构建驱动
  package/                UniXNU EDK II package
  drivers/                内置 XNU 驱动
  kits/                   内核库
  patches/                XNU、libpthread、Mesa 补丁
  scripts/                构建和校验脚本
  docs/                   本文档站
  assets/                 标志
  feeds.toml              固定的外部源码
  examples/device/        示例设备仓库

模块类型 ​

类型目录内容
driverdrivers/<Name>XNU 驱动源码和参考 plist
kitkits/<Name>内核库
patchpatches/<Name>补丁集
scriptscripts/构建和校验脚本
packagepackage/UniXNU package
refer拉取的树Apple 源码或 edk2

设备仓库可以提供任意类型,同名模块覆盖基础模块。

解析顺序 ​

  1. --local-module [KIND:]NAME=PATH
  2. --local-<kind> DIR
  3. --local DIR
  4. feeds.toml 的 local 键或 local.toml
  5. 设备仓库
  6. 基础仓库
  7. 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/。

新增模块 ​

  1. 在对应类型下创建目录。
  2. 加入构建或校验逻辑。
  3. 从板级文件或内核脚本引用。
  4. 在对应文档章节记录。

提交范围 ​

一个提交只改一个主题:

前缀主题
feat(<area>)新能力
fix(<area>)缺陷修复
docs文档
build(<area>)构建系统
chore清理

提交信息描述变化,文档描述当前状态。

下一步 ​

Released under the BSD-2-Clause-Patent License.