Университетский колледж Осло и Акерсхуса открыл (https://github.com/hioa-cs/IncludeOS/releases/tag/v0.7.0-proto) исходные тексты исследовательского проекта IncludeOS (http://www.includeos.org/), в рамках которого развивается специализированное ядро (unikernel (https://en.wikipedia.org/wiki/Unikernel)), позволяющие запускать приложения, написанные на языке С++, непосредственно поверх гипервизора, без применения дополнительных прослоек и окружения операционной системы. Код открыт (https://github.com/hioa-cs/IncludeOS) под лицензией Apache 2.0.
IncludeOS минимально необходимое самодостаточное окружение, которое взаимодействует непосредственно с гипервизором и предоставляет загрузчик, ядро, минимальный набор библиотек и модулей, достаточный для выполнения кода на языке С++, написанный с использованием стандартной библиотеки классов. Окружение компонуется с предназначенным для выполнения приложением и оформляется в виде загрузочного образа виртуальной машины, образуя готовый облачный сервис. Из систем виртуализации, в которых могут работать подобные окружения, поддерживаются KVM/Linux, VirtualBox и Bochs.
<center><a href="https://github.com/hioa-cs/IncludeOS/wiki"><img src="https://www.opennet.me/opennews/pics_base/0_1449089238.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
Суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб. Нагрузка на CPU при работе экспериментального DNS-сервера, построенного на базе IncludeOS, оценивается в 5-20% по сравнению с запуском того же исполняемого файла в обычной гостевой системе. Поддерживается сборка программ, написанных с использованием спецификаций C++11/14, и пригодных для компиляции с использованием Сlang 3.6 с libc++ от проекта LLVM, или программ на языке Си, которые могут быть собраны с библиотекой newlib (https://sourceware.org/newlib/) от компании Red Hat. Для организации сетевого взаимодействия применяется драйвер Virtio, DHCP-клиент и собственный TCP/IP-стек, который предоставляет набор возможностей, достаточный для работы HTTP- и DNS-серверов.
Предназначенное для выполнения в окружении IncludeOS приложение создаётся с соблюдением определённых требований, например, применяется напоминающая по стилю Node.js неблокирующая система callback-вызовов, вместо main указывается OS::start. Программа компилируется при помощи утилиты vmbuild в один исполняемый файл, который объединяет в себе ядро, загрузчик, статически скомпонованные библиотеки и само приложение. Программа выполняется на нулевом кольце защиты процессора (ring 0) в общем адресном пространстве (одна программа-сервис на одно окружение).
IncludeOS пока позиционируется как рабочий прототип, который не поддерживает все запланированные возможности, например, сетевой стек не поддерживает IPv6, а набор библиотек не включает средств для запуска многопоточных программ. Из планов (https://github.com/hioa-cs/IncludeOS/wiki/Roadmap) на будущее отмечается поддержка TLS, RESTful API, поддержка интеграции БД SQLite и MongoDB, возможность использования модулей и подготовка пакетного менеджера, поддержка IPv6 и доведение IPv4-стека до полноценного вида.
URL: https://github.com/hioa-cs/IncludeOS/releases/tag/v0.7.0-proto
Новость: http://www.opennet.me/opennews/art.shtml?num=43444
> Программа выполняется на нулевом кольце защиты процессора (ring 0) в общем адресном пространстве (одна программа-сервис на одно окружение).А нет ли здесь какой закавыки для безопасности?
Так всё равно ж программа ограничена виртуальной машиной. В сочетании с подходом "одна программа-сервис на одно окружение" получается, что даже работа в ring 0 не даст приложению поломать ничего, кроме самого себя.IMHO, собираемые предлагаемым способом программы вполне можно назвать узкоспециализированными прошивками, только работающими не на реальном оборудовании, а в виртуальной машине. По сравнению с классической схемой "ядро хоста <-> виртуальная машина <-> ядро гостя <-> сервис" профит в уменьшении накладных расходов за счёт объединения ядра гостя с сервисом и соответствующего упрощения этого самого ядра гостевой системы.
Скорее для производительности и требований к железу(в смысле наличия VT-X или AMD-V). Такому проекту необходима полная виртуализация, как следствие он заведомо проигрывает более легким видам виртуализации.
а шо самолёты так и работают, понятие борт машины, ничего кроме заточенного софта, никакой операционки - норм, давно пора.
Даешь каждой выполненной на 5 лабе по своей новости!!!111
всяко лучше твоих и прочих павлинуксов комментариев
еще скажи в ночь перед сдачей эту лабу навояешь, притом так что препод глядя назовет ее исследовательским проектом.
> Даешь каждой выполненной на 5 лабе по своей новости!!!111Вы недальновидны. В принципе это отправная точка для написания бОльшего ядра. Бутлоадер есть, точка входа в c++ есть. Дальше пиши какую хочешь поделку. Очень интересная штука.
> Нагрузка на CPU при работе экспериментального DNS-сервера, построенного на базе IncludeOS, оценивается в 5-20% по сравнению с запуском того же исполняемого файла в обычной гостевой системе.Не могу понять мысль предложение - т.е. на 20% больше нагрузки на проц?!
И так и не объяснено толком, зачем плюсам эта прослойка которая превращает его в явоподобный язык ...
В каком месте отдельная специфическая реализация стала сразу явоподобной? Че за чушь?
https://github.com/hioa-cs/IncludeOS/blob/master/doc/papers/...на 20% меньше одних попугаев и на 70% меньше других.
Что логично, убираем лишнюю прослойку ОС => меньше кода => меньше копирований и переключений контекста.бенчмарк у них не очень.
Ой Линуксоиды, опять изобретают ВИЛО-сипед..
JAIL сервисы, без полной ОС давно работают в продуктивах на FreeBSD.Чем чаще читаю такие новости - чаще вспоминается анекдот про разработки Американцами ручки пишущей в космосе...
Просто к сведению: "тупые америкосы" таки разработали ручку для невесомости и Советский Союз таки покупал у них эти ручки и картриджы, хотя были и свои разработки, но на них забили, как обычно. А карандашом нельзя писать в невесомости по технике безопасности: грифельная пыль как бы не очень полезна для техники и лёгких.
1. Проведи следственный эксперимент: возьми лист бумаги, приложи его к потолку, попробуй на нем что-либо написать карандашом. Убедись, что даже гравитация, направленная в противоположную сторону, не мешает грифельной пыли оставаться на бумаге. Тем более не будет мешать невесомость. Так что дело было совсем не в грифельной пыли. Отдельно можешь заинтересовать такой вещью как восковые и химические карандаши. Причины отказа от карандашей были другие.
2. Ручку разработал частный предприниматель, а не правительство США или NASA. Массовое ее производство и реализация были налажены задолго до использования в космических программах. Кроме невесомости она еще пишет под водой и при отрицательных температурах. То есть целью разработки не было создание ручки для космоса. Обоим сторонам он продавал ручки на коммерческой основе по цене в районе $3-$6, то бишь за копейки, что в общем-то и было основным фактором.
1. Сколько конкретно грифельной пыли остаётся на бумаге, а сколько падает/взлетает? Продолжим эксперимент: проведи с небольшим усилием пальцем по написанному. Посмотри на палец. Ну так вот, всё это на бумаге не удержалось.
>Сколько конкретно грифельной пыли остаётся на бумаге, а сколько падает/взлетает?Ну так измерь и просвети нас. Не забудь указать ТТХ карандашей и бумаги.
>Продолжим эксперимент: проведи с небольшим усилием пальцем по написанному
- Доктор, когда я делаю так, у меня болит вот здесь.
- Больной, а вы не делайте так и болеть не будет!
Можно не мерить.
В капсулах первых кораблей содержание кислорода в воздушной смеси было выше, потому там было несколько случаев, когда космонавты сгорали из банальной искры.
Потому в здравом уме и трезвой памяти никто грифельный карандаш на орбиту не возьмет.
Тут идея в другом. Jail - это, утрированно, chroot на стероидах, но все равно требующий ядра для исполнения. А тут челы сделали исполнение приложений на голом гипере, читай на голом железе, без ядра (например, на XEN). Т.е. приложение, какбэ, включает в себя функции ядра. Проще говоря - создали чудовище Франкенштейна, хотя и шустрое.
ТО есть фактически обособленная система, с поддержкой виртуализации сетевых интерфейсов это chroot чтоли?
Ты там че куришь то??
> ТО есть фактически обособленная система, с поддержкой виртуализации сетевых интерфейсов
> это chroot чтоли?
> Ты там че куришь то??слова знакомые увидел, а весь текст целиком ниасилил?
Понимаешь-ли, твой джейл, lxc, openvz, docker, solaris_bones - все для виртуализации ФС используют чрут. Перечитай коммент выше о чруте на стероидах ещё раз.> ТО есть фактически обособленная система
> Ты там че куришь то??Ты сам хоть понял что сказал?
я тоже пытался смахнуть пылинку с диаграммы
Pale moon так собрать бы и будет счастье)
Норм, OSv для Java уже есть, теперь на С++ переключились. Скоро можно будет питонячий код запускать )
Да и не только для Java он есть. Можно собрать для чего угодно, было бы желание (у них в репе много кода на C, есть зачатки поддержки Python, Ruby, чего угодно). А подход в OSv выглядит более надёжным: не с нуля писать всё, а взять проверенный код, убрать всё лишнее и использовать его, добавив необходимые обвязки для совместимости.
Это же DOS! Только без нормальной работы с устройствами!
а до какого размера сейчас ужиматся минималистичный набор - бутлоядер:ядро:с/срр рантайм?
Посмотрите в свой каталог /boot там лежит бутлоадер ядро и минимальный рутфс-инитрд. Вот и ответ на вопрос. Все это в сумме и есть что Вы спрашиваете.
> Суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб.Шо? А почему тогда прошивка с DD-WRT занимает до 400КБ, вместе с фс и разделами? Конечно ведро там 2.4, бузибох, вебсервер, днс, р910 и многое другое в комплекте.
>> Суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб.
> Шо? А почему тогда прошивка с DD-WRT занимает до 400КБ, вместе с
> фс и разделами? Конечно ведро там 2.4, бузибох, вебсервер, днс, р910
> и многое другое в комплекте.потому что его разрабатывают не хипсторы
я то подумал что интерпритатор С++ в виде бут сектора написали, а тут кастрированная пародия на tccboot( http://www.bellard.org/tcc/tccboot.html )...
интерпритатор с++. Ради этого стоит жить)
cling уже давно есть, так что живи
http://www.softintegration.com/products/
> http://www.softintegration.com/products/C/Ch/C++ allow users to use one language, anywhere and everywhere, for any programming tasks.
)))))
что только люди не делают, чтобы QubesOS Рутковской не юзать. количество изобретенных баянов-велосипедов - измеряется уже двумя десятками(тольк в гугле - написано четыре взаимоисключающих корявости :)