皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 内核 API 规范框架旨在帮助稳定用户空间接口

Linux 内核 API 规范框架旨在帮助稳定用户空间接口

Sasha Levin 刚刚为 Linux 内核发送了一个初始的 “征求意见” 补丁系列,旨在建立一个内核 API 规范框架。

Sasha 的求职信很好地描述了这个提议的内核 API 规范框架,以正式化暴露给用户空间的内核 API:

“此补丁系列引入了一个正式指定内核 API 的框架,解决了在内核和用户空间程序之间保持稳定接口的长期挑战。正如之前关于内核 ABI 稳定性的讨论中所概述的那样,缺乏机器可读的 API 规范导致了系统调用和 IOCTL 之间的意外中断和不一致的验证。

该框架提供了三个关键组件:用于直接在内核源中指定系统调用和 IOCTL 接口的声明性宏、用于生成机器可读规范的自动提取工具,以及可通过 debugfs 访问的运行时验证基础结构。通过将规范与实现代码一起嵌入,我们确保它们保持同步,并能够自动检测可能破坏用户空间应用程序的 API/ABI 更改。

此实现演示了包含核心系统调用(epoll、exec、mlock 系列)和复杂 IOCTL 接口(binder、fwctl)的规范的方法。规范以结构化格式捕获参数类型、验证规则、返回值和错误条件,从而支持文档生成和运行时验证。未来的工作将扩大覆盖范围到其他子系统,并与现有的测试基础设施集成以提供 API 兼容性保证。

为了补充该框架,我们引入了 ‘kapi’ 工具——一个用于从多个来源提取和分析内核 API 规范的实用程序。该工具可以从内核源代码(解析 KAPI 宏)、编译的 vmlinux 二进制文件(读取 .kapi_specs ELF 部分)或通过 debugfs 从正在运行的内核中提取规范。它支持多种输出格式(纯文本、JSON、RST),以促进与文档系统和自动化测试工作流程的集成。该工具使开发人员能够轻松检查 API 规范,验证内核版本之间的更改,并生成文档,而无需重新构建内核。

看看这个内核 API 规范框架会走向何方会非常有趣,但现在有兴趣的人可以通过 RFC 补丁系列了解更多信息。

转自 Linux Kernel API Specification Framework Proposed To Help Stabilize User-Space Interfaces – Phoronix