Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Genode - это бесплатная программная операционная система (ОС) с открытым исходным кодом, состоящая из уровня абстракции микроядра и набора компонентов пользовательского пространства . [4] [5] [6] Фреймворк примечателен как одна из немногих операционных систем с открытым исходным кодом, не производных от проприетарной ОС, такой как Unix . Характерная философия проектирования заключается в том, что небольшая надежная вычислительная база является первоочередной задачей в ориентированной на безопасность ОС.

Genode можно использовать как основу для ОС настольного компьютера [7] [8] или планшета [9] или как монитор виртуальной машины для гостевых операционных систем. Фреймворк использовался в качестве надежного компонента безопасных систем виртуализации как для x86 [10], так и для ARM . [11]

Небольшая кодовая база Genode делает его гибкой альтернативой более сложным операционным системам, производным от Unix. По этой причине структура использовалась в качестве базовой системы для исследований в таких областях, как виртуализация, [12] межпроцессное взаимодействие , [13] изоляция стека IP , [14] [15] мониторинг, [16] и разработка программного обеспечения . [17] [18]

История [ править ]

Genode был задуман как исследовательский отчет Bastei OS Architecture [19] в Техническом университете Дрездена ( TU Dresden ). В центре внимания отчета было определение практичности компонентной ОС с использованием безопасности на основе возможностей . Этот отчет был частично мотивирован исследованиями микрогипервизоров L4 [20], проведенными в то же время. После успеха раннего прототипа авторы отчета основали компанию Genode Labs для разработки Bastei как Genode OS Framework.

Релизы [ править ]

Проект разрабатывается публично как проект с открытым исходным кодом, выпущенный в соответствии с условиями GNU Affero General Public License с коммерческой организацией, предлагающей альтернативное лицензирование. Релизы запланированы с интервалом в три месяца для внесения изменений в двоичный интерфейс системного приложения (ABI), интерфейс прикладного программирования (API) и документацию по выпуску. Платформа ОС доступна в виде исходного кода, а после выпуска 18.02 производная общего назначения под названием Sculpt предоставляется с целевым двоичным развертыванием.

Архитектурные особенности [ править ]

Genode основан на общей философии микроядер: чем меньше и проще код, тем легче его проверить на надежность и правильность. Genode распространяет эту философию на пространство пользователя, составляя сложные приложения из небольших компонентов. Каждый компонент существует в строгой иерархии родительско-дочерних отношений. Любой компонент, выступающий в качестве родительского, может применять к своим дочерним элементам политики доступа к ресурсам и межпроцессному взаимодействию (IPC). Эта иерархическая структура системы обеспечивает интуитивно понятное разделение и деэскалацию привилегий, поскольку специализированные подсистемы вложены в более общие подсистемы, смягчая запутанную проблему заместителя, присущую централизованной политике или политике суперпользователя .

Фреймворк предназначен для размещения на микроядрах, однако функции любого данного микроядра в основном относятся к общему набору, а монолитные ядра реализуют надмножество этих функций. Абстрагирование этих функций позволяет Genode действовать как пользовательское пространство для множества микроядер L4, [21] [22] и Linux.

Критика [ править ]

C ++ [ править ]

Genode часто критикуют за выбор языка реализации, C ++ (несколько других операционных систем, реализованных на C ++, включают BeOS , Fuchsia , Ghost , Haiku , IncludeOS , OSv , Palm OS , ReactOS , Syllable и все основные движки браузеров). В этой критике обычно утверждается, что C ++ - плохой выбор для реализации системных библиотек и API из-за присущей C ++ сложности и сложности анализа кода на предмет правильного поведения. Хотя Genode действительно использует множественное наследование и шаблоны в своей системной библиотеке, использование стандартной библиотеки C ++не разрешено, а языковые функции, которые полагаются на неявное глобальное состояние, такие как локальное хранилище потока и глобальный распределитель, были удалены из языковой среды выполнения. [23] Всесторонний статический анализ C ++ невозможен. Однако проект Genode публикует модульные тесты для эмпирического анализа.

XML [ править ]

Компоненты Genode используют и публикуют состояние с использованием структурированных данных, сериализованных в XML , в отличие от модели простого текста производных Unix. Платформа Genode эффективно использует XML во всех своих компонентах, поскольку XML легко анализируется и генерируется программно, при этом его можно понимать и редактировать вручную.

Местное пространство имен [ править ]

Genode не имеет практического глобального пространства имен ; нет глобальной файловой системы или реестра процессов или конечных точек IPC. Это контрастирует с такими системами, как Unix, которые имеют повсеместную файловую систему и позволяют контексту суперпользователя произвольно управлять любым процессом в системе. Явное объявление разрешений и маршрутизации компонентов может показаться трудоемким по сравнению с Unix. Однако разделение администрирования позволяет управлять подсистемами не пользующихся доверием системных администраторов на одной машине, не прибегая к виртуализации - обычному методу изоляции.

Лепить [ править ]

Проект Genode издает настольную операционную систему Sculpt , предназначенную для современных потребительских ноутбуков . [24] Sculpt - это небольшая базовая система с автоматическим обнаружением и настройкой устройств, некоторыми интерфейсами управления графическим интерфейсом пользователя и интерфейсами к диспетчеру пакетов Genode. Система не имеет полноценной среды рабочего стола, но требует от пользователей развертывания виртуальных машин с традиционными ОС для полнофункционального рабочего стола. Sculpt отличается от платформы операционной системы Genode тем, что он в значительной степени полагается на динамическую реконфигурацию с использованием привилегированных компонентов управления в отличие от специализированных систем со статическими политиками.

См. Также [ править ]

  • HelenOS , настольная операционная система на базе микроядра
  • QNX , проприетарная Unix-подобная операционная система, размещенная на микроядре.
  • Qubes OS , операционная система для настольных ПК, обеспечивающая безопасность за счет виртуализации.
  • Subgraph (операционная система) , дистрибутив Linux, обеспечивающий безопасность через песочницу.
  • Безопасность на основе возможностей
  • Безопасность по умолчанию

Ссылки [ править ]

  1. ^ "Последний выпуск Genode OS Framework" .
  2. ^ "Genode OS добавляет поддержку RISC-V" .
  3. ^ Ларабель, Майкл. «Genode разрабатывает мультиплексор графического процессора для графического оборудования Intel» . Фороникс .
  4. ^ «Введение в Genode OS Framework» . archive.fosdem.org/2012 .
  5. ^ «Операционные системы на основе L4» . L4hq.org . Архивировано из оригинала на 2018-06-14 . Проверено 1 июня 2018 .
  6. ^ Ларабель, Майкл. «Redox OS, MINIX, Hurd и Genode тоже провели время в FOSDEM» . Фороникс .
  7. ^ Баадер, Ханс-Иоахим. «Genode 2018.2 mit Sculpt OS» . pro-linux.de .
  8. ^ Ларабель, Майкл. «Sculpt стремится стать универсальной ОС, построенной на основе Genode» .
  9. ^ Тарасиков, Александр (2013-05-11). «Перенос Genode на коммерческое оборудование» . Ненавижу программное обеспечение . Блогер.
  10. ^ «Muen: ядро ​​разделения x86 / 64 для высокой надежности» .
  11. ^ Уильямс, Джон. «Проверка данных с точки зрения безопасности вашей доверенной среды выполнения» (PDF) .
  12. ^ «Посольства: радикальный рефакторинг Интернета» (PDF) . USENIX.
  13. ^ Вегнер, Мартин; Холтхузен, Зёнке (11 декабря 2014 г.). «Спецификация контракта и язык» . ccc-project.org .
  14. ^ Хамад, Мохаммад (2016-01-06). «Модуль безопасной связи CCC» . ccc-project.org .
  15. ^ Хамад, Мохаммад. «Коммуникационная структура для распределенного управления доступом в системах на основе микроядра» (PDF) .
  16. ^ Pruthiviraj, B .; Мадхусутун, GS; Виджаясаратхи, S .; Чакрапани, К. «Безопасная операционная система на основе микроядра, использующая Genode Framework» (PDF) . ДЖАТИТ .
  17. ^ Hähne, Людвиг. «Эмпирическое сравнение SCons и GNU Make» (PDF) .
  18. ^ Милло-Санчес, Рейнир; Пас Родригес, Вальдо; Фахардо-Моя, Алексис. «Genode OS Framework, платформа для встроенных систем» . ResearchGate .
  19. ^ "Технический отчет TU Dresden TUD-FI06-07" (PDF) .
  20. ^ "NOVA Microhypervisor" .
  21. ^ «Операционные системы на основе L4» . L4hq.org . Архивировано из оригинала на 2018-06-14 . Проверено 1 июня 2018 .
  22. ^ "Проекты сообщества SeL4" . sel4.systems .
  23. ^ "Сознательный диалект C ++ Генода" . genodians.org . Проверено 29 ноября 2019 .
  24. ^ "Примечания к выпуску 18.02" .

Внешние ссылки [ править ]

Официальные сайты

Официальный веб-сайт

  • Genodelabs на GitHub
Исследовательские проекты
  • KV-Cache: масштабируемый высокопроизводительный кэш веб-объектов для Manycore
  • TrApps: безопасные отсеки в злом облаке
  • Разработка встроенной платформы для безопасных сервисов CPS
  • Проект Secure-OS ИИТ Мадрас
  • Изоляция ядра операционной системы безопасности на основе возможностей
  • Безопасность мобильных устройств с ARM TrustZone