В ядро NetBSD добавлена поддержка расширений на языке Lua

18 октября 2013 года

В состав ядра текущей экспериментальной ветки NetBSD, на базе которой формируется выпуск NetBSD 7, включен модуль с реализацией виртуальной машины Lua, добавляющий в ядро поддержку встраиваемого скриптового языка программирования, отличающегося эффективной работой с памятью, компактностью и высокой производительностью (применяется JIT-компиляция). Поддержка Lua в ядре позволит разрабатывать динамически загружаемые расширения, изменяющие поведение существующих систем или создающие новые возможности.

Использование расширений на языке Lua оправдано в ситуациях, когда важна скорость создания готового решения и не требуется высокая производительность. Например, модуль будет полезен при необходимости быстро реализовать нужную функциональность, опробовать на практике запланированные к реализации идеи или подготовить скрипты для отладки подсистем ядра. В качестве примеров расширений упоминаются скрипты для опробования разных алгоритмов работы планировщика задач, механизмов QoS, создание расширенных обработчиков сетевых пакетов и изощрённых сетевых фильтров, определение собственных правил управления энергопотреблением процессора, создание прототипов драйверов устройств.

Как и в случае запуска скриптов в пространстве пользователя, разработчик получает возможность запускать скрипт в пространстве ядра, оценивать результат его работы, быстро вносить изменения и повторно запускать скрипт, не тратя время на перекомпиляцию. Выполняемые в пространстве ядра скрипты не имеют прямого доступа к памяти ядра, изолированы в отдельной виртуальной машине Lua и взаимодействуют с подсистемами ядра через специальные биндинги. На стадии формирования байткода выполняется выявление и блокирование опасных конструкций, таких как бесконечное зацикливание. Для запуска скриптов в пространстве ядра из окружения пользователя подготовлена специальная утилита luactl.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «В ядро NetBSD добавлена поддержка расширений на языке Lua», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.