Представлена новая гибридная распределённая операционная система Node9, в основе которой лежит вариант разработанной в Bell Lab's ОС Inferno, в котором вместо языка Limbo применяется скриптовый язык Lua, а вместо виртуальной машины DIS задействован LuaJIT. Для обеспечения высокой эффективности обработки событий и управления потоками в проекте применяется библиотека libuv. Исходные тексты операционной системы распространяются под лицензией MIT.

Система предназначена как для решения традиционных задач распределённых вычислений и симуляции, так и для применения в облачных системах и сетевых системах управления и контроля. Одной из основных концепций архитектуры Node9 является использование в событийно-ориентированных системах средств динамического скриптового языка, предоставляющего методы функционального и объектно ориентированного программирования. Вместо трудоёмкого определения callback-обработчиков для обработки асинхронных событий в Node9 предлагается использовать параллельно выполняемые сопрограммы Lua (coroutines), взаимодействующие с ОС через каналы обмена сообщениями. Система обладает всеми базовыми возможностями Inferno, такими как привязанные к процессам собственные пространства имён, представление всех ресурсов в виде иерархии файлов, отсутствие различий в доступе к локальным и внешним ресурсам.

При создании распределённых приложений авторы Node9 предлагают не изобретать новые способы, а воспользоваться уже проверенными технологиями Inferno. В окружении Node9 распределённые приложения строятся через связывание между собой имеющихся вычислительных узлов с развёртыванием инфраструктуры поверх единой совместно используемой иерархии ресурсов, построенной при помощи протокола 9p. Передаваемые между узлами данные могут шифроваться при при помощи SSL/TLS. Приложения на Lua могут связываться с приложениями на других языках, в которых можно использовать протокол 9p, таких как Go, Java и Chicken Scheme.

Node9 загружается в специализированную командную оболочку, поддерживающую выполнение выражений на языке Lua (Lua Shell). Приложения размещены в отдельных директориях, в которых собраны все необходимые для их работы библиотеки и файлы, что упрощает установку и удаления программ. Дополнительно предлагается простой управляющий web-интерфейс, который можно использовать в облачных окружениях вместо консоли. ОС Node9 также предоставляет обширные графическое возможности, если она установлена в хост-системе, поддерживающей шейдеры OpenGL/Vulcan.

Система развивается уже около года и уже вполне работоспособна, хотя и находится на стадии начального бета-тестирования. Из незаконченных работ отмечается завершение разработки сервисов уровня ядра и окончательный перевод уровня абстракции Inferno на libuv. Система пока собирается только в OS X, но код изначально написан с оглядкой на обеспечение переносимости, что потребует минимальных усилий для портирования в Linux. Теоретически, Node9 может работать на любых платформах и архитектурах, которые поддерживаются в LuaJIT и Libuv, в том числе в POSIX-системах, Windows, Android, x86, ARM, MIPS.

Источник: http://www.opennet.ru/opennews/art.shtml?num=42410