Представлен язык программирования для разработки eBPF-программ
Представлен язык программирования KernelScript 0.1. Он представляет собой экспериментальный типобезопасный DSL для написания кода eBPF, пользовательского пространства и пространства ядра из одной кодовой базы.
KernelScript 0.1 теперь доступен в качестве первого публичного релиза нового языка программирования с открытым исходным кодом для разработки ядра Linux, ориентированного на eBPF, опубликованного под лицензией Apache 2.0. Вместо того чтобы вручную писать программы eBPF на C, загрузчики пользовательского пространства и модули ядра, KernelScript генерирует необходимый код на C, программы пользовательского пространства, Make-файлы и интеграцию модулей ядра из одного исходного файла.
Он предназначен для разработчиков, работающих с eBPF. Это технология ядра Linux, которая позволяет небольшим проверенным программам работать в контексте ядра без его модификации. Хотя eBPF широко используется для работы с сетями, трассировки, мониторинга, безопасности и анализа производительности, его разработка обычно требует глубоких знаний ограничений верификатора, вспомогательных функций BPF, карт, загрузки программ и координации пользовательского пространства на основе libbpf.
KernelScript решает эту проблему с помощью высокоуровневого синтаксиса, адаптированного для рабочих процессов eBPF. Он поддерживает основные типы программ eBPF, включая XDP для обработки пакетов, TC для управления трафиком, зонды для трассировки функций ядра и программы событий perf для счётчиков производительности.
Кроме того, KernelScript обеспечивает встроенную поддержку карт eBPF, включая хэш-карты, массивы для каждого ЦП, карты LRU и закреплённые карты. Эти переменные доступны на уровне языка, что позволяет программам eBPF и коду пользовательского пространства
Читать на habr.com