The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

NodeOS, операционная система с пользовательским окружением на JavaScript и Node.js

23.11.2015 20:19

Представлен предварительный выпуск новой операционной системы 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-код в интерактивном режиме.



  1. Главная ссылка к новости (http://node-os.com/GitBlog/art...)
  2. OpenNews: Первый стабильный выпуск серверной Linux-системы CoreOS
  3. OpenNews: Компания IBM открыла исходные тексты операционной системы FusedOS
  4. OpenNews: Компания Google открыла код системы изолированных контейнеров Lmctfy
  5. OpenNews: OSv - новая открытая ОС, нацеленная на выполнение обособленных программ поверх гипервизора
  6. OpenNews: Выпуск MirageOS 2.5, платформы для запуска приложений поверх гипервизора
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/43386-node.js
Ключевые слова: node.js, javascript, nodeos
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 21:22, 23/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > В качестве PID 1 запускается процесс REPL (Read-Eval-Print-Loop), позволяющий выполнять JavaScript-код в интерактивном режиме.

    Хорошо, хоть не системды. И грузится вон за 2 секунды, на порядок быстрее.

     
     
  • 2.65, Аноним (-), 20:11, 25/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >на порядок

    Значение слова знаешь?

     
     
  • 3.67, Аноним (-), 11:08, 26/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, значит "в 10 раз". Системды грузится за 20 секунд примерно (как openRC, лол), а тут за две. Арифметические операции остаются за вами в качестве упражнения.
     
     
  • 4.68, Аноним (-), 15:32, 26/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Грузится не сам системд, а всякие тяжёлые процессы вроде нетворкманагера, гдм, иксы с драйверами и т.д. - отсюда и 20 секунд.
    А в равных условиях с этим NodeOS, т.е. минимальное окружение с шеллом и простой сетью, системд поднимет систему также за 2-3 секунды.
     

  • 1.7, Аноним (-), 21:40, 23/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > Для удобства работы в NodeOS подготовлена командная оболочка NSH (Node Shell), позволяющая выполнять команды.

    Все прочие шеллы имеют Фатальный Недостаток?

     
     
  • 2.9, Аноним (-), 21:46, 23/11/2015 [^] [^^] [^^^] [ответить]  
  • +24 +/
    Да. Все прочие шеллы в NodeOS не работают.
     

  • 1.10, Аноним (-), 21:57, 23/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Дак это просто еще один дистр Линукса, а не новая ось. Короче, профанация
     
     
  • 2.16, Аноним (-), 23:51, 23/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эт ваще контейнер по моему круто.
     
  • 2.52, Сергей (??), 12:41, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Дак это просто еще один дистр Линукса, а не новая ось.

    Как Android и Sailfish?

     
  • 2.61, КО (?), 09:50, 25/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Линукс это не OS, это ее ядро. :)
     

  • 1.13, RazrFalcon (ok), 22:17, 23/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +24 +/
    Что только не делают, лишь бы не писать на нормальных языках.
     
     
  • 2.30, ilyaigpetrov (?), 08:36, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    NodeJS вместо баша или C++ -- это привлекательно, пусть и не канонично.
    "Нормальный" язык -- понятие относительное и субъективное.
    Система интересна в качестве эксперимента над свободой языкового выбора и независимостью от баша.

    Почему нет? Линукс -- это как раз свобода каждому выбирать свой Shell, свой пакетный менеджер и прочие компоненты вплоть до ядра.

     
     
  • 3.38, Аноним (-), 09:29, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Линукс -- это как раз свобода каждому выбирать свой Shell, свой пакетный менеджер и прочие компоненты вплоть до ядра.

    Линукс — это, как раз, ядро…

     
     
  • 4.39, ilyaigpetrov (ok), 09:43, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Линукс — это, как раз, ядро…

    Формально, да.
    В более общем понимании Линукс для меня -- это философия Юникс и принцип "Do One Thing and Do It Well" в частности.

     
     
  • 5.57, . (?), 20:43, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >принцип "Do One Thing and Do It Well" в частности.

    В Линуксе?!?!? Ты точно ни с чем не попутал?

     
  • 3.40, polsta (?), 09:52, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    расскажи про выбор вездепихателям системГ
     
     
  • 4.69, Пингвино (ok), 14:05, 27/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя всегда есть использовать конкретный дистр или же нет. Швабодка она такая
     
  • 3.53, proninyaroslav (ok), 15:17, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вы путаете понятие линукс как системы с понятием о свободном ПО и свободе выбора компонентов твоей ОС. Линукс это не система, это лишь ядро. Например, я могу скомбировать GNU/FreeBSD и это тоже будет свободной ОС, от "линукса" отличающейся только ядром.
     

  • 1.19, EHLO (?), 00:00, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Может и хипсторы, но сделали что-то новое, достаточно оригинальное и вероятно кому-то полезное по KISS принципу.
     
  • 1.20, kuku (ok), 00:00, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И какой смысл имеет это поделие ?

    Помоему за деградацией пользователей следует
    деградация операционных систем.

     
     
  • 2.21, Аноним (-), 00:09, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Легковесные контейнеры для nodejs серверов.
    А пока я наблюдаю деградацию в комментариях...
     
     
  • 3.27, nazarpc (?), 04:22, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот именно. Несравнимо малый объем контейнера. Посмотрите, к примеру, на Node контейнер в Docker: https://hub.docker.com/r/library/node/ (253 MiB), я бы вполне использовал вместо него контейнер размером в 30 MiB
     
     
  • 4.33, Аноним (33), 08:43, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    окей - научили запускать ноду в отдельном контейнере в 30mb

    теперь нам надо где то хранить большой объем данных и как то приемлимым способом их обрабатывать - т.е. нужна РСУБД. если мы внедряем ее - то все приимущества улетучиваются т.к. нужна полноценная ОС для запуска РСУБД. в ином случае придется писать свою РСУБД js

     
     
  • 5.35, Аноним (-), 08:58, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >придется писать свою РСУБД js

    скоро напишут видимо

     
     
  • 6.36, Аноним (-), 09:27, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Давно уже есть tingodb.
     
  • 5.37, Аноним (-), 09:28, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >> нужна РСУБД. если мы внедряем ее - то все приимущества улетучиваются т.к. нужна полноценная ОС для запуска РСУБД

    Ей достаточно быть доступной по сети.

     

  • 1.29, Меломан1 (?), 08:35, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    JavaScript -зло, NodeOS - исчадие ада. Надо сжечь дотла из огнемета.
     
     
  • 2.42, Какаянахренразница (ok), 10:04, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > JavaScript -зло, NodeOS - исчадие ада. Надо сжечь дотла из огнемета.

    Воистину прольется кровь, ибо да будет так!!! © Аркашка

     

  • 1.31, Аноним (33), 08:39, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а базу данных какую нибуть вменяемую умеет?
    или поднимать еще контейнер с посгрей или мускулем - он уже будет на линуксе и уже будет весить не 30 mb.
     
  • 1.32, LU (?), 08:41, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Я все равно не пойму, как язык с кучей изъянов смог получить такое распространение и выползти за пределы браузера. Есть же вполне нормальные скриптовые языки.
     
     
  • 2.34, Аноним (33), 08:45, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я все равно не пойму, как язык с кучей изъянов смог получить
    > такое распространение и выползти за пределы браузера. Есть же вполне нормальные
    > скриптовые языки.

    можно.
    молодежно.
    фронтендеры могут писать бекенд.
    но возникает вопрос - куда податся теперь бекендерам?

     
     
  • 3.41, polsta (?), 09:57, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    бекендеры могут и дальше писать свой бэкенд. только теперь им еще придется фиксать тот бэкенд, который фронтендеры "писали"
     

  • 1.45, Аноним (-), 10:59, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Утилиты для работы с сетью в юзерспейсе есть или только средствами контейнера можно настроить?
     
  • 1.46, Аноним (-), 11:29, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Останутся только двое: СИ для синхронного кода и JS для асинхронного.
     
     
  • 2.54, Аноним (-), 16:41, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На C вполне пишется асинхронный код. Голова только нужна, да.
     
  • 2.55, Аноним (-), 18:15, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >Останутся только двое: СИ для синхронного кода и JS для асинхронного.

    Муа-ха-ха!!! СИ и для синхронного и для ассмнхронного. А NodeJS это псевдоасинхронность потому что в JS нет асинхронных процессов - учи матчасть! Захват переменных в JS осуществляется не примитивами синхронизации как в СИ а фактом входа в функцию - это фундаментальный механизм. JS однопоточен и синхроннен по природе своей.

     
     
  • 3.62, Аноним (-), 13:10, 25/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Имелся ввиду беспрерывный event loop и неблокирующий I/O. Учить матчасть.
     
     
  • 4.66, Аноним (-), 20:15, 25/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >неблокирующий I/O

    Вот объясните мне пожалуйста, что значит неблокирующий? Куда деваются прерывания, переключения контекста, етс.? Магия?

     

  • 1.47, Аноним (-), 11:44, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Так. Вкратце про NodeOS и новость:

    Во-первых, новости про NodeOS сто лет в обед.
    Во-вторых, NodeOS уже стухла и до сих пор сидит на Node.js v0.10 (на секундочку, текущая — v5.1 и v4.2 LTS).
    В-третьих, единственный разраб NodeOS не совсем адекват и не умеет даже бисектить нормально, чтобы понять, почему у него/неё всё ломается при обновлении Node.js до 0.12. Если кто-то может ему помочь в этом нелёгком деле — велком ту https://github.com/nodejs/node/issues/3204

    Перечислять причины, почему это не нужно, я даже не буду.

     
     
  • 2.48, Аноним (-), 11:48, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> обновлении Node.js до 0.12

    Скипать эту версию! Ходячий глюк с лавинообразными утечками памяти.

     
     
  • 3.49, Аноним (-), 12:07, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так они и дальше обновиться не могут же.
     

  • 1.56, Комедиант (?), 19:29, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ей сто лет в обет, давно снёс Линукс и поставил Ноду на ноут. Линукс уже не слишком маргинален, а я не приемлю мейнстримов.
     
     
  • 2.58, Иван Ер0хин (?), 21:23, 24/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А чего не хайку/*BSD?
    Или не подходит под цвет стразиков?
     
     
  • 3.59, Комедиант (?), 02:20, 25/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Их время ушло, а я привык идти в ногу со временем, не выпадая из течения.
     

  • 1.60, Anonimous (?), 02:20, 25/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я понимаю, что у людей есть хобби и они пишут всякую ерунду, но зачем об этом писать новости?
     
  • 1.64, Фёдор (?), 18:25, 25/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Всё это Windows 3.1 для Linux. Как и ведроиды ваши.
     
  • 1.70, Онаним (?), 21:25, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В NodeOS отсутствует пользователь root и применяется модель изолированных друг от друга пользовательских окружений - каждый пользователь системы видит только собственную область и не пересекается с другими пользователями.

    Если всё так, как там выше написано и преднозначено оно чисто для запуска серверных JS-скриптов в виртуалке, то какой смысл может быть там вообще держать несколько пользователей?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Ideco
    A-Real
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру