|
1. Экзоядро не должно осуществлять абстрагирования физических ресурсов .
Для выполнения этой задачи предназначены непривилегированные прикладные библиотеки,
в терминологии экзоядерной архитектуры называемые "библиотечной операционной системой"
(libOS, library operating system).
В рамках каждого конкретного приложения может быть реализована своя libOS - сугубо в необходимых масштабах.
2. Таким образом, ресурсами фактически должны управлять сами приложения.
Обязанности экзоядра сведены к выполнению минимума функций, связанных с защитой:
именования, выделения, высвобождения и разделения ресурсов, контроль прав доступа.
3. Соответственно, интерфейсы ресурсов должны быть как можно ближе к "железу".
Чем на более низком уровне функционирует интерфейс,
тем меньше требуется вмешательства со стороны экзоядра и тем больший контроль над ресурсом получают приложения.
В идеальной ситуации интерфейсы и есть "железо":
страницы физической и виртуальной памяти, блоки дисковой памяти, кванты времени процессора.
Виртуализация ресурса экзоядром допускается в двух случаях:
либо когда ресурс не может быть распределен без нее,
либо когда она требуется для достижения большей эффективности эксплуатации ресурса.
4. Прикладное управление ресурсами реализуется посредством операций,
обеспечиваемых аппаратной частью. К примеру, для управления виртуальной памятью
задействуется весь потенциал механизма прямого доступа к памяти, поддержка которого имеется в оборудовании.
Тем самым экзоядро стремится безопасно экспортировать все аппаратные операции.
    Даже такое поверхностное описание уже позволяет сделать кое-какие выводы.
Так как для реализации безопасного распределения ресурсов не нужны ни сложные алгоритмы,
ни большой объем кода, экзоядро может быть крохотным и легко понятным.
Следовательно, и ошибок оно содержит относительно мало (что имеет большое значение).
Также легко устраняется проблема плохой приспособляемости:
во-первых, отсутствует сильная зависимость всей ОС и приложений от реализации абстракций;
во-вторых, экзоядро с минимумом сервисов проще в модификации.
Наконец, благодаря применению сверхспециализированных абстракций
разрешается проблема низкой производительности -- приложения получают сугубо те ресурсы,
в которых у них действительно есть потребность,
и манипулируют ими фактически без каких-либо ограничений со стороны ядра ОС.
|