IncludeOS

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:39, 19 мая 2019.
IncludeOS 341EDF3E-B1F9-46F0-B6C2-481EEE014B25.png
Разработчик IncludeOS
Написанный на C++ (язык программирования)
Исходный код открытый
Дата выпуска 18 августа 2014
Маркетинговая цель Облачные вычисления
Платформы x86, x86-64
Тип ядра Unikernel
Пользовательское окружение Подмножество POSIX, пользовательское
Лицензия Apache 2.0
Веб-сайт www.includeos.org

IncludeOS — это включаемая библиотечная операционная система с открытым исходным кодом для облачных сервисов. Эта ОС позволяет запускать приложения, написанные на языке C++ , в облаке без операционной системы непосредственно поверх гипервизора, без применения дополнительных прослоек и окружения операционной системы. Запуск программы с #include <os> включит в сервис целую небольшую операционную систему во время соединения.

IncludeOS - бесплатное программное обеспечение без каких-либо гарантий или ограничений. В настоящее время IncludeOS поддерживает только языки C и C++, но с 2019 сможет поддерживать и другие языковые среды.

Общие сведения

IncludeOS:

  • позволяет запускать приложения в облаке без операционной системы;
  • добавляет функциональность операционной системы в приложение, разрешая создавать эффективные, безопасные и ресурсоэффективные виртуальные машины;
  • загружает приложения за десятки миллисекунд и требует всего несколько мегабайт диска и памяти;[1]
  • поддерживает ограниченную совместимость исходного кода с Linux, поэтому библиотека, которая компилируется в Linux, должна компилироваться и на IncludeOS.

Принцип работы

IncludeOS-это операционная система, написанная как библиотека. При создании приложения система сборки включает код, который обычно находится в операционной системе, в само приложение. Когда это будет сделано, будет добавлен загрузчик. Итак, после успешного создания теперь есть автономное приложение, которое загружается без операционной системы. Приложение теперь способно управлять аппаратным обеспечением, имеет стек IP и управляет своей памятью. [2]

Производительность

IncludeOS может превзойти операционную систему общего назначения из-за двух разных факторов. Один из них-отсутствие переключателей контекста. Производительность страдает, поскольку Linux переключается в и из пространства ядра. При выполнении только одной задачи нет переключателей контекста. Система Include OS компилируется и оптимизируется в целом. Оптимизаторы, как на этапах компилятора, так и компоновщика, видят больше того, что делает вся система, и имеют потенциал для дальнейшей оптимизации.

Достоинства и недостатки

В число достоинствам IncludeOS относится то, что:

  1. суммарный размер библиотек и компонентов операционной системы составляет всего 693 Кб;
  2. IncludeOS может использовать несколько процессоров;
  3. нагрузка на CPU при работе экспериментального DNS -сервера, построенного на базе IncludeOS, оценивается в 5-20% по сравнению с запуском того же исполняемого файла в обычной гостевой системе.

Среди недостатков можно выделить то, что:

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

Источники

  1. IncludeOS // includeos.org [2017]. Дата обновления: 27.03.2019. URL: http://www.includeos.org/ (дата обращения: 31.03.2019).
  2. IncludeOS // gethub.com [2019]. Дата обновления: 27.03.2019. URL: https://github.com/includeos/IncludeOS (дата обращения: 31.03.2019).
  3. В рамках проекта IncludeOS развивается ядро для обособленного запуска C++-приложений // opennet.ru [1996-2019]. Дата обновления: 02.12.2015. URL: http://www.opennet.ru/opennews/art.shtml?num=43444 (дата обращения: 31.03.2019).