The OpenNET Project / Index page

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

Выпуск MirageOS 2.5, платформы для запуска приложений поверх гипервизора

27.06.2015 09:33

После 11 месяцев разработки представлен релиз облачной операционной системы MirageOS 2.5, которая обеспечивает возможность запуска поверх гипервизора приложений, написанных на языке OCaml. MirageOS позволяет создавать операционные системы одного приложения, содержащие только компоненты, необходимые для запуска одной программы, без необходимости использования традиционных операционных систем с универсальным ядром, утилитами и набором библиотек. В разработке MirageOS принимают участие исследователи из Кембриджского университета, компании Citrix, проектов Xen, FreeBSD, Galois и OCamlPro.

Разработка программ производится в традиционных ОС, после чего при помощи MirageOS программа компилируется в самодостаточное специализированное ядро (концепция unikernel), которое может запускаться непосредственно поверх гипервизора Xen или в форме процесса в POSIX-совместимом окружении. Сгенерированное окружение не содержит ничего лишнего и взаимодействует непосредственно с гипервизором без драйверов и системных прослоек, что позволяет добиться существенного снижения накладных расходов и повышения безопасности. Работа с MirageOS сводится к трём стадиям: подготовка конфигурации с определением используемых в окружении OPAM-пакетов, сборка окружения и запуск и контроль за выполнением окружения (MirageOS сам создаст файлы конфигурации для Xen и запустит окружение).

Несмотря на то, что приложения и библиотеки формируются на высокоуровневом языке OCaml, итоговые окружения демонстрируют достаточно неплохую производительность и минимальный размер окружения (например, DNS-сервер занимает всего 200 Кб). Упрощается и сопровождение окружений, так как при необходимости обновления программы или изменения конфигурации, достаточно создать и запустить новое окружение. Поддерживается несколько десятков библиотек на языке OCaml для выполнения сетевых операций (DNS, SSH, OpenFlow, HTTP, XMPP и т.п.), работы с хранилищами и обеспечения параллельной обработки данных.

Ключевым новшеством MirageOS 2.5 является полноценная реализация TLS-шифрования, интегрированная во все подсистемы MirageOS, в том числе в API для определения конфигурации, что позволяет разработчикам создавать и развёртывать безопасные unikernel. В качестве основы выступает проект OCaml-TLS, в рамках которого подготовлена высокопроизводительная и надёжная реализация протокола TLS, написанная на языке OCaml. В дополнение к OCaml-TLS подготовлена коллекция unix-утилит для работы с TLS, например, утилита tlstunnel позволяет быстро создавать рабочие конфигурации, используя tlstunnel как замену stunnel и stud.

  1. Главная ссылка к новости (https://mirage.io/blog/announc...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42515-mirageos
Ключевые слова: mirageos
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:37, 27/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Некоторым чужие факапы видимо не в прок. Однажды фирма майкрософт уже пыталась сделать нечто наподобие - в azure изначально подразумевался только запуск приложений на дотнете поверх гипервизора.

    Реально идея оказалась полным отстoeм. Кастомерам часто надо было запускать "не только на дотнете" или какие-то кастомные настройки характерные для ОС. И вся эта сферическая буита "можно запускать только программы на 1 языке с его рантаймом" пошла лесом. Впрочем, гугл тоже этой хренью занимался уже много лет и как-то она и близко не стоит по популярности обычных хостингов и облаков позволяющих запускать "универсальные операционки".

    Секрет в том что рулить гольным инстансом приложения без операционки - крайне неудобно. А как только надо что-то продвинутое - без general purpose операционки быстро наступает облом. В обычной ОС вы например периодику пропишете в systemd.timers или крон. Парой строк конфига. А при таком подходе - вы таки пойдете сами себе кодить аналог крона, о чем вы наверняка всю жизнь только и мечтали...

     
     
  • 2.7, Mihail Zenkov (ok), 16:27, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смотрите на это не как на обычный сервер, а как на узкоспециализированное решение на очень мощном микроконтроллере. Естественно у такого подхода будут свои минусы, и на массовое решение это не годится. Но в определенных ситуациях может быть вполне востребовано.
     
     
  • 3.12, Аноним (-), 01:59, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    где еще надиктовали с ножом к горлу левый ЯП и довольно чреватые методы работ... большой текст свёрнут, показать
     
     
  • 4.14, Crazy Alex (ok), 02:51, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, технически отладка - это дело решаемое, тулзы с библиотеками (в том числе и отладка-логирование) один раз пишутся и отлаживаются, в конце концов. Но плюшек я в этом не вижу, хоть убей. Во-первых, таки да - экзотический язык с ограниченным набором библиотек. Во-вторых - плевать, сколько занимает код. Потому что данные, которые он будет лопатить, занимают в памяти минимум на пару порядков больше обычно. В-третьих - ну да, как только захочется странного - это странное обойдётся дорого. В-четвёртых - они там всерьёз, скажем, FS сами реализовывать будут? Что за чушь насчёт "отсутствия ядра и драйверов" - очевидно же, что функциональность с неба не свалится, и релизовывать её заново - это бред сивой кобылы
     
     
  • 5.18, Аноним (-), 08:20, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Знаешь, теоретически - много чего решаемо А практически - это кто-то должен сде... большой текст свёрнут, показать
     
  • 3.21, Аноним (-), 10:18, 29/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Как бы для микроконтроллеров используются чуток другие принципы разработки. А на arduino IDE никто софт для серверов не пишет.
     
  • 2.23, Филипп Филиппович (ok), 19:06, 29/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно, ребята просто хотят писать приложения для банкоматов на своём любимом языке, для чего и сделали инструмент. Так что никакого отношения к изначальной концепции Azure это не имеет. На взрывную популярность продукт не претендует, что ясно сразу: OCaml -- язык во многом довольно интересный (например, как попытка привить функциональному языку элементы императивности, изначально лишённая "пуризма" и позволяющая писать достаточно высокопроизводительный код), но всё-таки круг его любителей достаточно узок и всегда таким останется.
     

  • 1.2, Аноним (-), 12:58, 27/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я понимаю что хочется умолчать, но на картинке справа не видно где именно находится это монолитное ядро (unikernel). Правильно ли я понимаю что applcation на второй картинке - это прога которая статически слинкована с монолитным ядром? Если так, то это конечно здетц..
     
     
  • 2.3, Аноним (-), 13:46, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    unikernel не является классическим ядром (с драйверами и процессами). Почитайте, например, http://queue.acm.org/detail.cfm?id=2566628
     
     
  • 3.4, Аноним (-), 15:49, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Среди этого множества букв не видно внятных ответов. Если подумать, то все равно оказывается что функционал ядра прилип либо как статика к приложению, либо он в рантайме приложения. Я понимаю что там сильно неполноценное ядро (там очень сильная урезка), но раз заявлено "POSIX-совместимое окружение", то там есть..fork, exec, waitpid и т.д. Если там есть все это, то..в application это что-то вроде init-процесса (который у нас с pid 0). А если этого нет..то это не POSIX-совместимое. Подскажете как все это работает и зачем такие проекты нужны (только не пилить бабло) ?
     
     
  • 4.6, Mihail Zenkov (ok), 16:24, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Подскажете как все это работает и зачем такие проекты нужны (только не пилить бабло) ?

    "Сгенерированное окружение не содержит ничего лишнего и взаимодействует непосредственно с гипервизором без драйверов и системных прослоек, что позволяет добиться существенного снижения накладных расходов и повышения безопасности."

    "например, DNS-сервер занимает всего 200 Кб"
    Сколько DNS-сервер будет весить вмести с os? Сколько там будет багов/уязвимость? Сколько там будет бесполезных прослоек?

     
     
  • 5.8, YetAnotherOnanym (ok), 17:07, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А как сочетается "POSIX-совместимое окружение" и "ничего лишнего"?
     
     
  • 6.10, Mihail Zenkov (ok), 20:31, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    "программа компилируется в самодостаточное специализированное ядро (концепция unikernel ), которое может запускаться непосредственно поверх гипервизора Xen" - вот и будет - "ничего лишнего".

    "или в форме процесса в POSIX-совместимом окружении" - для тех случаев когда можно пожертвовать минимализмом для упрощения портирования.

     
  • 5.9, Аноним (-), 18:33, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну ты сам сравни эти 2 картинки "влоб". Я вот не пойму кто берет обработку "processes" и "threads", а вы? А если у меня приложение с POSIX-theads ? А если еще и preforked ?
     
     
  • 6.11, Mihail Zenkov (ok), 20:34, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    На картинках не изображен unikernel, так как он фактически является частью приложения, а не самодостаточным ядром.
     
     
  • 7.15, Crazy Alex (ok), 02:52, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и в чём преимущество тогда?
     
     
  • 8.17, Аноним (-), 07:19, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    контейнерные апликухи двигают со своей средой представь, если бы 90 поставщико... текст свёрнут, показать
     
     
  • 9.20, Crazy Alex (ok), 11:13, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Танунафиг, это означает, что такой софт тащит с собой статически линкованные биб... текст свёрнут, показать
     
  • 7.16, Аноним (-), 05:04, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Если так - то еще хуже. Ведь тогда слой API реализующих POSIX-совместимость находятся в..приложении?? о_0 Может все-таки где-нибудь от Language Runtime и глубже ? Так как там дела обстоят с fork и pthreads? - Мне очень интересно.
     
     
  • 8.19, anonymous (??), 09:35, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Сходите к ним на сайт почитайте Но предлагаемые приложения event-based без выде... текст свёрнут, показать
     
  • 5.13, Аноним (-), 02:08, 28/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Сколько DNS-сервер будет весить вмести с os? Сколько там будет багов/уязвимость? Сколько
    > там будет бесполезных прослоек?

    Зато в коде на 200 кило почти наверняка есть баги. Потому что это достаточно много кода. И в совершенно лысой системе без какого либо тулинга - ну удачи вам понять где в вашем DNS сервере вообще порылся баг...

     

  • 1.5, Геймер (?), 16:03, 27/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Вот она многозадачная DOS. Дождались!
     
  • 1.22, Аноним (-), 16:31, 29/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все идет к винде вот и snappy тоже...
     
  • 1.24, tr3x (ok), 11:39, 30/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поддержка других гипервизоров сделала бы эту штуку интересней
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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