Genode OS Framework: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м Исправление псевдозаголовков (см. Википедия:Доступность#Заголовки)
 
(не показано 40 промежуточных версий 16 участников)
Строка 1: Строка 1:
{{Карточка ОС
{{Карточка ОС
|name = Genode
| name = Genode
|developer = [http://www.genode-labs.com/ Genode Labs] и многочисленные разработчики по всему миру
| developer = [http://www.genode-labs.com/ Genode Labs] и многочисленные разработчики по всему миру
|source_model = [[открытое программное обеспечение|открытый]]
| source_model = [[открытое программное обеспечение|открытый]]
|kernel_type = [[микроядро]]
| kernel_type = [[микроядро]]
| working_state = актуальное
|license = [[GNU GPL]]

|working_state = актуальное
}}
}}

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

; Микроядра
== Общее описание ==
* [[Mach]]
[[Файл:Genode intro.png|справа|upright|Пояснительная подпись]]
* [[L4 (микроядро)|L4]]
Большинство современных ядер операционных систем, таких как ядро Linux, представляют собой весьма сложное программное обеспечение, которое содержит всё необходимое для управления ресурсами, например, управление памятью, доступ к оборудованию, хранение информации в файловой системе, обработка сетевых пакетов и многое другое. Поэтому такие ядра требует привилегии для управления всем аппаратным обеспечением.
* [[QNX]]

; Операционные системы на основе микроядер
Высокие функциональные требования и широкий спектр существующих аппаратных платформ вызывают быстрый рост кодовой базы таких ядер. Так версия Linux 3.10, выпущенная в 2013 году, содержала порядка 16 миллионов строк кода<ref>{{cite web |url=http://www.h-online.com/open/features/What-s-new-in-Linux-3-10-1902270.html |title=What's new in Linux 3.10 |last=Leemhuis |first=Thorsten |date=2013-07-01 |work=The H |publisher=[[Heinz Heise]] |accessdate=2014-03-18 |deadurl=yes |archiveurl=https://web.archive.org/web/20140220194606/http://www.h-online.com/open/features/What-s-new-in-Linux-3-10-1902270.html |archivedate=2014-02-20 }}</ref>. В системах такого масштаба невозможно полностью избежать ошибок и утечек безопасности. Ошибка в одной из подсистем может привести выходу из строя всего ядра операционной системы.
{{col-begin}}

{{col-4}}
Современные операционные системы и аппаратные платформы обеспечивают механизмы изоляции запущенных приложений пользователя: каждое приложение запускается в выделенном адресном пространстве и взаимодействует с другими приложениями только через механизмы, предусмотренные ядром. Таким образом, ядро эффективно защищает пользовательские приложения друг от друга.
* [[AIX]]

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

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

{{col-4}}
== Примечания ==
* [[OpenVMS]]
{{примечания}}
* [[Integrity (операционная система)|Integrity]]

{{col-4}}
== Литература ==
* [[Amoeba (операционная система)|Amoeba]]
* Norman Feske, [https://genode.org/documentation/genode-foundations-15-05.pdf GENODE Operating System Framework 15.05. Foundations], 2015
* [[Minix]]
* Norman Feske, [https://genode.org/documentation/genode-foundations-19-05.pdf GENODE Operating System Framework 19.05. Foundations], 2019
{{col-end}}


== Ссылки ==
== Ссылки ==
; Англоязычные ресурсы
'''Англоязычные ресурсы'''
* [http://www.genode-labs.com/ Официальный сайт Genode Labs]
* [http://www.genode-labs.com/ Официальный сайт Genode Labs]
* [https://github.com/genodelabs/genode Публичный репозиторий с исходными кодами Genode]
* [https://github.com/genodelabs/genode Публичный репозиторий с исходными кодами Genode]
* [https://www.phoronix.com/scan.php?page=news_item&px=Genode-2019-Roadmap-Sculpt-OS Genode To Focus On Making Sculpt OS Relevant & Appealing In 2019]

'''Русскоязычные ресурсы'''
* {{cite news |first=Евгений |last=Крестников |authorlink= |title=Немного экзотики: операционные системы MINIX 3.2.0 и Genode 12.02 |url=http://www.computerra.ru/25784/nemnogo-ekzotiki-minix-3-2-0-i-genode-12-02/ |work= |publisher= [[Компьютерра]] |date=2012-03-01 |accessdate=2014-03-18 }}
* {{cite web|author=Роман Ярыженко|last=Ярыженко|first=Роман|title=Обзор фреймворка для создания ОС Genode|url=https://xakep.ru/2015/05/20/genode-os-build-review/|website=«Хакер»|date=2015-05-20|accessdate=2019-07-24}}
{{Операционные системы}}
{{Операционные системы}}


[[Категория:Свободные операционные системы]]
[[Категория:Свободные операционные системы]]
[[Категория:Встраиваемые операционные системы]]
[[Категория:Встраиваемые операционные системы]]
[[Категория:Операционные системы на основе микроядер]]

Текущая версия от 04:37, 12 октября 2024

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.11 — 2024.
  2. Leemhuis, Thorsten What's new in Linux 3.10. The H. Heinz Heise (1 июля 2013). Дата обращения: 18 марта 2014. Архивировано из оригинала 20 февраля 2014 года.

Литература

[править | править код]

Англоязычные ресурсы

Русскоязычные ресурсы

  • Крестников, Евгений (2012-03-01). "Немного экзотики: операционные системы MINIX 3.2.0 и Genode 12.02". Компьютерра. Дата обращения: 18 марта 2014.
  • Ярыженко, Роман Обзор фреймворка для создания ОС Genode. «Хакер» (20 мая 2015). Дата обращения: 24 июля 2019.