ntclks 是 LeonOS 4 项目的独立内核仓库:Ring-0 内核(kernel/ntclks)、
内核调试器模块(debug/,ET_REL 的 kerneldebug.sys)、启动加载器(boot/loader)、UAPI 头
(include/uapi、include/leonos)以及引导期驱动(drivers/,console/TTY
显示后端在 drivers/console)。构建产物恰为
内核侧六个制品:kernel.sys、kernel.debug、loader.elf、五个 .drv
(mouse/serial/e1000/ac97/es1371)与 kerneldebug.sys。本仓库不含用户态、镜像
或打包目标。
在父仓库 LeonOS-4 中,本仓库挂载于
kernel/ntclks/。
许可证:Apache License 2.0(见 LICENSE),第三方组件的归属与许可见 NOTICE。
git clone --recurse-submodules https://github.com/LeonOSProject/NTCLKS.git
cd NTCLKS
# 若克隆时未带 --recurse-submodules:
git submodule update --init --recursivethird_party/kconfig-frontends 是真实子模块(Kconfig 前端,仅构建期使用);
缺失时构建会拒绝继续。third_party/zlib/contrib/puff/puff.c 为随库跟踪的源文件。
构建环境为 Linux/WSL,入口为 GNU Make 4.3+(生产链只编译 C 与汇编;Python 仅
make test 使用)。典型依赖:
sudo apt install build-essential clang lld llvm libclang-rt-dev \
autoconf automake libtool libtool-bin pkg-config bison flex gperf gettext \
libncurses-dev gzip curl python3 git工具链由 configs/toolchains/llvm-x86_64.mk 描述(默认 TOOLCHAIN=)。
先取回锁定的构建输入(下载缓存 cache/ 不入库;构建本身从不联网,只校验缓存):
make O=$PWD/out/x86_64/release fetchconfigs/dependencies.lock.json 以 sha256 钉住每个输入(当前为 GNU Unifont
16.0.04),tools/build/fetch.sh 负责下载与校验。离线构建:预先按同一文件名把
输入放入 cache/downloads/ 即可(校验不通过会拒绝使用)。
然后构建:
make O=$PWD/out/x86_64/release ARCH=x86_64 PROFILE=release allO= 为输出目录(需绝对路径;默认 out/<arch>/<profile>),ARCH=x86_64,
PROFILE=release|debug。其余目标:
| 目标 | 作用 |
|---|---|
make O=... all |
六个内核制品(kernel.sys、kernel.debug、loader.elf、五个 .drv、kerneldebug.sys) |
make O=... headers_install |
按白名单导出 UAPI 头到 $(O)/kernel-export/include |
make O=... install |
制品与 manifest.txt 复制到 $(DESTDIR)(默认 $(O)/kernel-install) |
make O=... test |
宿主工具单测 + tools/test_abi_layout.py + tools/test_header_export.py |
make O=... clean |
清理输出目录(distclean 连同配置一起清理;cache/ 永远保留) |
make help |
全部目标与变量 |
本仓库自有源码以 Apache License 2.0 发布(LICENSE);GNU Unifont、 zlib puff、kconfig-frontends 等第三方组件维持各自许可,详见 NOTICE 与 resources/licenses/。