Не стоит даже на уровень драйверов лезть.
В начале 2000 годов баловался я изучением пногонитиевого программирования, и были у меня и соляры, и freebsd, и linux, а аппаратно и sparc, и Power, ну и интеля.
Так вот достаточно было написать примитивную программку, которая через pthread_setschedparam() повышала приоритет текущей нити, и потом в цикле повторяла getpid().
На солярах на любой платформе это не приоритетный вызов, в смысле любой пользователь мог запустить программу с этим вызовом. А вот на линукс этот вызов мог тогда (не знаю сейчас, не думаю, что что-то изменилось) только root, суперпользователь. Ну и результат - машина умирала полностью, высокоприоритетная нить забирала на себя все ресурсы, работая от суперпользователя, и никто никак не мог понизить её приоритет или сделать что-то другое, чтобы убить её, умирало всё, включая сеть.
Только я опубликовал исходник и предупредил об опасности, как тут же масса дятлов повесила свои машины
Но даже на windows, который полностью POSIX совместим, такого эффекта не возникало.
Так что проблемным может быть не только использование драйверов, но и любых программ запущенных от рута, например, многопоточных вот таких
Я понимаю, все скажут - надо контролировать, что запускается от рута.
Кстати, проблема с диспетчерами присуща не только линукс, но и коммерческим юникс тоже.
Помню, как раз в начале тех же 2000-х, SUN осуществлял переход от модели N:M (user thread to kernel thread) к модели 1:1, в попытках повысить эффективность диспетчера.
Интересно, как ныне ситуация, вроде AIX современный уже достаточно зрелый.
Но ведь известны огромные, практически, непреодолимые проблемы при работе нагрузки на одном AIX на самом крупном System P сервере, и выход только один - разбивать его на несколько ЛПАРов (читай - виртуализовать их используя гипервизор). И это происходит прямо сейчас, не давняя история.
А из ковыряния с многопоточностью я вынес убеждение, что сама многопоточность и платформы на её основе - зло (по сравнению с однопоточными).