Lunatik - инструментарий для создания в ядре Linux обработчиков на языке Lua

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 2582
Зарегистрирован: 20.08.2022

#

Lunatik - инструментарий для создания в ядре Linux обработчиков на языке Lua
Дата публикации:Mon, 22 Apr 2024 09:10:22 +0300




Проект Lunatik развивает инструментарий, позволяющий использовать язык Lua для расширения функциональности ядра Linux и быстрого написания скриптов-обработчиков, работающих на уровне ядра. Для выполнения кода задействован интерпретатор Lua, модифицированный для работы на уровне ядра. Код проекта написан на языке Си и распространяется под лицензией MIT.



Для загрузки и выполнения Lua-скриптов на уровне ядра используется специальный драйвер, а для управления Lua-окружением в ядре из пространства пользователя предлагаются утилита командной строки. Проект также предоставляет C API для управления загрузкой и выполнением Lua-скриптов из ядра Linux, который может применяться, например, для выполнения отдельных обработчиков на языке Lua из традиционных модулей ядра, написанных на языке Си. Для обращения к функциям ядра из кода на языке Lua предлагается Lua API и набор привязок.



В Lua-скриптах можно использовать подмножество библиотечных функций и возможностей, ограниченное в силу специфики работы внутри ядра. Например, в коде не поддерживается выполнение операций с плавающей запятой, нельзя использовать библиотеки io и os, а также недоступны многие функции библиотеки math. В C API не поддерживаются функции luaL_Stream, luaL_execresult, luaL_fileresult, luaopen_io и luaopen_os.



Среди возможностей утилиты командной строки можно отменить команды для загрузки, выгрузки и перезагрузки модулей Lunatik в ядре, вывод состояния загруженных модулей, просмотр списка выполняемых в ядре скриптов, запуск скриптов, создания и остановка runtime-окружений Lua в ядре, использование интерактивной оболочки REPL (Read–Eval–Print Loop).



Проектом также предоставляется набор примеров, позволяющих оценить возможности Lunatik. Например, доступны скрипты с реализацией драйвера символьного устройства, сетевого сниффера с возможностью ведения журнала с MAC-адресами, БД для хранения данных в виде ключ/значение, сервера для протокола ECHO, кейлоггера для ведения лога нажатых клавиш, блокировщика клавиатуры (после нажатия "↑ ↑ ↓ ↓ ← → ← → LCTRL LALT" ядро перестаёт обрабатывать нажатия клавиш вплоть до повторного ввода данной последовательности), драйвера для мониторинга за системными вызовами, сервиса маршрутизации, различных надстроек над подсистемами Netfilter и XDP.






Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61040

Жизнь за Нер'зула!

Ответить