Экзоядро
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2016 г. ) |

Экзоядро — это операционной системы, ядро разработанное группой MIT . параллельных и распределенных операционных систем [1] а также класс подобных операционных систем.
Операционные системы обычно предоставляют приложениям аппаратные ресурсы через абстракции высокого уровня , такие как (виртуальные) файловые системы. Идея экзоядер заключается в том, чтобы навязывать разработчикам приложений как можно меньше абстракций, позволяя им принимать как можно больше решений относительно аппаратных абстракций. [2] Экзоядра крошечные, поскольку функциональность ограничивается обеспечением защиты и мультиплексирования ресурсов, что значительно проще, чем в обычных микроядрах — реализация передачи сообщений и монолитных ядрах — реализация высокоуровневых абстракций.
Реализованные абстракции называются библиотечными операционными системами; они могут запрашивать определенные адреса памяти, дисковые блоки и т. д. Ядро лишь гарантирует, что запрошенный ресурс свободен и приложению разрешен доступ к нему. Этот низкоуровневый аппаратный доступ позволяет программисту реализовывать собственные абстракции и исключать ненужные, чаще всего для повышения производительности программы. Это также позволяет программистам выбирать, какой уровень абстракции они хотят: высокий или низкий.
Экзоядра можно рассматривать как применение сквозного принципа к операционным системам, поскольку они не заставляют прикладную программу накладывать свои абстракции поверх других абстракций, которые были разработаны с учетом других требований. Например, в проекте MIT Exokernel веб-сервер Cheetah хранит на диске предварительно отформатированные пакеты интернет-протокола , ядро обеспечивает безопасный доступ к диску, предотвращая несанкционированное чтение и запись, но то, как диск абстрагируется, зависит от приложения или библиотеки, которые использует приложение.
Мотивация [ править ]
Традиционно разработчики ядра стремились сделать отдельные аппаратные ресурсы невидимыми для прикладных программ, требуя от программ взаимодействия с оборудованием посредством некоторой модели абстракции. Эти модели включают файловые системы для дискового хранилища, виртуальные адресные пространства для памяти, планировщики для управления задачами и сокеты для сетевого взаимодействия. Эти абстракции оборудования облегчают написание программ в целом, но ограничивают производительность и сдерживают экспериментирование с новыми абстракциями. Приложению, ориентированному на безопасность, может потребоваться файловая система, которая не оставляет старые данные на диске, а приложению, ориентированному на надежность, может потребоваться файловая система, которая хранит такие данные для восстановления после сбоя.
Один из вариантов — полностью удалить ядро и программировать непосредственно на аппаратном обеспечении, но тогда вся машина будет посвящена написанному приложению (и, наоборот, вся кодовая база приложения будет посвящена этой машине). Концепция экзоядра является компромиссом: пусть ядро распределяет основные физические ресурсы машины (например, диска блоки , страницы памяти и процессорное время) между несколькими прикладными программами, и пусть каждая программа решает, что делать с этими ресурсами. Затем программа может подключиться к вспомогательной библиотеке, которая реализует необходимые ей абстракции (или реализовать свои собственные).
Экзоядра MIT [ править ]
MIT разработал две операционные системы на основе экзоядра, использующие два ядра: Aegis, экспериментальную концепцию с ограниченной поддержкой хранилища, и XOK, в которой концепция экзоядра применялась более тщательно.
Основная идея экзоядра MIT заключается в том, что операционная система должна выступать в качестве исполнителя для небольших программ, предоставляемых прикладным программным обеспечением, которые ограничены только требованием, чтобы экзоядро могло гарантировать безопасное использование аппаратного обеспечения.
Дизайн [ править ]
Экзоядро MIT управляет аппаратными ресурсами следующим образом:
- Процессор
- Ядро представляет ресурсы процессора как временную шкалу, на которой программы могут выделять интервалы времени. Программа может передать остальную часть своего интервала времени другой назначенной программе. Ядро уведомляет программы о событиях процессора, таких как прерывания , аппаратные исключения , а также начало или конец интервала времени. Если программе требуется много времени для обработки события, ядро будет штрафовать ее при последующих выделениях интервала времени; в крайних случаях ядро может прервать программу.
- Память
- Ядро выделяет программам страницы физической памяти и управляет резервным буфером трансляции . Программа может поделиться страницей с другой программой, отправив ей возможность доступа к этой странице. Ядро гарантирует, что программы получают доступ только к тем страницам, для которых у них есть возможность.
- Дисковое хранилище
- Ядро идентифицирует дисковые блоки для прикладной программы по их физическому адресу, что позволяет приложению оптимизировать размещение данных. Когда программа инициализирует использование диска, она предоставляет ядру функцию, которую ядро может использовать для определения блоков, которыми управляет программа. Ядро использует этот обратный вызов, чтобы убедиться, что при выделении нового блока программа запрашивает только тот блок, который был выделен в дополнение к тем, которые она уже контролирует.
- сеть
- Ядро реализует программируемый фильтр пакетов , который выполняет программы на языке байт-кода, предназначенном для облегчения проверки безопасности ядром.
Приложения [ править ]
Доступные библиотеки операционных систем для Exokernel включают специальную систему ExOS и эмулятор для BSD . В дополнение к этому команда exokernel создала веб-сервер Cheetah , который использует ядро напрямую.
История [ править ]

Концепция экзоядра существует как минимум с 1994 года. [3] но по состоянию на 2010 год [update] экзоядра все еще являются исследовательской разработкой и не использовались ни в одной крупной коммерческой операционной системе.
Концепция управления экзоядерной системой — Nemesis , разработанная Кембриджским университетом , Университетом Глазго , Citrix Systems и Шведским институтом компьютерных наук . MIT также создал несколько систем на основе экзоядра, включая ExOS.
См. также [ править ]
- Гибридное ядро
- Гипервизор
- Ядро (операционная система)
- Микроядро
- Монолитное ядро
- Наноядро
- Паравиртуализация
- Ядро костреца
- Операционная система единого адресного пространства (SASOS)
- Юникернел
- Голый Металл
Ссылки [ править ]
- ^ «Экзоядерная операционная система MIT» . pdos.csail.mit.edu . Проверено 25 января 2018 г.
- ^ Энглер, доктор медицинских наук; Каашук, МФ; О'Тул младший, Дж.; Энглер, доктор медицинских наук; Каашук, МФ; О'Тул младший, Дж. (3 декабря 1995 г.). «Экзоядро: архитектура операционной системы для управления ресурсами на уровне приложений». Обзор операционных систем ACM SIGOPS . 29 (5): 251, 251–266, 266. doi : 10.1145/224056.224076 . ISSN 0163-5980 . S2CID 221932539 .
- ^ Энглер, Каашук и О'Тул 1995 .
Библиография [ править ]
- Энглер, Доусон Р. (1998). «Архитектура экзоядерной операционной системы» (PostScript) . Массачусетский технологический институт . Проверено 22 сентября 2006 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ———; Каашук, М. Франс (1996). «Уничтожить все абстракции операционной системы» (PostScript) . Массачусетский технологический институт . Проверено 22 сентября 2006 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ———; Каашук, М. Франс ; О'Тул, Джеймс младший (1995). «Экзоядро» (PDF) . Материалы пятнадцатого симпозиума ACM по принципам операционных систем - СОСП '95 . Том. 29. стр. 251–66. дои : 10.1145/224056.224076 . ISBN 978-0-89791-715-5 . S2CID 221932539 . Проверено 8 октября 2014 г.
Внешние ссылки [ править ]
- Эрлингссон, Ульфар; Кипарлис, Афанасиос, Микроядра , Корнелл,
Насколько простые и эффективные операции являются хорошим выбором при проектировании интерфейса ядра
. - Экзоядерная операционная система , Массачусетский технологический институт . Исследовательское экзоядро.
- Немезида , Великобритания : Кембридж . Исследовательское экзоядро.
- BareMetal OS , Return Infinity, заархивировано из оригинала 06 сентября 2014 г. Коммерческое экзоядро.
- XOmB , заархивировано из оригинала 28 июля 2019 г. , получено 13 мая 2013 г. Исследовательское экзоядро.
- ЭксАмур , Франция . GNU . Экзоядро