KernelScript 0.1: Новий етап у розробці на eBPF

KernelScript 0.1: Новий етап у розробці на eBPF для Linux

KernelScript 0.1 тепер доступний як перший публічний реліз нової мови програмування з відкритим кодом для розробки в ядрі Linux, зосередженої на eBPF. Вона випущена під ліцензією Apache 2.0.

Що таке KernelScript?

KernelScript описується як типобезпечна доменна специфічна мова, яка об’єднує розробку eBPF, користувацького простору і простору ядра в одному кодовій базі. Замість того щоб вручну писати eBPF програми на C, завантажувачі користувацького простору та модулі ядра, KernelScript генерує необхідний C код, програми користувацького простору, Makefiles і інтеграцію модулів ядра з одного вихідного файлу.

Команда розробників та цільова аудиторія

KernelScript націлений на розробників, які працюють з eBPF, технологією ядра Linux, що дозволяє невеликим перевіреним програмам виконуватись у контексті ядра без модифікації самого ядра. Хоча eBPF широко використовується для мережевих задач, трасування, спостереження, забезпечення безпеки та аналізу продуктивності, його розробка зазвичай вимагає глибокого знання обмежень перевірника, BPF допоміжних функцій, карт, завантаження програм та координації у користувацькому просторі, заснованої на libbpf.

Як KernelScript спрощує роботу?

KernelScript вирішує цю складність завдяки вищому рівню синтаксису, налаштованому для робочих процесів eBPF. Він підтримує основні типи eBPF програм, включаючи XDP для обробки пакетів, TC для контролю трафіку, точки проб для трасування функцій ядра та програми perf event для лічильників продуктивності.

Вбудовані можливості KernelScript

Крім того, KernelScript забезпечує вбудовану підтримку eBPF карт, включаючи хеш-міапи, масиви на CPU, LRU-міапи та закріплені міапи. Вони доступні як змінні на рівні мови, що дозволяє eBPF програмам та коду користувацького простору ділитися станом без ручного кодування libbpf.

KernelScript також підтримує розширені функції eBPF, включаючи автоматичну оркестрацію викликів на хвості, прозоре оброблення динамічних покажчиків, перевірки життєвого циклу програм, підтримку struct_ops та вбудовану інтеграцію kfunc.

Експериментальний реліз KernelScript

Однак важливо зазначити, що цей реліз є експериментальним. Репозиторій позначає KernelScript як бета-програму та попереджає, що синтаксис, API та функції можуть змінюватися без зворотної сумісності. На даний момент розробники не рекомендують використовувати його в продуктивних умовах.

Для отримання додаткової інформації, перейдіть до репозиторію проекту.