24.1 FreeBSD 内核选项概述

内核配置选项路径

内核配置文件说明(基于 amd64)

介绍 freebsd-src/main/sys/amd64/conf

  • DEFAULTS:FreeBSD/amd64 的默认内核配置文件,只有不到 30 行

  • FIRECRACKER:面向 Firecracker VM 的内核配置文件,参见 amd64: Add FIRECRACKER kernel configuration

  • GENERIC:FreeBSD/amd64 通用内核配置文件,所有 amd64 镜像默认基于此。350 余行。

  • GENERIC-KASAN:调试开发用。参见 amd64: Add MD bits for KASAN。用于 KASAN(Kernel Address SANitizer,内核地址清理器),参见 kasan(9),只有不到十行

  • GENERIC-KCSAN:调试开发用。KCSAN(Kernel Concurrency Sanitizer,内核并发清理器)。30 余行,参见 Port the NetBSD KCSAN runtime to FreeBSD

  • GENERIC-KMSAN:调试开发用。不到十行。KMSAN(Kernel Memory SANitizer,内核内存清理器)参见 KMSAN(9)

  • GENERIC-MMCCAM:调试开发用。使用 MMCCAM 代替 MMC 栈。不到二十行。参见 MMC stack on top of CAM framework

  • GENERIC-NODEBUG:该文件仅在 main 分支中存在,用于基准测试。三十余行。基于 GENERIC 配置文件,但是删掉了 WITNESS (4)(跟踪每个线程获取和释放的锁)和 INVARIANTS(9)(内核表达式验证宏)。因为 CURRENT 的 GENERIC 默认启用 了上述调试功能,而它们会对系统性能产生影响——通过 include "std.debug" 引入,参见 sys/amd64/conf: unify MINIMAL and GENERIC debugsys/conf/std.debug

  • GENERIC.hints:一些 hints 参数。二十余行。用于设置驱动的参数。

  • LINT:LINT 文件,参见 Eliminate building LINT makefiles,用于验证代码风格格式等。不到五行。

  • LINT-NOINET:LINT 文件,不到五行,禁用了 INET(4)(IPv4)。LINT 文件,参见 Eliminate building LINT makefiles

  • LINT-NOINET6:LINT 文件,不到五行,禁用了 INET(6)(IPv6)。LINT 文件,参见 Eliminate building LINT makefiles

  • LINT-NOIP:LINT 文件,不到三十行,禁用了 IP 协议相关(IPv4、IPv6、TLS 等)。LINT 文件,参见 Eliminate building LINT makefiles

  • LINT-NOVIMAGE:调试开发用。LINT 文件,不到五行,禁用了 VIMAGE (9)(实际上是 VNET(9) 的别名,网络子系统虚拟化基础设施)。参见 sys: add LINT-NOVIMAGE

  • MINIMAL:FreeBSD/amd64 中最常用的最简内核配置选项。160 余行。

  • MINIMAL-NODEBUG:等同于 GENERIC-NODEBUG,只不过是 MINIMAL 版本的。不到 15 行。

内核选项说明文件

最后更新于

这有帮助吗?