Ответ 1
Exokernel - это операционная система из MIT (и класс ее вариантов), которая обрабатывает относительно небольшую аппаратную абстракцию. В exokernel низкоуровневые обязанности по управлению оборудованием (в частности, выделение памяти) часто остаются в руках разработчика. Многие разработчики, вероятно, предпочли бы, чтобы ОС больше отвечала за такие задачи низкого уровня, поскольку большинство разработчиков просто пишут приложения.
Exokernel просто выделяет физические аппаратные ресурсы для программ. Это позволяет программе использовать библиотечные операционные системы, которые связаны между собой, чтобы обеспечить некоторую абстракцию, которую экзокарн не предоставляет. Затем разработчик может выбирать между абстракционными моделями или сворачивать свои собственные. Учитывая приложение, это может иметь большие преимущества в производительности. Если вы не знаете, что делаете, вы также можете писать программы, которые будут взрываться при их сбое.
Большинство ядер будут больше использовать ресурсы абстрактного физического оборудования в какой-либо теоретической модели . Разработчик взаимодействует с этой моделью, которая обрабатывает более тонкие точки с внутренним оборудованием.
Термин наноядро используется для описания конкретного типа ядра. Префикс "pico-" или "nano", "micro-" обычно обозначает "размер" ядра. Большие ядра больше построены с большим количеством функций и handle больше аппаратной абстракции. Нанокарнеки - относительно маленькие ядра, которые обеспечивают аппаратную абстракцию, но отсутствуют системные службы. Современные микроядра также не имеют системных услуг, поэтому условия стали аналогичными.
имена ядер обычно проистекают из определенной серии исследований, которые дают новый вид ядра, например ядро, разработанное в Carnegie Mellon под названием "Mach", которое было одним из первых примеры современного "микроядра".
Sidenote: Реальная польза от экзокера - выбор. В большинстве случаев много абстракции означает меньшее количество катастрофических ошибок. В некоторых приложениях вам может понадобиться использовать другую модель абстракции, или вы можете сами справиться со всем. Если бы мы хотели отказаться от абстракции ОС для конкретного проекта, нам пришлось бы вырезать операционную систему и передать часть оборудования на работу. В случае exokernel это необязательно. Мы можем запрограммировать непосредственно "на металл", но также рекомендуем связывать в модели абстракции всякий раз, когда захотим. Это очень мощная концепция.
Sidenote. Работа с памятью на таком низком уровне не нужна большинству разработчиков приложений. Как правило, несколько уровней операционной системы построены поверх ядра, и ваше приложение будет работать на самом высоком уровне ОС. При написании в javascript вы все еще выше, взаимодействуя с моделью, реализованной в приложении, которое работает в операционной системе и т.д. И т.д. Адресация памяти, хотя она не должна игнорироваться, может означать нечто совершенно отличное от разработчика который пишет на таком высоком уровне абстракции.