NodeOS, операционная система с пользовательским окружением на JavaScript и Node.js
Представлен предварительный выпуск новой операционной системы NodeOS, развивающей идею создания работающего поверх ядра Linux пользовательского окружения, написанного на языке JavaScript с использованием фреймворка Node.js. В качестве пакетного менеджера для установки приложений в NodeOS применяется npm (Node Package manager). Готовые сборки созданы в форме загрузочных ISO и в виде окружений для QEMU и Vagga. Возможно формирование контейнеров для Docker и LXC.
Проект стартовал в декабре 2013 года как эксперимент для оценки возможности создания самодостаточного окружения на основе Node.js с минимальными числом необходимых для его работы зависимостей. За два года NodeOS эволюционировал в специализированную операционную систему, нацеленную на выполнение серверных JavaScript-приложений. В частности, NodeOS можно использовать для оснащения контейнеров и гостевых систем минималистичным окружением, достаточным для запуска приложений на базе Node.js и предоставляющим возможность установки приложений при помощи привычного пакетного менеджера npm.
Таким образом, чтобы запустить в контейнере серверную часть web-приложения, написанную на Node.js, достаточно установить специализированное окружение NodeOS, занимающие около 30 Мб, без необходимости запуска в контейнере полноценного дистрибутива Linux, настройки web-сервера и установки модулей Node.js, как правило отсутствующих в штатных репозиториях дистрибутивов. Кроме систем контейнерной изоляции и виртуализации NodeOS может работать и поверх обычного оборудования, например, планируется подготовить сборку для установки на Raspberry Pi.
В NodeOS отсутствует пользователь root и применяется модель изолированных друг от друга пользовательских окружений — каждый пользователь системы видит только собственную область и не пересекается с другими пользователями. Для удобства работы в NodeOS подготовлена командная оболочка NSH (Node Shell), позволяющая выполнять команды. Корневая файловая система доступна только для чтения, для обеспечения записи применяется OverlayFS. В качестве PID 1 запускается процесс REPL (Read-Eval-Print-Loop), позволяющий выполнять JavaScript-код в интерактивном режиме.
© OpenNet