Адаптивная среда домена для операционных систем - Adaptive Domain Environment for Operating Systems
Оригинальный автор (ы) | Карим Ягмур, Филипп Герум |
---|---|
изначальный выпуск | 3 июня 2002 г. |
Операционная система | Linux |
Платформа | IA-32 |
Доступно в | английский |
Тип | Наноядро аппаратная абстракция слой (HAL ), гипервизор |
Лицензия | GPL |
Интернет сайт | www |
Adeos (Адаптивная среда домена для операционных систем) это наноядро аппаратная абстракция слой (HAL ), или же гипервизор, который действует между компьютерное железо и Операционная система (ОС), которая на нем работает.[1][2] Он отличается от других наноядер тем, что является не только слоем низкого уровня для внешнего ядра. Вместо этого он предназначен для запуска нескольких ядер вместе, что делает его похожим на полная виртуализация технологии. это бесплатное программное обеспечение с открытым исходным кодом выпущен под Стандартная общественная лицензия GNU (GPL).
Adeos предоставляет гибкую среду для совместного использования аппаратных ресурсов между несколькими операционными системами или между несколькими экземплярами одной ОС, тем самым позволяя одновременно существовать нескольким приоритетным доменам на одном и том же оборудовании.
Adeos был успешно вставлен под Ядро Linux, открывая ряд возможностей, таких как симметричная многопроцессорная обработка (SMP) кластеризация, более эффективная виртуализация, отладка ядра без исправлений и вычисления в реальном времени (RT) системы для Linux.
Что необычно среди HAL, Adeos можно загрузить как Linux загружаемый модуль ядра чтобы позволить другой ОС работать вместе с ним. Adeos разрабатывался в контексте интерфейса приложения реального времени (RTAI ), чтобы сделать его модульным и отделить HAL от ядра реального времени.
Предыдущая работа
Существуют две категории методов, позволяющих запускать несколько операционных систем в одной системе. Первый основан на моделировании и предоставляет виртуальную среду, в которой можно запускать дополнительные операционные системы. Второй предполагает использование уровня наноядра для обеспечения совместного использования оборудования.[1]
В категории моделирования есть такие инструменты, как Xen, VMware, Plex86, VirtualPC и SimOS. Существует также Виртуальная машина на основе ядра (KVM), который больше похож на Adeos[нужна цитата ], но не RT и требует специальной аппаратной поддержки виртуализации. Эти методы используются для пользователей, которые хотят запускать приложения, не связанные с их базовой ОС, они не предоставляют пользователю контроль над базовой ОС. Моделирование никогда не предназначалось для использования в производственной среде. В категории наноядра есть такие инструменты, как SPACE, ядро кеширования и Exokernel. Все это предполагает создание миниатюрных средств управления оборудованием, которые впоследствии можно будет использовать для создания производственных операционных систем.[нужна цитата ]. Проблема этого подхода в том, что он не решает проблему существующих операционных систем и их пользовательской базы.[1]
Adeos удовлетворяет требованиям обеих категорий приложений, предоставляя простой уровень, который вставляется в немодифицированную работающую ОС, а затем предоставляет необходимые примитивы и механизмы, позволяющие нескольким ОС совместно использовать одну и ту же аппаратную среду. Adeos не пытается наложить какие-либо ограничения на использование оборудования различными ОС больше, чем это необходимо для собственной работы Adeos. Вместо этого такое ограничение должно быть наложено Системный администратор или системный программист. Это подвергает систему неправильному управлению, но идея Adeos состоит в том, чтобы вернуть контроль системным администраторам и программистам.[1]
Архитектура
Adeos реализует очередь из сигналы. Каждый раз, когда периферийное устройство отправляет сигнал, различные операционные системы, работающие на машине, по очереди пробуждаются и должны решить, будут ли они принимать (обрабатывать), игнорировать, отбрасывать или прекращать сигнал. Сигналы, которые не обрабатываются (или не отбрасываются) ОС, передаются следующей ОС в цепочке. Завершенные сигналы не передаются на более поздние стадии.[1]
Поскольку Adeos должен гарантировать равный и надежный доступ к оборудованию, он берет на себя управление некоторыми аппаратными командами, выдаваемыми разными ОС; но он также не должен слишком сильно мешать нормальному поведению различных ОС. Каждая ОС включена в домен, над которым она имеет полный контроль. Этот домен может включать частное адресное пространство и программные абстракции, такие как процессы, виртуальная память, файловые системы и т. Д. Adeos не пытается навязать какую-либо политику использования оборудования, кроме случаев, когда это необходимо для его работы. Задача определения политики возлагается на системного архитектора.[1]
Трубка прерывания Adeos
Adeos использует прерывать трубка для распространения прерываний по различным доменам, работающим на оборудовании. Поскольку некоторые домены могут предпочесть первыми получать аппаратные прерывания, Adeos предоставляет доменам механизм доступа к диспетчеризации приоритетных прерываний. Фактически, Adeos помещает обработчик прерывания запрашивающего домена и сопутствующие таблицы, которые можно назвать механизмом прерывания в терминологии SPACE, на первых этапах конвейера прерывания. Домены могут контролировать, принимают ли они прерывания, игнорируют, отклоняют или прекращают. Каждый из них имеет различный эффект и управляется по-разному.[1]
Принятие прерываний - нормальное состояние механизма прерывания домена. Когда Adeos встречает домен, который принимает прерывания, он вызывает свой обработчик прерывания после установки необходимой среды ЦП и содержимого стека для правильной работы обработчика прерываний. Затем ОС может решить выполнить любое количество операций, включая планирование задач. Как только ОС завершена, конвейер работает, как и планировалось, распространяя прерывания по конвейеру.[1]
Когда ОС в домене по какой-либо причине не хочет, чтобы ее прерывали, она просит Adeos приостановить этап, который его домен занимает в конвейере прерываний. Таким образом, прерывания не продвигаются дальше по конвейеру и останавливаются на этапе, занятом доменом. Когда ОС перестает работать, она просит Adeos установить конвейер, и после этого все прерывания, которые были остановлены на соответствующем этапе, следуют по своему маршруту к другим этапам конвейера.[1]
Когда домен отбрасывает прерывания, прерывание проходит через этап, занятый доменом, и переходит на другие этапы. Когда домен завершает прерывания, прерывания, которые завершаются им, не передаются на более поздние стадии. Отмена прерывания и завершение возможно только в том случае, если ОС в домене распознает Adeos.
Поскольку некоторые ОС не распознают Adeos, можно создать домен, который служит только обработчиком для этой ОС. Следовательно, в конвейере прерываний этот этап всегда предшествует этапу обрабатываемого домена и может предпринимать действия для этого домена с помощью Adeos, чтобы обеспечить ОС обрабатываемого домена иллюзией нормальной работы системы.
После прохождения Adeos по конвейеру он проверяет, все ли домены неактивны. Если это так, он затем вызывает свою бездействующую задачу. Эта задача остается активной до появления следующего прерывания. Если все домены не бездействуют, он восстанавливает процессор до состояния, в котором он находился до входа прерывания в конвейер, и выполнение продолжается с того места, где оно оставалось. Поскольку Adeos очень сильно зависит от оборудования, многие детали относятся к одной из его конкретных реализаций.[1]
Применимость
Совместное использование ресурсов операционной системы общего назначения
Совместное использование ресурсов операционной системы общего назначения является одной из основных целей Adeos, чтобы предоставить среду, которая позволяет нескольким операционным системам общего назначения совместно использовать одно и то же оборудование.[1]
Разработка операционной системы
Разработка ОС обычно - сложный процесс, который иногда требует дополнительного оборудования, такого как внутрисхемные эмуляторы для проверки оборудования, на котором работает ОС. Использование Adeos упрощает разработку ОС, поскольку любое нежелательное поведение может контролироваться соответствующим обработчиком домена. Он также может предоставить обработчик домена по умолчанию для разработки ОС, в рамках которого разработчики могут контролировать прямой доступ к оборудованию, которым они предназначены. Поскольку Adeos сам по себе является модулем ядра, такие обработчики доменов разработки могут быть разработаны независимо от Adeos.[1]
Отладчики ядра и средства проверки без исправлений
Adeos предоставляет возможность отладчикам и исследователям ядра взять под контроль Linux без изменения Linux. Как и в случае с другими доменами Adeos, эти средства будут загружаться как обычные модули ядра и после этого будут запрашивать домен без кольца у Adeos. Как только это будет сделано, они могут запросить приоритетную диспетчеризацию прерываний в конвейере прерываний. Следовательно, прежде чем Linux сможет обрабатывать какие-либо прерывания, они смогут перехватить эти прерывания и выполнить запрошенные задачи отладки. Это также можно распространить на профилировщики производительности и другие подобные инструменты разработки.[1]