Exokernel

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

Exokernel - это операционная система ядро ​​, разработанное MIT Parallel and Distributed Группа операционных систем, а также класс аналогичных операционных систем.

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

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

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

Содержание

  • 1 Мотивация
  • 2 Exokernels MIT
    • 2.1 Дизайн
    • 2.2 Приложения
  • 3 История
  • 4 См. Также
  • 5 Ссылки
  • 6 Библиография
  • 7 Внешние ссылки

Мотивация

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

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

Экзоядра Массачусетского технологического института

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

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

Дизайн

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

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

Приложения

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

История

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

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

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

См. Также

Ссылки

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

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

  • Erlingsson, lfar; Кипарлис, Афанасиос, Микроядра, Корнелл, Степень, в которой простые и эффективные операции являются хорошим выбором при разработке интерфейса ядра.
  • Операционная система Exokernel, MIT. Экзоядро исследования.
  • Немезида, UK : Кембридж. Экзоядро исследования.
  • BareMetal OS, Return Infinity, заархивировано с оригинала 06.09.2014. Коммерческое экзоядро.
  • XOmB. Экзоядро исследования.
  • ExAmour, FR. GNU exokernel.
Последняя правка сделана 2021-05-19 09:48:34
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте