Genode os framework: Genode — General overview

Обзор фреймворка для создания ОС Genode — «Хакер»

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

История микроядерных систем началась где-то в семидесятых годах прошлого века. Правда, на железе того времени их, понятно, реализовать было затруднительно. Реально работающие микроядра (такие как Chorus и Mach) появились уже в начале восьмидесятых. Mach, однако, был достаточно медленным и в конечном счете не выдержал испытания временем (хотя стоит отметить, что его взяли за основу ядра Mac OS X), а Chorus, строго говоря, нельзя считать полноценным микроядром — часть его подсистем работают в привилегированном режиме.

В конце девяностых была предложена оптимизированная архитектура микроядер — L4. К сожалению, руководитель проекта (Йохен Лидтке) попал в аварию и не смог закончить свою реализацию данной архитектуры. Тем не менее на основе описания родилось целое семейство L4-микроядер:

  • L4Ka::Pistachio — оригинальная разработка, руководителем которой и был Йохен Лидтке. Сейчас, понятное дело, проект заморожен, но послужил прародителем других ядер L4;
  • OKL4 — ядро, разработанное в Open Kernel Labs, компании — ответвления от NICTA. На данный момент OKL4 достигла версии 3 и используется в мобильных телефонах — в частности, производства Qualcomm;
  • L4.verified — разработан в NICTA. Является формально верифицированным микроядром. Это условно означает, что по каждой строчке кода доказывается теорема, — это позволяет быть математически уверенным в надежности кода и соответствии его определенным требованиям. Подобные ядра используются, как правило, в военпроме и медицине;
  • Fiasco.OC — написан на C++, поддерживает множество аппаратных платформ.

Genode же появился в 2008-м и представляет собой конструктор для создания узкоспециализированных систем из «кирпичиков». Набор «кирпичиков» включает в себя набор «фундаментов» для нескольких вариантов ядер, стеки протоколов и драйверы устройств. Рассмотрим архитектуру и особенности данного фреймворка.

Фреймворк может работать на нескольких ядрах:

  • Linux — как x86, так и x64. Является ядром по умолчанию для Genode;
  • Fiasco.OC;
  • L4ka::Pistachio;
  • OKL4;
  • Codezero — ответвление от OKL4, изначально ядро было открытым, затем исходники закрыли и оно стало коммерческим;
  • Fiasco — ядро, оптимизированное для поддержки систем с низкими задержками; поддерживает как x86/x64, так и ARM;
  • NOVA — микрогипервизор для архитектуры x64, поддерживающий аппаратную виртуализацию и IOMMU.

Genode разрабатывался с учетом минимально возможного использования глобальных пространств имен, что крайне полезно для изоляции, а следовательно, и большей защищенности (оно и понятно — как можно атаковать то, чего не видно?). В фреймворке нет нужды знать имена файлов, идентификаторы процессов и потоков и прочую информацию, которая уникальным образом определяет объект в пределах системы. Фреймворк спроектирован в основном для ядер, поддерживающих локальные имена, защищенные в привилегированном режиме, — в терминологии Genode они именуются capabilities. Стоит отметить, что в Linux подобная возможность отсутствует и эмулируется процессом Core.

Поверх привилегированного ядра запускается процесс Core. Этот процесс получает доступ ко всем физическим ресурсам и преобразует их в некие абстракции, которые затем могут использоваться различными программами для получения данных ресурсов. Так, Core выводит абстракцию, называемую пространствами данных (dataspaces), — смежные области физической памяти с произвольным размером (зависящим, тем не менее, от размера страниц). Система, которую разрабатывают на основе «фундамента» Core, вместо использования страниц физической памяти оперирует единой абстракцией, позволяющей работать как с RAM и memmapped IO, так и с областями ROM. Core предоставляет множество примитивов и сервисов, которые имеет смысл описать подробнее. Отмечу, что практически каждый примитив присваивается определенной сессии (собственно, они и называются именами таких-то примитивов).

Сервис RAM предоставляет доступ к физической памяти. Каждая сессия RAM соответствует пулу памяти, ограниченному квотой. Из этого пула клиент данной сессии может выделять блоки памяти в форме пространств данных.

ROM-сервис же предоставляет доступ к файлам, доступным во время загрузки, таким как файлы, загруженные начальным загрузчиком или содержащиеся в какой-либо области ROM. Каждая сессия соответствует открытому файлу, и его содержимое доступно клиенту в качестве read-only пространства данных.

Сервис IO_MEM позволяет драйверам режима пользователя получать ресурсы устройства, отображенные в память, — опять же в виде пространства данных. Каждая сессия соответствует диапазону адресов памяти, для которого клиенту предоставляется пространство данных. Драйвер режима пользователя может сделать доступным данный ресурс устройства в его, драйвера, адресном пространстве с помощью подключения пространства данных к RM-сессии.

Сервис IO_PORT предоставляет доступ к портам ввода-вывода устройства через интерфейс RPC. Сессия же соответствует праву доступа к диапазону портов.

Сервис IRQ отвечает за аппаратные прерывания. Каждая сессия соответствует подсоединенному к клиенту прерыванию. Стоит отметить, что в каждый конкретный момент прерывание может быть подсоединено только к одной сессии.

RM — сервис, управляющий разбивкой адресного пространства. Сессия соответствует разбивке адресного пространства, в которой можно разместить несколько пространств данных. Таким образом, сессию RM можно представить как некую абстракцию для таблицы страниц, в которой и находятся ссылки на «страницы» — пространства данных.

Сервис CPU позволяет создавать потоки и управлять ими. Сессия же — аллокатор процессорного времени, с его помощью можно выделять процессорное время для потоков.

Сервис PD позволяет создавать изолированные адресные пространства. Данный сервис используется приложениями напрямую крайне редко. Зато его использует подсистема создания процессов для внутренних целей.

Как уже было сказано, Capability — уникальная в пределах системы сущность, которая обычно ссылается на какой-то объект, реализованный сервисом. Сервис же CAP как раз и выделяет данные сущности и освобождает их.

Сервис LOG используется низкоуровневыми системными компонентами (такими как процесс init) для вывода отладочной печати.

Genode имеет древовидную (и рекурсивную) структуру, а каждый процесс видит только свое пространство имен, взаимодействует с остальными процессами посредством объявления или запроса сервиса и осуществляет полный контроль над своими потомками. Поэтому настройка самого первого процесса, init, позволяет задавать дальнейшую политику взаимодействия процессов.

Иерархическая структура систем на основе Genode

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

В Genode также предоставлен и графический сервер — Nitpicker. Данный сервер делает с традиционными графическими серверами (такими как X.Org) то же, что гипервизоры делают с традиционными ОС — виртуализирует пользовательский ввод и вывод на фреймбуфер таким образом, что пользователь может выполнять несколько оконных систем одновременно на одном и том же экране, изолируя каждую систему от других. Nitpicker также призван решить проблему безопасности назначения меток отдельным частям экрана (что позволяет его использовать в MLS-системах) и спроектирован с учетом устойчивости к DoS-атакам. При всем при том размер данного графического сервера крайне мал — всего около 1500 строк кода, в то время как у того же X.Org их более 80 тысяч.

Демонстрационный образ Genode — главный экранНа Genode портирован и Qt-браузер Arora на движке WebKitСтандартный тест OpenGL в GenodeОдновременный запуск браузера и паравиртуализированного Linux поверх Genode

seL4

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

  • новая модель управления ресурсами, расширяющая возможности их изоляции;
  • полный анализ таймингов, в частности задержек прерываний. Это делает его единственным ядром защищенного режима, которое действительно гарантирует поддержку жесткого реального времени;
  • в плане быстродействия IPC — это ядро если не впереди планеты всей, то, во всяком случае, впереди всех остальных ядер L4.

SeL4 поддерживает как x86, так и ARM, но формально верифицирован только ARM-вариант.

Для сборки чего-либо на основе Genode рекомендуется использовать их тулчейн. Поскольку существует великое множество дистрибутивов и, соответственно, примерно столько же вариантов связок GCC/binutils, адаптация кода под каждую связку представляется занятием крайне тяжелым и бессмысленным. Помимо этого, в отдельных тулчейнах, входящих в поставки некоторых дистрибутивов, используются специфические возможности для сборки низкоуровневого кода. Так, по умолчанию включена опция -fstack-protector, которую при сборке Genode-систем требуется отключать, что поддерживается отнюдь не всеми тулчейнами.

Но самая главная проблема стандартных тулчейнов — слишком плотная зависимость библиотек, входящих в их состав, от glibc. В случае сборки Genode-систем, в которых glibc отсутствует, использование данных библиотек приводит к специфическим проблемам, большинство из которых крайне сложно решить. К примеру, некоторые библиотеки используют сегментные регистры, которые присутствуют только в архитектуре x86. При попытке использования данных библиотек на других платформах приложение попросту падает. Разработчики Genode поэтому предоставили свой тулчейн, в котором они обходят данные проблемы с помощью определенных версий компилятора и сопутствующих утилит и специализированной их настройки, предотвращающей использование платформозависимых возможностей.

К сожалению, использование данного тулчейна не помогло решить всех проблем. В частности, скрипт сборки тулчейна зависим от библиотеки libc, присутствующей на хост-системе, поскольку заголовочные файлы стандартной библиотеки используются при сборке библиотек-хелперов для GCC. В Genode же используется libc, основанный на стандартной библиотеке C FreeBSD, что делает невозможным применение библиотек-хелперов GCC из-за различия в интерпретации некоторых низкоуровневых вещей. Еще одна проблема состояла в том, что разработчики не смогли найти пути для сборки тулчейна под платформу иную, чем используется на хостовой машине.

С появлением версии Genode 11.11 разработчики смогли решить эту проблему путем полного отделения от хостовой системы, на которой он собирается. Наиболее важным шагом оказалось удаление зависимости GCC от glibc. Библиотека эта требуется для сборки библиотек-хелперов GCC. Разработчики вынесли некоторые функции в микрозаглушку, представляющую собой единственный заголовочный файл, содержащий все типы и функции, которые используются библиотеками-хелперами GCC. Помимо этого, разработчики удалили из тулчейна все GNU-специфичные проекты. Фактически получился тулчейн, не зависящий от ОС, который, в отличие от других аналогичных, поддерживает и C++.

Помимо тулчейна, в фреймворке есть еще и своя система сборки. Данная система сборки предусматривает использование отдельного, внешнего каталога. Это позволяет ей, во-первых, не трогать каталог с исходным кодом, а во-вторых, иметь несколько различных каталогов для разных аппаратных платформ.

После создания каталога сборки с помощью create_builddir в данном каталоге будет находиться файл Makefile (который на самом деле является симлинком к tool/builddir/build.mk и не предназначен для редактирования, поскольку make — всего-навсего фронтенд к собственной системе сборки) и каталог etc/, в котором, как правило, находится единственный файл — build.conf. Данный файл определяет, какие части дерева исходного кода Genode будут использоваться в процессе сборки. Части эти называются «репозиториями».

Концепция репозиториев позволяет четко разделять исходный код на различные подсистемы. Так, платформозависимый код для каждой платформы находится в каталоге base-<имя платформы>. Кроме того, на репозитории делятся также различные слои абстракции и всяческие особенности. Makefile определяет набор репозиториев, участвующих в сборке. Система сборки создает оверлей, объединяющий все каталоги, перечисленные в соответствующем объявлении, в единое логическое дерево исходного кода. Изменение списка репозиториев приводит, соответственно, к изменению «точки зрения» системы сборки.

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

Одной из отличительных черт фреймворка Genode является его кросс-ядерность. Различные ядра, однако, исповедуют разные подходы к конфигурированию, развертыванию и загрузке системы. Для использования конкретного ядра, следовательно, необходимо знать о его механизмах загрузки и о том, какие утилиты требуются для его начальной настройки. Для облегчения портирования между ядрами фреймворк поставляется со средствами, которые должны помочь избежать перечисленного. К числу таких средств относятся и Run-скрипты.

Run-скрипт предназначен для цельного описания конкретной системы вне зависимости от использованного ядра. Созданный скрипт может быть использован для интеграции и тестирования собираемой системы напрямую из каталога сборки. Рассмотрим простейший случай его использования:

  1. Сборка компонентов системы.
  2. Создание boot-каталога. По завершении работы скрипта в нем должны находиться все компоненты конечной системы.
  3. Затем в каталог копируется файл конфигурации процесса init.
  4. Создание загрузочного образа. На этом шаге происходит копирование заданного списка файлов из каталога bin/ в boot-каталог и выполнение платформозависимых операций для преобразования содержимого этого каталога в загружаемую форму, которая может быть как ELF-, так и ISO-образом.
  5. Выполнение загрузочного образа. В зависимости от платформы может использоваться какой-либо эмулятор — чаще всего QEMU. В Linux, однако, происходит выполнение ELF-файла.

Процедура сборки и развертывания систем на базе Genode, таким образом, получается крайне настраиваемой и гибкой.

Подведем итоги нашего краткого обзора базовых особенностей фреймворка. Genode на данном этапе развития более всего подходит для построения Embedded-систем — и то из-за отсутствия драйверов это может быть проблематичным и невыгодным. Попытка создать на основе этого фреймворка ОС общего назначения, которую разработчики сейчас декларируют в качестве основной цели, кажется заведомо провальной по одной простой причине: система может быть сколь угодно замечательной, однако без приложений грош ей цена. Портирование же приложений из существующих систем выглядит очень сложной операцией ввиду существенных различий в API. Есть более реальный вариант применения — использовать фреймворк в качестве базы для создания гипервизора, что явно противоречит указанной цели, поскольку гипервизор не является системой общего назначения.

Однако сама концепция данного фреймворка выглядит привлекательной. И если ты интересуешься альтернативными путями развития ОС и тебе надоело засилье гибридных ядер, имеет смысл взглянуть в эту сторону.

Проект Genode опубликовал выпуск ОС общего назначения Sculpt 19.07

Разработчики открытой микроядерной операционной системы Genode OS Frameworkсформировали выпуск операционной системы Sculpt 19.07. В рамках проекта Sculpt на базе технологий Genode развивается операционная система общего назначения, которая сможет быть использована обычными пользователями для выполнения повседневных задач. Исходные тексты проекта распространяются под лицензией AGPLv3. Для загрузки предлагается LiveUSB-образ, размером 24 Мб. Поддерживается работа на системах с процессорами и графической подсистемой Intel с включенными расширениями VT-d и VT-x.

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

В любой момент пользователь может переключиться в консольный режим управления, который предоставляет большую гибкость в управлении. Традиционный рабочий стол может быть получен при помощи запуска дистрибутива TinyCore Linux в виртуальной машине с Linux. В данном окружении доступны браузеры Firefox и Aurora, текстовый редактор на базе Qt и различные приложения. Для запуска утилит командной строки предлагается окружение noux.

Новый выпуск примечателен реализацией поддержки буфера обмена для копирования и вставки текста между терминалами, графическими приложениями на базе Qt5 и виртуальными машинами. Также проведена работа по увеличению производительности и повышению отзывчивости интерфейса. Задействованы улучшения, представленные в майском обновлении платформы
Genode, такие как независимый от ядра интерфейс виртуализации, поддержка архитектуры AARCH64, переход на использование по умолчанию стандарта C++17, новый инструментарий на базе GCC 8.3 и обновлённый runtime на основе libc из FreeBSD 12.

Напомним, что Genode предоставляет унифицированную инфраструктуру для создания пользовательских приложений, работающих поверх ядра Linux (32 и 64 бит) или микроядер NOVA (x86 с виртуализацией), seL4 (x86_32, x86_64, ARM), Muen (x86_64), Fiasco.OC (x86_32, x86_64, ARM), L4ka::Pistachio (IA32, PowerPC), OKL4, L4/Fiasco (IA32, AMD64, ARM) и выполняющегося напрямую ядра для платформ ARM и RISC-V. Входящее в состав паравиртуализированное Linux-ядро L4Linux, работающее поверх микроядра Fiasco.OC, позволяет выполнять в Genode обычные Linux программы. Ядро L4Linux не работает с оборудованием напрямую, а использует сервисы Genode через набор виртуальных драйверов.

Для Genode осуществлено портирование различных Linux и BSD компонентов, обеспечена поддержка Gallium3D, осуществлена интеграция Qt, GCC и WebKit, реализована возможность организации гибридных Linux/Genode программных окружений. Подготовлен порт VirtualBox, работающий поверх микроядра NOVA. Большое число приложений адаптировано для запуска напрямую поверх микроядра и окружения Noux, обеспечивающего виртуализацию на уровне ОС. Для запуска не портированных программ предусмотрена возможность задействования механизма создания виртуальных окружений уровня отдельных приложений, позволяющих запускать программы в виртуальном Linux-окружении с использованием паравиртуализации.

Источник: opennet.ru

ФРАГМЕНТИРОВАННАЯ СЕТЕВАЯ ПОДСИСТЕМА МИКРОЯДЕРНОГО ОКРУЖЕНИЯ С ПОДДЕРЖКОЙ ФИЛЬТРАЦИИ ТРАФИКА | Будкина

ФРАГМЕНТИРОВАННАЯ СЕТЕВАЯ ПОДСИСТЕМА МИКРОЯДЕРНОГО ОКРУЖЕНИЯ С ПОДДЕРЖКОЙ ФИЛЬТРАЦИИ ТРАФИКА

Анна Юрьевна Будкина, Василий Андреевич Сартаков

Аннотация

В микроядерной операционной системе работа стека протоколов TCP/IP вынесена в пространство пользователя, что требует разработки распределенной сетевой инфраструктуры в рамках одной программной среды. Ее функциями являются организация совместного взаимодействия компонентов стека с различными процессами, а также организация механизмов фильтрации и маршрутизации внутреннего сетевого трафика. Использование архитектурных подходов, применимых в монолитно-модульных системах, невозможно, так как сетевой стек не является общедоступным компонентом ядра, как следствие, для взаимодействия всех сетевых компонент необходимо разрабатывать специальную, адаптированную под микроядерную среду, архитектуру сетевой подсистемы. В рамках данной работы рассмотрены основные концепции построения сетевой подсистемы в микроядерных окружениях, предложена собственная архитектура сетевой подсистемы с поддержкой фильтрации трафика, а также разработано на ее основе высокопроизводительное хранилище «ключ-значение».

Ключевые слова

Микродерное окружение; сетевая подсистема; фильтрация трафика

Литература

Butler W Lampson and Howard E Sturgis. Reflections on an operating system design. Communications of

the ACM, 19(5):251–265, 1976.

Василий Сартаков and Александр Тарасиков. Анализ производительности сетевой подсистемы

микроядерного окружения genode. In Материалы Международной научно-практической

конференции Инструменты И Методы Аанализа Программ, pages 146–157, 2013.

Genode Labs GmbH. Genode operating system framework.

Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter,

Timothy Roscoe, Adrian Schüpbach, and Akhilesh Singhania. The multikernel: a new os architecture for

scalable multicore systems. In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems

principles, pages 29–44. ACM, 2009.

Tomas Hruby, Dirk Vogt, Herbert Bos, and Andrew S. Tanenbaum. Keep net working — on a dependable

and fast networking stack. In In Dependable Systems and Networks, pages 1–12. IEEE, 2012.

Василий Сартаков and Николай Голиков. Подходы к фрагментации системы паравиртуализации.

pages 184–190, 2014.

Проект Genode опубликовал выпуск ОС общего назначения Sculpt 20.02

Разработчики открытой микроядерной операционной системы Genode OS Framework сформировали выпуск операционной системы Sculpt 20.02. В рамках проекта Sculpt на базе технологий Genode развивается операционная система общего назначения, которая сможет быть использована обычными пользователями для выполнения повседневных задач. Исходные тексты проекта распространяются под лицензией AGPLv3. Для загрузки предлагается LiveUSB-образ, размером 26 Мб. Поддерживается работа на системах с процессорами и графической подсистемой Intel с включенными расширениями VT-d и VT-x.

Новый выпуск примечателен добавлением работающего в графическом режиме файлового менеджера, переработкой интерактивного интерфейса для администрирования (редактор параметров системы), поддержкой виртуальных рабочих столов, оптимизацией производительности монитора виртуальных машин (на базе VirtualBox). Обновлены утилиты для мониторинга работы системы, Unix runtime и компоненты GUI. В выпуске также задействованы улучшения, представленные в февральском обновлении платформы Genode, такие как поддержка 64-разрядных ARM-процессоров i.MX и портирование звукового драйвера из OpenBSD 6.6.

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

В любой момент пользователь может переключиться в консольный режим управления, который предоставляет большую гибкость в управлении. Традиционный рабочий стол может быть получен при помощи запуска дистрибутива TinyCore Linux в виртуальной машине с Linux. В данном окружении доступны браузеры Firefox и Aurora, текстовый редактор на базе Qt и различные приложения. Для запуска утилит командной строки предлагается окружение noux.

Напомним, что Genode предоставляет унифицированную инфраструктуру для создания пользовательских приложений, работающих поверх ядра Linux (32 и 64 бит) или микроядер NOVA (x86 с виртуализацией), seL4 (x86_32, x86_64, ARM), Muen (x86_64), Fiasco.OC (x86_32, x86_64, ARM), L4ka::Pistachio (IA32, PowerPC), OKL4, L4/Fiasco (IA32, AMD64, ARM) и выполняющегося напрямую ядра для платформ ARM и RISC-V. Входящее в состав паравиртуализированное Linux-ядро L4Linux, работающее поверх микроядра Fiasco.OC, позволяет выполнять в Genode обычные Linux программы. Ядро L4Linux не работает с оборудованием напрямую, а использует сервисы Genode через набор виртуальных драйверов.

Для Genode осуществлено портирование различных Linux и BSD компонентов, обеспечена поддержка Gallium3D, осуществлена интеграция Qt, GCC и WebKit, реализована возможность организации гибридных Linux/Genode программных окружений. Подготовлен порт VirtualBox, работающий поверх микроядра NOVA. Большое число приложений адаптировано для запуска напрямую поверх микроядра и окружения Noux, обеспечивающего виртуализацию на уровне ОС. Для запуска не портированных программ предусмотрена возможность задействования механизма создания виртуальных окружений уровня отдельных приложений, позволяющих запускать программы в виртуальном Linux-окружении с использованием паравиртуализации.

Источник: https://www.opennet.ru/opennews/art.shtml?num=52528

Genode — каркас операционной системы Genode

Введение

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

ключевых слов

безопасность на основе возможностей , микроядро ,
принцип наименьших полномочий , песочница , виртуализация

Книги

Книга «Основы генода».
описывает фреймворк Genode OS в целостном и всестороннем
способ.Он дает читателю возможность досконально понять суть
архитектура, помогает разработчикам с объяснением
среда разработки и конфигурация системы, а также обеспечивает
загляните под капот каркаса. Кроме того, он содержит
спецификация программного интерфейса фреймворка.
Скачать как PDF или
Просмотр в Интернете …

Документ «Genode Platforms» дополняет книгу Genode Foundations
темы низкого уровня, связанные с оборудованием.Он в первую очередь предназначен для интеграторов.
и разработчики драйверов устройств.
Скачать как PDF

Genode OS Framework, выпуск 21.05
31 мая 2021 г.

Версия 21.05 представляет поддержку веб-камеры, имеет зашифрованное хранилище файлов.
для Sculpt OS и добавляет новые драйверы для SoC i.MX8 и Pine-A64.
Кроме того, он сопровождается новой цепочкой инструментов на основе GCC 10.
и новое руководство по разработке драйверов.

Лепить OS 21.03 загружается за 2,5 секунды
3 мая 2021 г.

Мы выпустили обновленное изображение Sculpt 21.03 с несколькими
настройки аппаратной совместимости и улучшения производительности.

Релиз ОС Sculpt 21.03
24 марта 2021 г.

Версия 21.03 операционной системы Sculpt делает систему устойчивой.
против классов сбоев драйверов, добавляет настраиваемые приоритеты в реальном времени,
и вводит интерфейсы для захвата экрана и внедрения пользовательских событий.

Genode OS Framework, выпуск 21.02
25 февраля 2021 г.

Основными особенностями версии 21.02 являются добавление VirtualBox 6,
подключение мобильных данных через LTE, подключаемые сетевые драйверы, начальное
поддержка платы Pine-A64-LTS и возобновление работы над RISC-V.

Дорожная карта на 2021 год
15 янв.2021 г.

В 2021 году мы планируем перенести Genode на Pinephone, продвигая
Поддержка графических процессоров и сосредоточение внимания на рабочих процессах разработки.

Genode OS Framework, выпуск 20.11
27 ноя.2020

Genode 20.11 переносит Sculpt OS на 64-битное оборудование ARM, вводит динамические
Балансировка загрузки ЦП и возможность многоядерной виртуализации на ARM. Водитель,
выпуск улучшает звук на оборудовании ПК и добавляет поддержку сети VirtIO.

Подробнее …

Genode — Общий обзор

Большинство ядер сегодняшних операционных систем, например ядро ​​Linux, являются
очень сложные части программного обеспечения, которые содержат все необходимое для управления
ресурсы (например,g., память), доступ к оборудованию, сохранение информации в файле
системы, обрабатывать сетевые пакеты и управлять пользовательскими процессами.
Следовательно, такое ядро ​​требует привилегии управлять всем
машина. Левая часть рисунка иллюстрирует такую ​​монолитную операционную систему.
ядро.

Высокие функциональные требования и широкий спектр существующего оборудования
заставляет такое ядро ​​расти огромными. Пользователи ожидают другую сеть
поддерживаемые карты, разные файловые системы, широкий спектр сетей
протоколы и многое другое.Следовательно, типичное ядро ​​Linux содержит
намного больше чем 500 000 строк кода.
В системе такого масштаба невозможно полностью избежать ошибок и утечек безопасности.
Код ядра, подверженный ошибкам, может нарушить правильную работу всей системы.
и, таким образом, может повлечь за собой фатальные последствия. Как показано в правой части рисунка,
Неисправный сетевой драйвер может испортить всю операционную систему.

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

Системы на основе микроядра используют эти методы не только для пользовательских приложений.
но также для драйверов устройств, файловых систем и других типичных служб уровня ядра.Следовательно, влияние компонента, подверженного ошибкам, ограничено локально.
Микроядро отнимает все ненужные привилегии у каждого компонента и тем самым сжимает
общая сложность кода, работающего в привилегированном режиме, на порядок по сравнению с
монолитное ядро.
Например, типичное микроядро семейства L4 реализовано менее чем в 20 000 строк кода.
Как показано на рисунке справа, все компоненты защищены друг от друга адресными пространствами.Таким образом, один компонент не может проверять или повреждать другие компоненты без надлежащей авторизации.
Связь между компонентами может происходить только с использованием механизмов связи.
предоставляется микроядром.
Если один из компонентов системы будет поврежден ошибкой или атакой,
неисправность локально ограничена неисправным компонентом.
Кроме того, микроядро обеспечивает планирование времени ЦП и может предоставлять
гарантированное время обработки пользовательских процессов. Нет лишенных привилегий
компонент системы способен нарушить такие гарантии.Следовательно, микроядро может безопасно выполнять чувствительные приложения,
непривилегированные системные службы и большие ненадежные приложения бок о бок
одна машина.

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

Напротив, Genode расширяет идею микроядра по декомпозиции операционной системы.
системного кода к идее декомпозиции системной политики путем наложения
строгая организационная структура каждой части системы.

Для понимания архитектуры Genode полезно провести аналогию с
внутренняя деятельность компании.
Ключом к успеху компании при росте числа сотрудников является ее
организационная структура. То же самое касается масштабируемости операционной
система с учетом богатства ее функциональных возможностей.
Чтобы поддерживать управляемость большого числа сотрудников, успешные компании внедряют политику в
распределенный способ. Вместо того, чтобы один человек диктовал всем задачи напрямую,
политические решения принимаются и применяются иерархически.В основе архитектуры Genode OS лежит организационная структура, которая
слабо напоминает структуру иерархически организованной компании.

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

Для применения организационной структуры Genode к
реальный сценарий относится к Стефану Калковски
дипломная работа.

При создании новому процессу разрешено связываться только со своим непосредственным родителем.
В остальном он полностью изолирован от остальной системы.
Родитель может выборочно назначать права на общение, чтобы ребенок мог
общаться с внешней подсистемой ребенка.

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

Поскольку сложность программного обеспечения коррелирует с вероятностью ошибок, наличие
чувствительный к безопасности функционал, зависящий от ПО высокой сложности.
рискованно.Термин trust_computing_base (TCB) был придуман для описания
объем кода, который нельзя скомпрометировать для обеспечения безопасности.
Помимо кода чувствительного приложения, TCB включает в себя каждый
компонент системы, который прямо или косвенно контролирует выполнение
приложение (влияющее на доступность и целостность) или которое может получить доступ
обрабатываемая информация (влияющая на конфиденциальность и целостность).
На монолитных ОС сложность TCB можно рассматривать как глобальную
свойство системы, потому что в нем преобладает сложность ядра и
привилегированные процессы, которые, по сути, одинаковы для всех одновременно
исполненное приложение.В Genode количество критического для безопасности кода может сильно различаться для каждого приложения.
в зависимости от положения приложения в дереве процессов Genode и
используемые сервисы.
Чтобы проиллюстрировать разницу, приложение для подписи электронной почты, выполненное на
Linux должен полагаться на сложность TCB в миллионы строк кода (LOC).
Однако большая часть кода не обеспечивает функциональных возможностей, необходимых для выполнения
фактическая криптографическая функция подписывающего приложения.
Тем не менее, учетные данные пользователя подвергаются чрезмерно сложному TCB, включая
сетевой стек, драйверы устройств и файловые системы.Напротив, Genode позволяет выполнять криптографическую функцию.
с конкретным TCB, который состоит только из компонентов, необходимых для
выполнять функцию подписи. Что касается заявки на подпись, УТС
содержат микроядро (20 KLOC), фреймворк Genode OS (10 KLOC),
минимально сложный графический интерфейс (2 KLOC) и приложение для подписи (15 KLOC).
Сумма этих компонентов составляет менее 50 000 LOC.

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

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

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

Поскольку операционные системы без приложений практически бесполезны, совместимость
к существующим приложениям является серьезной проблемой.
В прошлом опасения по поводу потери совместимости часто предотвращали наследие дизайна.
подлежат утилизации. Современные технологии виртуализации — ключ к преодолению этого
проблема.В предварительном исследовании версия ядра Linux на уровне пользователя (L4Linux) была
успешно перенесен на Genode OS Framework, работающую на ядре L4.
Это исследование предполагает, что Genode в сочетании с соответствующим ядром или гипервизором
подходит как платформа для размещения виртуальных машин.
Как показано на рисунке, с организационной точки зрения виртуальная машина
реализован как листовой узел в дереве процессов Genode.
Genode не только упрощает использование виртуальных машин для приложений.
совместимость, но также и повторное использование существующих драйверов устройств.Малыш смокинг в фигуре
символизирует исходный драйвер устройства Linux, выполняемый в драйвере устройства
среда.

Подробности в архитектурной документации …

Genode — О Genode

Genode OS Framework — это набор инструментов для создания высоконадежных
специализированные операционные системы. Масштабируется от встроенных систем с помощью
всего 4 МБ памяти для высокодинамичных рабочих нагрузок общего назначения.

Genode основан на рекурсивной системной структуре.Каждая программа работает в
выделенная песочница и получает только те права доступа и ресурсы, которые
необходимы для его конкретной цели. Программы могут создавать и управлять
суб-песочницы из собственных ресурсов, тем самым формируя иерархии, в которых
политики могут применяться на каждом уровне. Фреймворк предоставляет механизмы для
пусть программы общаются друг с другом и обмениваются своими ресурсами, но только
в строго определенных манерах. Благодаря такому жесткому режиму поверхность атаки
количество критически важных для безопасности функций может быть уменьшено на порядки по сравнению с
к современным операционным системам.

Фреймворк согласовывает принципы построения L4 с философией Unix.
В соответствии с философией Unix Genode — это набор небольших строительных блоков,
из которых могут быть составлены сложные системы. Но в отличие от Unix, эти
строительные блоки включают не только приложения, но и все классические ОС
функции, включая ядра, драйверы устройств, файловые системы и протокол
стеки.

  • Архитектуры ЦП: x86 (32 и 64 бит), ARM (32 и 64 бит), RISC-V

  • Ядра: большинство членов семейства L4
    (НОВАЯ ЗВЕЗДА,
    seL4,
    Фиаско.OC,
    ОКЛ4 v2.1,
    L4ka :: Фисташка,
    L4 / Fiasco),
    Linux и кастомное ядро.

  • Виртуализация: VirtualBox (на NOVA), настраиваемый монитор виртуальных машин.
    для ARM и настраиваемая среда выполнения для программного обеспечения Unix

  • Более 100 готовых к использованию
    составные части

Genode имеет открытый исходный код и коммерчески поддерживается
Genode Labs.

Дорожная карта

Направление, в котором сейчас развивается проект

Вызовы

Коллекция проектных идей, дающих представление о возможных будущих направлениях

Публикации

Публикации, связанные с Genode

Лицензирование

Открытый исходный код и коммерческое лицензирование

Скриншоты

Скриншоты сценариев системы на основе Genode

Genode — Sculpt OS версии 21.03

(опубликовано в марте 2021 г.)

Sculpt — это ОС общего назначения с открытым исходным кодом.
Он сочетает в себе
архитектура микроядра , безопасность на основе возможностей ,
изолированных драйверов устройств и виртуальных машин в новой операционной системе
система для товарной компьютерной техники.
Sculpt используется как повседневная ОС
Разработчики Genode.

Административный пользовательский интерфейс («Leitzentrale»):
Панель вверху дает доступ к просмотру компонентов в реальном времени (показано),
файловый браузер и подключение к сети.Интерактивный график в центре представляет компоненты системы с
их отношения и позволяет пользователю интерактивно добавлять / удалять
компоненты, предлагаемые федеративными поставщиками программного обеспечения.

Подготовка загрузочной USB-флешки на Unix

В системах на базе Unix используйте команду dd для копирования образа диска на USB-накопитель:

 sudo dd if = sculpt-21-03b.img of = / dev / sdx bs = 1M conv = fsync
 

Здесь / dev / sdx относится к узлу устройства на USB-накопителе.Чтобы определить
вы можете проверить вывод dmesg после его подключения.

Подготовка загрузочной флешки на MS Windows

Вариант 1: Rufus
  1. Загрузите и запустите Rufus (доступен альтернативный переносимый исполняемый файл)

  2. Подключите флэш-накопитель USB и выберите его в разделе «Устройство».

  3. Загрузите образ Sculpt OS, указанный выше, и выберите его в разделе «Выбор загрузки».

  4. Запишите на USB-накопитель, нажав «СТАРТ»

Вариант 2: Win32 Disk Imager
  1. Загрузите, установите и запустите Win32 Disk Imager

  2. Загрузите образ Sculpt OS, указанный выше, и выберите в разделе «Файл изображения»

  3. Подключите флэш-накопитель USB и выберите его в разделе «Устройство».

  4. Запишите на USB-накопитель, нажав «Записать».

Запуск Sculpt как устройства VirtualBox

  1. Загрузите
    скульпт-21-03б.яйцеклетка
    (подпись)
    прибор, содержащий изображение Sculpt 21.03 вместе с известным в работе
    Конфигурация VirtualBox.

    SHA256 609046fb1c23ee4ea15e618168d21c83479caed5a64ccc879b73558207a50087

  2. Запустите VirtualBox и импортируйте файл OVA как устройство.

  3. После загрузки вам будут представлены два диска, загрузочный диск и
    пустой диск как площадка. Вы можете отформатировать последний, используя Sculpt’s
    пользовательский интерфейс.

Запуск Sculpt 21.03 в Qemu

Вы можете взять следующую командную строку в качестве отправной точки для экспериментов
с помощью Sculpt 21.03 на эмуляторе Qemu.

 qemu-system-x86_64 -display sdl -cpu core2duo -machine q35 \
                    -m 1024 -формат диска = raw, file = sculpt-21-03b.img
 

Предыдущие версии

Все предыдущие выпуски доступны на специальном
Скульптуйте страницу архива ОС.

Genode — Скриншоты

Лепить версия 20.08, выпущенный в сентябре 2020 года.
центральным элементом его нового административного пользовательского интерфейса является просмотр в реальном времени
работающая система, которая может быть изменена в интерактивном режиме. На заднем фоне,
прослеживается текущий состав системы.

Sculpt as a Community Experience (CE), выпущенный в марте 2019 года.
В этой версии появился интерактивный пользовательский интерфейс для подключения
новые компоненты с системными службами и другими компонентами.

Рабочий стол Sculpt OS (TC).Firefox работает на TinyCore Linux внутри виртуального
машина.
Текстовый редактор на основе Qt позволяет пользователю редактировать конфигурации, например
сетевая маршрутизация на уровне пользователя — живая. В правом верхнем углу текущий процессор.
отображается нагрузка. В окне терминала ниже размещен легкий noux
среда выполнения для выполнения программного обеспечения Unix на основе командной строки.

Нажатие кнопки активирует оверлей Leitzentrale, который расширяет возможности
пользователю проверять и изменять (лепить) практически все аспекты бега
система на лету.

Настольный компьютер на основе Genode / NOVA, используемый для повседневных вычислений в Genode Labs
в 2015 году.
VirtualBox запускает Xubuntu, который в настоящее время выполняет систему сборки Genode.
и Firefox.
Интерфейс командной строки в левом верхнем углу позволяет пользователю управлять
Подсистемы генода. Внизу слева экземпляр noux действует как
мост между гостевой ОС Linux и миром Genode. Под поверхностью,
работает более 40 низкоуровневых компонентов, таких как драйверы устройств
все вместе.Каждый из них заключен в выделенную песочницу.

VirtualBox работает помимо Seoul VMM (монитор виртуальных машин) поверх
Genode / NOVA. Сеул использует Tinycore Linux в качестве гостевой ОС. VirtualBox выполняет
MS Windows 7. Оба VMM используют аппаратную виртуализацию (VT-X), но
простые программы пользовательского уровня без особых привилегий.

Qt версии 5.1 изначально работает на Genode 13.08.

Genode — О Genode

Genode OS Framework — это набор инструментов для создания высоконадежных
специализированные операционные системы.Масштабируется от встроенных систем с помощью
всего 4 МБ памяти для высокодинамичных рабочих нагрузок общего назначения.

Genode основан на рекурсивной системной структуре. Каждая программа работает в
выделенная песочница и получает только те права доступа и ресурсы, которые
необходимы для его конкретной цели. Программы могут создавать и управлять
суб-песочницы из собственных ресурсов, тем самым формируя иерархии, в которых
политики могут применяться на каждом уровне. Фреймворк предоставляет механизмы для
пусть программы общаются друг с другом и обмениваются своими ресурсами, но только
в строго определенных манерах.Благодаря такому жесткому режиму поверхность атаки
количество критически важных для безопасности функций может быть уменьшено на порядки по сравнению с
к современным операционным системам.

Фреймворк согласовывает принципы построения L4 с философией Unix.
В соответствии с философией Unix Genode — это набор небольших строительных блоков,
из которых могут быть составлены сложные системы. Но в отличие от Unix, эти
строительные блоки включают не только приложения, но и все классические ОС
функции, включая ядра, драйверы устройств, файловые системы и протокол
стеки.

  • Архитектуры ЦП: x86 (32 и 64 бит), ARM (32 и 64 бит), RISC-V

  • Ядра: большинство членов семейства L4
    (НОВАЯ ЗВЕЗДА,
    seL4,
    Fiasco.OC,
    ОКЛ4 v2.1,
    L4ka :: Фисташка,
    L4 / Fiasco),
    Linux и кастомное ядро.

  • Виртуализация: VirtualBox (на NOVA), настраиваемый монитор виртуальных машин.
    для ARM и настраиваемая среда выполнения для программного обеспечения Unix

  • Более 100 готовых к использованию
    составные части

Genode имеет открытый исходный код и коммерчески поддерживается
Genode Labs.

Дорожная карта

Направление, в котором сейчас развивается проект

Вызовы

Коллекция проектных идей, дающих представление о возможных будущих направлениях

Публикации

Публикации, связанные с Genode

Лицензирование

Открытый исходный код и коммерческое лицензирование

Скриншоты

Скриншоты сценариев системы на основе Genode

Genode Labs — Продукты и технологии

Технологии, управляемые или используемые Genode Labs

Genode OS Framework

Genode OS Framework — это конструктор для создания специализированных
операционные системы из небольших строительных блоков, включая различные ядра,
драйверы устройств, стеки протоколов и приложения.

Мы понимаем сложность кода и политики как наиболее фундаментальные
проблема безопасности, характерная для современных операционных систем общего назначения. Из-за
высокие функциональные требования и динамические рабочие нагрузки, однако эта сложность не может
избегать. Но это можно организовать. Genode — это новая архитектура ОС,
способны справиться со сложностью, применяя строгую организационную структуру ко всем
программные компоненты, включая драйверы устройств, системные службы и
Приложения.

Книга «Основы генода».
описывает Genode OS Framework в целостном и всеобъемлющем
способ. Он дает читателю возможность досконально понять суть
архитектура, помогает разработчикам с объяснением
среда разработки и конфигурация системы, а также обеспечивает
загляните под капот каркаса. Кроме того, он содержит
спецификация программного интерфейса фреймворка.
Скачать книгу…

Мы ведем Genode как проект с открытым исходным кодом через официальный сайт проекта.
genode.org. Там вы можете найти подробную информацию о
наша дорожная карта, архитектурная и техническая документация и многое другое
ресурсы вокруг проекта.

ARM TrustZone

ARM TrustZone позволяет использовать ЦП современных платформ на базе ARM в качестве
свободно программируемый доверенный платформенный модуль. Выполнив Genode в
безопасный мир TrustZone, функции безопасности могут быть реализованы как
компоненты поверх масштабируемой и динамической операционной системы.

Виртуализация ARM

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

x86 Виртуализация

Благодаря интеграции VirtualBox как компонента в системы на основе Genode,
полнофункциональные стандартные операционные системы, такие как ОС Windows или
GNU / Linux можно комбинировать с чувствительными системными функциями, сохраняя при этом
эти функции защищены даже в случае взлома гостевой ОС.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *