Зачем устанавливать режим ядра, а не разделять привилегии?


12

Вначале установка ядра была довольно болезненной для Linux, но теперь это довольно здорово. Я имею в виду, X не нужно запускать от имени root? Аппаратные ускоренные консоли с высоким разрешением? Классная вещь.

Проблема в том, что на многих платформах UNIX нет драйверов для установки модов любого рода. Поэтому аппаратное обеспечение, основанное на KMS, теперь в основном ограничено Linux.

Мой вопрос: зачем на самом деле реализовать это в ядре?

Если для установки разрешения экрана необходим аппаратный доступ, почему бы не использовать отдельный привилегированный демон или небольшой двоичный файл setuid? Это позволило бы сохранить преимущество выделения привилегированного кода и позволить серверу дисплея работать как пользователь с ограниченными правами; избавляясь от особых требований к драйверам и упрощая поддержку кросс-UNIX. Правильно? Или я что-то здесь упускаю?


Это идея архитектуры микроядерных ОС.
Бармар

В данном случае я не имею в виду модель типа микроядра, а просто переносимость между несопоставимыми ядрами.
DanL4096

1
KMS также используется OpenBSD и FreeBSD, и Solaris также работает с KMS. Таким образом, когда разработчики создают рабочий драйвер для Linux, поддержка драйверов также будет распространяться на других, использующих KMS.
hspaans

1
Это архитектурная вещь. Аппаратный доступ является одной, если не самой задачей ядра. Разделять работу между ядром и пользовательским пространством неудобно, потому что вам понадобятся два компонента, которые фактически выполняют только одну часть работы с размытым интерфейсом. В конечном итоге вы будете выполнять работу внутри домена ядра, поэтому есть веские основания для того, чтобы поместить все это в ядро. Конечно, вы можете реализовать это как угодно и где угодно. Надежные платформы - это четко (!) Определенные архитектуры и интерфейсы. Это все шатко шатко.
Bananguin

1
Был довольно длительный период, в течение которого различные виды сбоев оставляли консоль в странном режиме, где X больше не работал, но доступ к коноле в стиле TTY фактически не был восстановлен. Проблемы с ускорением IIRC GL и сбои часто провоцировали эту ситуацию. KMS означает, что ядро ​​знает, как решить проблему и восстановить состояние консоли. IOW отчасти улучшение юзабилити. Хотя можно утверждать, что ядро ​​может попросить демона пользовательского пространства сделать это, я думаю, что это может не всегда работать хорошо. Кроме того, размещение его в ядре означает отсутствие трудностей с закрытым исходным кодом
Джеймс Янгман

Ответы:


1

Ядро уже управляет сетевым оборудованием, аудиооборудованием, вентиляторами и другим оборудованием, поэтому имеет смысл, что графическое оборудование также управляется ядром.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.