Представлена распределённая ОС Node9, сочетающая технологии Inferno и язык Lua
12 июня 2015 года
Представлена новая гибридная распределённая операционная система 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.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.