Genode OS Framework

Genode
Изображение логотипа
Разработчик Genode Labs и многочисленные разработчики по всему миру
Последняя версия
Тип ядра микроядро
Лицензия AGPL v3.0
Состояние актуальное
Репозиторий исходного кода github.com/genodelabs/ge…
Веб-сайт genode.org (англ.)

Genode OS Framework — открытая микроядерная операционная система, которая предоставляет унифицированное окружение для создания приложений, работающих как поверх ядра Linux, так и поверх микроядер Fiasco.OC, OKL4, L4ka::Pistachio и некоторых других. Паравиртуализованное ядро L4Linux, работающее поверх ядра Fiasco.OC, позволяет запускать в Genode прикладные программы для Linux. При этом ядро L4Linux не имеет непосредственного доступа к аппаратному обеспечению, а использует сервисы Genode через набор драйверов. В настоящее время Genode поддерживает Qt5, WebKit, а также различные компоненты Linux и BSD.

Общее описание

Пояснительная подпись
Пояснительная подпись

Большинство современных ядер операционных систем, таких как ядро Linux, представляют собой весьма сложное программное обеспечение, которое содержит всё необходимое для управления ресурсами, например, управление памятью, доступ к оборудованию, хранение информации в файловой системе, обработка сетевых пакетов и многое другое. Поэтому такие ядра требует привилегии для управления всем аппаратным обеспечением.

Высокие функциональные требования и широкий спектр существующих аппаратных платформ вызывают быстрый рост кодовой базы таких ядер. Так версия Linux 3.10, выпущенная в 2013 году, содержала порядка 16 миллионов строк кода[2]. В системах такого масштаба невозможно полностью избежать ошибок и утечек безопасности. Ошибка в одной из подсистем может привести выходу из строя всего ядра операционной системы.

Современные операционные системы и аппаратные платформы обеспечивают механизмы изоляции запущенных приложений пользователя: каждое приложение запускается в выделенном адресном пространстве и взаимодействует с другими приложениями только через механизмы, предусмотренные ядром. Таким образом, ядро эффективно защищает пользовательские приложения друг от друга.

Системы с микроядром используют эти методы не только для пользовательских приложений, но и для драйверов устройств, файловых систем и других типичных подсистем на уровне ядра. Таким образом, эффект ошибки в одном из компонентов локально ограничен. Микроядро отзывает все необязательные привилегии от каждого компонента и тем самым сокращает общую сложность кода, работающего в привилегированном режиме, на 1-2 порядка по сравнению с монолитным ядром.

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

Примечания

  1. Release 24.02 — 2024.
  2. Leemhuis, Thorsten What's new in Linux 3.10  (неопр.). The H. Heinz Heise (1 июля 2013). Дата обращения: 18 марта 2014. Архивировано из оригинала 20 февраля 2014 года.

Литература

  • Norman Feske, GENODE Operating System Framework 15.05. Foundations, 2015
  • Norman Feske, GENODE Operating System Framework 19.05. Foundations, 2019

Ссылки

Англоязычные ресурсы
  • Официальный сайт Genode Labs
  • Публичный репозиторий с исходными кодами Genode
  • Genode To Focus On Making Sculpt OS Relevant & Appealing In 2019
Русскоязычные ресурсы
  • Крестников, Евгений (2012-03-01). "Немного экзотики: операционные системы MINIX 3.2.0 и Genode 12.02". Компьютерра. Дата обращения: 18 марта 2014.
  • Ярыженко, Роман Обзор фреймворка для создания ОС Genode  (неопр.). «Хакер» (20 мая 2015). Дата обращения: 24 июля 2019.