Adeos (Adaptive Domain Environment for Operating Systems)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:07, 28 июня 2016.
Adeos (Adaptive Domain Environment for Operating Systems)
Веб-сайт home.gna.org/adeos/

Adeos (англ. Adaptive Domain Environment for Operating Systems) - наноядерный слой аппаратных абстракций (hardware abstraction layer, HAL) или гипервизор, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. В отличие от других наноядер, Adeos позволяет запускать несколько ядер одновременно, что делает его похожим на средства виртуализации.

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

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

В отличие от HAL-ов, Adeos может быть загружен как модуль ядра Linux, позволяя другой операционной системе работать вместе с ним. По сути, Adeos был разработан в контексте интерфейса для приложений реального времени (Real-Time Application Interface) для его модуляризации и отделения HAL от ядра реального времени.

История

Есть 2 категории существующих решений по запуску нескольких операционных систем вместе. Первые основаны на симуляции и предоставляют виртуальную среду для запуска дополнительных операционных систем. Вторые используют слой наноядра для разделения аппаратного обеспечения.[1]

В первую категорию входят такие инструменты, как VMware, Plex86, VirtualPC и SimOS. Также есть KVM, более похожая на Adeos, но не являющаяся системой реального времени и требующая аппаратной поддержки виртуализации. Во вторую входят SPACE и Exokernel. Они предоставляют возможности по управлению аппаратным обеспечением, которые могут быть использованы для построения production-окружения.[1]

Adeos выполняет требования обоих категорий, предоставляя простой слой абстракций, который работает под немодифицированной ОС и тем самым предоставляет требуемые механизмы для запуска нескольких ОС на одном оборудовании. Adeos не добавляет никаких ограничений на использование оборудования различными ОС, кроме необходимых для его собственной работы. Вместо этого, ограничения могут быть наложены системным администратором или системным программистом. Это открывает возможность неправильного управления, но цель Adeos - дать полный контроль системным администраторам или программистам.[1]

Архитектура

Файл:AdeosArchitecture.png
Adeos Architecture.

Adeos реализует очередь сигналов. Каждый раз, когда периферия посылает сигнал, различная операционная система запускается и решает, принять игнорировать или завершить сигнал. Сигналы, не обработанные операционной системой передаются следующей ОС. Завершённые сигналы не проходят на следующие стадии.[1]

Adeos Interrupt Pipe

Файл:AdeosInterruptPipe.png
Adeos Interrupt Pipe.

Adeos использует очередь прерываний для их распространения через различные домены, запущенные на одном оборудовании. Adeos предоставляет механизм приоритетов для обработки прерываний различными доменами. В результате Adeos размещает обработчик прерывания запрашивающего домена и соответствующие таблицы на первых этапах конвейера обработки прерывания. Домены контролируют приём и завершение прерываний. Каждое из них имеет различный эффект и контролируется по-разному.[1]

Как только Adeos завершает процесс обработки прерывания, он проверяет, бездействуют ли все домены. Если это так, то он запускает собственную задачу бездействия, которая остаётся активной до следующего прерывания. Если есть действующий домен, Adeos восстанавливает состояние процессора до начала обработки прерывания и продолжает выполнение задачи с того же места.[1]

Применение

Разделение ресурсов для операционных систем

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

Для разработки операционных систем

Обычно, разработка ОС - сложный процесс, иногда требующий использования дополнительного оборудования, например, внутрисхемного эмулятора для отслеживания состояния компьютера, на котором эта ОС запущена. С использованием Adeos разработка ОС облегчается, так как любое поведение может быть проконтролировано соответствующим контролером домена. Adeos также предоставляет специальный домен для разработки ОС, под которым разработчик получает прямой доступ к необходимому оборудованию.[1]

Отладка ядра без патчей

Adeos предоставляет возможность отладчикам ядра контролировать Linux без его модификации. При этом Adeos перехватывает прерывания до того, как Linux их обрабатывает их, и запускает соответствующие отладочные задачи. Также это может применяться для профилирования производительности и для других средств разработки.[1]

Внешние ссылки

Источники

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 Adaptive Domain Environment for Operating Systems. www.opersys.com/ftp/pub/Adeos/adeos.pdf. Retrieved 2012-04-27