LINUX.ORG.RU
ФорумTalks

Как быстро растут чужие дети...

 ,


0

2

Ядро доросло до формальной спецификации API.

Саша Левин осилил заслать патчи, которые представляют фреймворк спецификации API ядра.

Многочтение: «Фреймворк предоставляет три ключевых компонента: декларативные макросы для указания интерфейсов системных вызовов и IOCTL непосредственно в исходном коде ядра, автоматизированные инструменты извлечения для генерации спецификаций, пригодных для машинного чтения, и инфраструктуру проверки времени выполнения, доступную через debugfs.»

Для девелоперов ещё ништячок: «В дополнение к фреймворку мы представляем инструмент kapi — утилиту для извлечения и анализа спецификаций API ядра из нескольких источников. Инструмент может извлекать спецификации из исходного кода ядра (анализ макросов KAPI), скомпилированных двоичных файлов vmlinux (чтение раздела ELF .kapi_specs) или из работающего ядра через debugfs. Он поддерживает несколько форматов вывода (обычный текст, JSON, RST) для упрощения интеграции с системами документирования и автоматизированными рабочими процессами тестирования. Этот инструмент позволяет разработчикам легко проверять спецификации API, проверять изменения в разных версиях ядра и генерировать документацию без необходимости пересборки ядра.»

Возрадуемся?

мы представляем инструмент

В уме? :)

 create mode 100644 tools/kapi/.gitignore
 create mode 100644 tools/kapi/Cargo.toml
 create mode 100644 tools/kapi/src/extractor/debugfs.rs
 create mode 100644 tools/kapi/src/extractor/mod.rs
 create mode 100644 tools/kapi/src/extractor/source_parser.rs
 create mode 100644 tools/kapi/src/extractor/vmlinux/binary_utils.rs
 create mode 100644 tools/kapi/src/extractor/vmlinux/mod.rs
 create mode 100644 tools/kapi/src/formatter/json.rs
 create mode 100644 tools/kapi/src/formatter/mod.rs
 create mode 100644 tools/kapi/src/formatter/plain.rs
 create mode 100644 tools/kapi/src/formatter/rst.rs
 create mode 100644 tools/kapi/src/main.rs
dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от dataman

Глянул чуть глубже. Дедушки теперь API не посмотрят, понял :(

HerbertHoover
() автор топика
Ответ на: комментарий от firkax

This patch series introduces a framework for formally specifying kernel APIs, addressing the long-standing challenge of maintaining stable interfaces between the kernel and user-space programs. As outlined in previous discussions about kernel ABI stability, the lack of machine-readable API specifications has led to inadvertent breakages and inconsistent validation across system calls and IOCTLs.

HerbertHoover
() автор топика

А что-то полезное этот фреймворк делает?

imul ★★★★★
()
Ответ на: комментарий от dataman

Интересно, если этот kapi переписать на Си, примут такой патч?

В ядре парсеры/статические анализаторы вроде на перл принято писать.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 1)
Ответ на: комментарий от snizovtsev

Так тут не просто служебный парсер, а бинарник на выходе для всех. Ну… почти всех.

dataman ★★★★★
()
Ответ на: комментарий от Wapieth
Чёрт с тобой, что ты Левин. А я Кошельков, хозяин города ночью
Wapieth
()
Последнее исправление: Wapieth (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)