Lunatik v3.6 — релиз среды исполнения Lua в пространстве ядра Linux

Lunatic — это фреймворк для написания сценариев для ядра Linux на Lua. Разрабатывается LabLua в рамках Lua in kernel с явными ссылками на опыт использования Lua в ядре NetBSD.
Основные компоненты
- интерпретатор Lua, модифицированный для работы в ядре;
- драйвера устройства (написаны на Lua);
- средства командной строки для запуска сценариев и управления средами выполнения из пользовательского пространства;
- C API для загрузки и запуска сценариев и управления средами выполнения из ядра;
- Lua API для привязки средств ядра к Lua-скриптам.
Новые возможности
Группа разработчиков Lunatic выражает благодарность контрибуторам, благодаря которым стал возможен этот релиз: sav и marcelstanley из Ring-0 Networks, sheharyaar, jperon, vincentmli, rustedusted, glk0, ну и конечно же всем другим участникам, работающими над Lunatic.
Пример драйвера устройства для генерации простых «паролей»
-- /lib/modules/lua/passwd.lua
--
-- implements /dev/passwd for generate passwords
-- usage: $ sudo lunatik run passwd
-- $ head -c /dev/passwd
local device = require("device")
local linux = require("linux")
local function nop() end -- do nothing
local s = linux.stat
local driver = {name = "passwd", open = nop, release = nop, mode = s.IRUGO}
function driver:read() -- read(2) callback
-- generate random ASCII printable characters
return string.char(linux.random(32, 126))
end
-- creates a new character device
device.new(driver)
>>> Исходный код релиза
>>> Документация, исходный код и примеры проекта
>>> Сопутствующие проекты
>>> Анонс в оффициальной группе Lua
