Ядро в своём адресном пространстве, каждый из драйверов в своём. Общение друг с другом через стандартизированный API.Ошибка в драйвере приведёт к перезапуску драйвера.
Обычно здесь новички задают вопрос "Как перезапустить драйвер жёсткого диска, если нет доступа к жёсткому диску?" Отвечаю: программы уже давно разделены на сегменты кода (только чтение, у всех, вкл. саму программу) и сегменты данных (чтение и запись). Точка входа в драйвер не изменилась. Для перезапуска будет повторно вызвана функция начальной инициализации, которая заново найдёт диск, инициализирует его и настроит все параметры.
Ни один из драйверов не нуждается в рутовых правах или правах нулевого кольца. Скажу даже больше: современные процессорные прерывания уже давно ничего не прерывают. Они записывают байт в оперативную память, показывающий, что прерывание пришло. Затем диспетчер прерываний ОС находит какие прерывания пришли и какие драйвера нужно при этом вызвать, а драйвер уже сам решает что делать дальше.