The OpenNET Project / Index page

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

В рамках проекта IncludeOS развивается ядро для обособленного запуска C++-приложений

02.12.2015 23:48

Университетский колледж Осло и Акерсхуса открыл исходные тексты исследовательского проекта IncludeOS, в рамках которого развивается специализированное ядро (unikernel), позволяющие запускать приложения, написанные на языке С++, непосредственно поверх гипервизора, без применения дополнительных прослоек и окружения операционной системы. Код открыт под лицензией Apache 2.0.

IncludeOS предоставляет минимальное необходимое самодостаточное окружение, которое взаимодействует непосредственно с гипервизором и предоставляет загрузчик, ядро, минимальный набор библиотек и модулей, достаточный для выполнения кода на языке С++, написанный с использованием стандартной библиотеки классов. Окружение компонуется с предназначенным для выполнения приложением и оформляется в виде загрузочного образа виртуальной машины, образуя готовый облачный сервис. Из систем виртуализации, в которых могут работать подобные окружения, поддерживаются KVM/Linux, VirtualBox и Bochs.

Суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб. Нагрузка на CPU при работе экспериментального DNS-сервера, построенного на базе IncludeOS, оценивается в 5-20% по сравнению с запуском того же исполняемого файла в обычной гостевой системе. Поддерживается сборка программ, написанных с использованием спецификаций C++11/14, и пригодных для компиляции с использованием Сlang 3.6 с libc++ от проекта LLVM, или программ на языке Си, которые могут быть собраны с библиотекой newlib от компании Red Hat. Для организации сетевого взаимодействия применяется драйвер Virtio, DHCP-клиент и собственный TCP/IP-стек, который предоставляет набор возможностей, достаточный для работы HTTP- и DNS-серверов.

Предназначенное для выполнения в окружении IncludeOS приложение создаётся с соблюдением определённых требований, например, применяется напоминающая по стилю Node.js неблокирующая система callback-вызовов, вместо main указывается OS::start. Программа компилируется при помощи утилиты vmbuild в один исполняемый файл, который объединяет в себе ядро, загрузчик, статически скомпонованные библиотеки и само приложение. Программа выполняется на нулевом кольце защиты процессора (ring 0) в общем адресном пространстве (одна программа-сервис на одно окружение).

IncludeOS пока позиционируется как рабочий прототип, который не поддерживает все запланированные возможности, например, сетевой стек не поддерживает IPv6, а набор библиотек не включает средств для запуска многопоточных программ. Из планов на будущее отмечается поддержка TLS, RESTful API, поддержка интеграции БД SQLite и MongoDB, возможность использования модулей и подготовка пакетного менеджера, поддержка IPv6 и доведение IPv4-стека до полноценного вида.

  1. Главная ссылка к новости (https://github.com/hioa-cs/Inc...)
  2. OpenNews: Выпуск MirageOS 2.5, платформы для запуска приложений поверх гипервизора
  3. OpenNews: Компания IBM открыла исходные тексты операционной системы FusedOS
  4. OpenNews: OSv - новая открытая ОС, нацеленная на выполнение обособленных программ поверх гипервизора
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43444-unikernel
Ключевые слова: unikernel, includeos
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Анончег (?), 00:56, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Программа выполняется на нулевом кольце защиты процессора (ring 0) в общем адресном пространстве (одна программа-сервис на одно окружение).

    А нет ли здесь какой закавыки для безопасности?

     
     
  • 2.11, Аноним (-), 08:09, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так всё равно ж программа ограничена виртуальной машиной. В сочетании с подходом "одна программа-сервис на одно окружение" получается, что даже работа в ring 0 не даст приложению поломать ничего, кроме самого себя.

    IMHO, собираемые предлагаемым способом программы вполне можно назвать узкоспециализированными прошивками, только работающими не на реальном оборудовании, а в виртуальной машине. По сравнению с классической схемой "ядро хоста <-> виртуальная машина <-> ядро гостя <-> сервис" профит в уменьшении накладных расходов за счёт объединения ядра гостя с сервисом и соответствующего упрощения этого самого ядра гостевой системы.

     
  • 2.18, angra (ok), 11:30, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее для производительности и требований к железу(в смысле наличия VT-X или AMD-V). Такому проекту необходима полная виртуализация, как следствие он заведомо проигрывает более легким видам виртуализации.
     
  • 2.22, Sw00p aka Jerom (?), 12:34, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    а шо самолёты так и работают, понятие борт машины, ничего кроме заточенного софта, никакой операционки - норм, давно пора.
     

  • 1.2, rshadow (ok), 01:07, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –17 +/
    Даешь каждой выполненной на 5 лабе по своей новости!!!111
     
     
  • 2.3, Аноним (-), 01:55, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +14 +/
    всяко лучше твоих и прочих павлинуксов комментариев
     
  • 2.4, parad (ok), 01:57, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    еще скажи в ночь перед сдачей эту лабу навояешь, притом так что препод глядя назовет ее исследовательским проектом.
     
  • 2.37, Павел Самсонов (?), 19:00, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Даешь каждой выполненной на 5 лабе по своей новости!!!111

    Вы недальновидны. В принципе это отправная точка для написания бОльшего ядра. Бутлоадер есть, точка входа в c++ есть. Дальше пиши какую хочешь поделку. Очень интересная штука.

     

  • 1.5, _KUL (ok), 04:32, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Нагрузка на CPU при работе экспериментального DNS-сервера, построенного на базе IncludeOS, оценивается в 5-20% по сравнению с запуском того же исполняемого файла в обычной гостевой системе.

    Не могу понять мысль предложение - т.е. на 20% больше нагрузки на проц?!
    И так и не объяснено толком, зачем плюсам эта прослойка которая превращает его в явоподобный язык ...

     
     
  • 2.6, bOOster (ok), 05:17, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В каком месте отдельная специфическая реализация стала сразу явоподобной? Че за чушь?
     
  • 2.9, anonymous (??), 06:52, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://github.com/hioa-cs/IncludeOS/blob/master/doc/papers/IncludeOS_IEEE_Clo

    на 20% меньше одних попугаев и на 70% меньше других.
    Что логично, убираем лишнюю прослойку ОС => меньше кода => меньше копирований и переключений контекста.

    бенчмарк у них не очень.

     

  • 1.7, bOOster (ok), 05:21, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –18 +/
    Ой Линуксоиды, опять изобретают ВИЛО-сипед..
    JAIL сервисы, без полной ОС давно работают в продуктивах на FreeBSD.

    Чем чаще читаю такие новости - чаще вспоминается анекдот про  разработки Американцами ручки пишущей в космосе...

     
     
  • 2.8, Аноним (-), 06:12, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Просто к сведению: "тупые америкосы" таки разработали ручку для невесомости и Советский Союз таки покупал у них эти ручки и картриджы, хотя были и свои разработки, но на них забили, как обычно. А карандашом нельзя писать в невесомости по технике безопасности: грифельная пыль как бы не очень полезна для техники и лёгких.
     
     
  • 3.20, angra (ok), 12:03, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • –7 +/
    1 Проведи следственный эксперимент возьми лист бумаги, приложи его к потолку, ... большой текст свёрнут, показать
     
     
  • 4.21, AlexAT (ok), 12:08, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    1. Сколько конкретно грифельной пыли остаётся на бумаге, а сколько падает/взлетает? Продолжим эксперимент: проведи с небольшим усилием пальцем по написанному. Посмотри на палец. Ну так вот, всё это на бумаге не удержалось.
     
     
  • 5.23, angra (ok), 12:35, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Сколько конкретно грифельной пыли остаётся на бумаге, а сколько падает/взлетает?

    Ну так измерь и просвети нас. Не забудь указать ТТХ карандашей и бумаги.

    >Продолжим эксперимент: проведи с небольшим усилием пальцем по написанному

    - Доктор, когда я делаю так, у меня болит вот здесь.
    - Больной, а вы не делайте так и болеть не будет!

     
  • 5.42, fr0ster (ok), 09:46, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Можно не мерить.
    В капсулах первых кораблей содержание кислорода в воздушной смеси было выше, потому там было несколько случаев, когда космонавты сгорали из банальной искры.
    Потому в здравом уме и трезвой памяти никто грифельный карандаш на орбиту не возьмет.
     
  • 2.15, dimcha (??), 09:43, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Тут идея в другом. Jail - это, утрированно, chroot на стероидах, но все равно требующий ядра для исполнения. А тут челы сделали исполнение приложений на голом гипере, читай на голом железе, без ядра (например, на XEN). Т.е. приложение, какбэ, включает в себя функции ядра. Проще говоря - создали чудовище Франкенштейна, хотя и шустрое.
     
     
  • 3.28, bOOster (ok), 14:08, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ТО есть фактически обособленная система, с поддержкой виртуализации сетевых интерфейсов это chroot чтоли?
    Ты там че куришь то??
     
     
  • 4.29, dimcha (??), 14:30, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > ТО есть фактически обособленная система, с поддержкой виртуализации сетевых интерфейсов
    > это chroot чтоли?
    > Ты там че куришь то??

    слова знакомые увидел, а весь текст целиком ниасилил?

     
  • 4.30, Аноним (-), 14:33, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Понимаешь-ли, твой джейл, lxc, openvz, docker, solaris_bones - все для виртуализации ФС используют чрут. Перечитай коммент выше о чруте на стероидах ещё раз.

    > ТО есть фактически обособленная система
    > Ты там че куришь то??

    Ты сам хоть понял что сказал?

     

  • 1.12, Аноним (-), 08:41, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    я тоже пытался смахнуть пылинку с диаграммы
     
  • 1.14, Аноним (-), 09:34, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Pale moon так собрать бы и будет счастье)
     
  • 1.16, dimcha (??), 09:44, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Норм, OSv для Java уже есть, теперь на С++ переключились. Скоро можно будет питонячий код запускать )
     
     
  • 2.38, Аноним (-), 07:36, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да и не только для Java он есть. Можно собрать для чего угодно, было бы желание (у них в репе много кода на C, есть зачатки поддержки Python, Ruby, чего угодно). А подход в OSv выглядит более надёжным: не с нуля писать всё, а взять проверенный код, убрать всё лишнее и использовать его, добавив необходимые обвязки для совместимости.
     

  • 1.19, Капитан Очевидность (?), 11:55, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это же DOS! Только без нормальной работы с устройствами!
     
  • 1.24, Аноним (-), 12:42, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    а до какого размера сейчас ужиматся минималистичный набор - бутлоядер:ядро:с/срр рантайм?

     
     
  • 2.36, Павел Самсонов (?), 18:44, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Посмотрите в свой каталог /boot там лежит бутлоадер ядро и минимальный рутфс-инитрд. Вот и ответ на вопрос. Все это в сумме и есть что Вы спрашиваете.
     

  • 1.25, Аноним (-), 12:44, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб.

    Шо? А почему тогда прошивка с DD-WRT занимает до 400КБ, вместе с фс и разделами? Конечно ведро там 2.4, бузибох, вебсервер, днс, р910 и многое другое в комплекте.

     
     
  • 2.32, Аноним (-), 14:50, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб.
    > Шо? А почему тогда прошивка с DD-WRT занимает до 400КБ, вместе с
    > фс и разделами? Конечно ведро там 2.4, бузибох, вебсервер, днс, р910
    > и многое другое в комплекте.

    потому что его разрабатывают не хипсторы

     

  • 1.26, Анониммм (?), 13:37, 03/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я то подумал что интерпритатор С++ в виде бут сектора написали, а тут кастрированная пародия на tccboot( http://www.bellard.org/tcc/tccboot.html )...
     
     
  • 2.27, Отражение луны (ok), 13:42, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    интерпритатор с++. Ради этого стоит жить)
     
     
  • 3.33, anonymous (??), 16:35, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    cling уже давно есть, так что живи
     
  • 3.39, KBAKEP (ok), 22:55, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.softintegration.com/products/
     
     
  • 4.40, Kandeshvari (?), 22:59, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > http://www.softintegration.com/products/

    C/Ch/C++ allow users to use one language, anywhere and everywhere, for any programming tasks.

    )))))

     

  • 1.41, Аноним (-), 02:13, 06/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    что только люди не делают, чтобы QubesOS Рутковской не юзать. количество изобретенных баянов-велосипедов - измеряется уже двумя десятками(тольк в гугле - написано четыре взаимоисключающих корявости :)
     

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



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

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