> Кто-то ещё сомневается, что Линуксу давно пора менять дизайн на микроядро?
> Это ж оно в сабже просто не скомпилилось у Торвальдса. А если
> бы скомпилилось? Но никакого тестирования то там всё так же и
> не было...И? Если у кого-то не было желания тестировать свой код (в том числе и писать тесты), то почему вдруг при изменении архитектуры что-нибудь поменяется?
> Да и сейчас, в монолитном виде тестировать отдельные модули ядра, кроме как
> собрать ВСЁ, загрузить и погонять - некак. (а хоть какие-то тесты
> есть только в btrfs модуле)
> Остаётся не у дел самый эффективный подход - разработка через тестирование. Причём,
> в самой критичной части операционки...
> Микроядерный же подход позволяет имитировать микроядро для модуля, и делая контрольные
> вызовы - контроллировать что модуль зовёт дальше: есть ли нужные обращения
> к железу (через выховы микроядра) и прочим сервисам.
Ну вообще-то и в текущем ядре это сделать не проблема, микроядро здесь скорее все усложнит. Есть скажем штуки 3 функции для записи регистров устройств (байт, два байта, 4 байта), переопредели их и вот ты контролируешь работу с железом.
API ядра которое использует DRM тоже считанные функции,
в общем переопределив штук 30 функций можно полностью котролировать драйвер и
писать для него тесты, другой вопрос что
а)Это скучно и не интересно писать тесты, как здесь поможет какая-либо другая архитектура?
б)Набор функций маленький, но количество комбинация их вызовов и соотвественно
объем тестирования огромный, как здесь опять может какая-либо другая архитектура?
> Ну и излишне говорить о безопасности, даже если какая ошибка вкрадётся в
> какой сервис - это всё-таки, уже отдельный процесс. Даже если навернётся
> - то будет просто перезапущен. Всё остальное продолжит работу.