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

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

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

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

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

Мотивация [ править ]

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

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

Экзоядра MIT [ править ]

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

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

Дизайн [ править ]

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

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

Приложения [ править ]

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

История [ править ]

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

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

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

См. Также [ править ]

  • Гибридное ядро
  • Гипервизор
  • Ядро (информатика)
  • Микроядро
  • Монолитное ядро
  • Наноядро
  • Паравиртуализация
  • Ядро крупы
  • Операционная система с единым адресным пространством (SASOS)
  • Unikernel
  • Оголенный метал

Ссылки [ править ]

  1. ^ «Операционная система MIT Exokernel» . pdos.csail.mit.edu . Проверено 25 января 2018 .
  2. ^ Энглер, DR; Kaashoek, MF; О'Тул-младший, Дж .; Энглер, Д.Р .; Kaashoek, MF; О'Тул-младший, Дж. (1995-12-03). «Exokernel: архитектура операционной системы для управления ресурсами на уровне приложений». Обзор операционных систем ACM SIGOPS . 29 (5): 251, 251-266, 266. DOI : 10,1145 / 224056,224076 . ISSN 0163-5980 . S2CID 221932539 .  
  3. ^ Энглер, Kaashoek & О'Тул 1995 .

Библиография [ править ]

  • Энглер, Доусон Р. (1998). «Архитектура операционной системы Exokernel» (PostScript) . Массачусетский технологический институт . Проверено 22 сентября 2006 . Цитировать журнал требует |journal=( помощь )
  • ———; Каашук, М. Франс (1996). «Уничтожить все абстракции операционной системы» (PostScript) . Массачусетский технологический институт . Проверено 22 сентября 2006 . Цитировать журнал требует |journal=( помощь )
  • ———; Каашук, М. Франс ; О'Тул, Джеймс-младший (1995). «Exokernel: Архитектура операционной системы для управления ресурсами на уровне приложений» (PDF) . Труды пятнадцатого симпозиума ACM по принципам операционных систем : 251–66. DOI : 10.1145 / 224056.224076 . ISBN 978-0-89791-715-5. S2CID  221932539 . Проверено 8 октября 2014 .

Внешние ссылки [ править ]

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