Exokernel - Exokernel - Wikipedia

Графический обзор Exokernel. Экзоядра намного меньше обычного ядра (монолитное ядро ). Они предоставляют более прямой доступ к оборудованию, тем самым удаляя большинство абстракций.

Exokernel является Операционная система ядро разработан Массачусетский технологический институт Группа параллельных и распределенных операционных систем,[1] а также класс аналогичных операционных систем.

Операционные системы обычно предоставляют приложениям аппаратные ресурсы через высокоуровневые абстракции такие как (виртуальные) файловые системы. Идея exokernels состоит в том, чтобы навязать разработчикам приложений как можно меньше абстракций, позволяя им принимать как можно больше решений об аппаратных абстракциях.[2] Экзоядра крошечные, так как функциональность ограничивается обеспечением защиты и мультиплексирование ресурсов, что значительно проще обычного микроядра 'реализация передачи сообщений и монолитные ядра 'реализация высокоуровневых абстракций.

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

Экзоядра можно рассматривать как приложение сквозной принцип к операционным системам, поскольку они не заставляют прикладную программу накладывать свои абстракции поверх других абстракций, которые были разработаны с учетом других требований. Например, в проекте MIT Exokernel Cheetah веб сервер магазины предварительно отформатированы протокол Интернета пакетов на диске, ядро ​​обеспечивает безопасный доступ к диску, предотвращая несанкционированное чтение и запись, но способ абстрагирования диска зависит от приложения или библиотек, которые оно использует.

Мотивация

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

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

Экзоядра MIT

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

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

Дизайн

Exokernel MIT управляет аппаратными ресурсами следующим образом:

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

Приложения

Доступные библиотечные операционные системы для Exokernel включают настраиваемую систему ExOS и эмулятор для BSD. В дополнение к этому, команда exokernel создала Cheetah веб сервер, который напрямую использует ядро.

История

Архитектура MINIX 3

Концепция экзоядра существует по крайней мере с 1994 года,[3] но по состоянию на 2010 год exokernels все еще находятся в стадии исследования и не использовались ни в каких основных коммерческих операционных системах.

Концепция действующей экзоядерной системы: Немезида, написано Кембриджский университет, Университет Глазго, Citrix Systems, а Шведский институт компьютерных наук. Массачусетский технологический институт также построил несколько систем на основе экзоядра, включая ExOS.

Смотрите также

Рекомендации

  1. ^ «Операционная система MIT Exokernel». pdos.csail.mit.edu. Получено 2018-01-25.
  2. ^ Энглер, Д. Р .; Kaashoek, M. F .; О'Тул-младший, Дж .; Энглер, Д. Р .; Kaashoek, M. F .; О'Тул-младший, Дж. (1995-12-03). «Exokernel: архитектура операционной системы для управления ресурсами на уровне приложений». Обзор операционных систем ACM SIGOPS. 29 (5): 251, 251–266, 266. Дои:10.1145/224056.224076. ISSN  0163-5980.
  3. ^ Энглер, Каашук и О’Тул, 1995 г..

Библиография

внешняя ссылка

  • Эрлингссон, Эльфар; Кипарлис, Афанасий, Микроядра, Корнелл, Степень, в которой простые и эффективные операции являются хорошим выбором при разработке интерфейса ядра.
  • Операционная система Exokernel, Массачусетский технологический институт. Исследовательское экзоядро.
  • Немезида, Великобритания: Кембридж. Исследовательское экзоядро.
  • BareMetal OS, Return Infinity, заархивировано из оригинал на 2014-09-06. Коммерческое экзоядро.
  • XOmB. Исследовательское экзоядро.
  • ExAmour, FR. В GNU экзоядро.