Термины монолитное ядро
и микроядро
нельзя серьезно сравнивать, поскольку они описывают разные аспекты проектирования ядра (структура против размера).
Типичным монолитным ядром было ядро SunOS-4.x, и Linux все еще похож на него, поскольку вы вручную настраиваете содержимое базового ядра.
Ядро Solaris (начиная с версии 2.1 в 1992 году) уже нельзя назвать монолитным, поскольку все драйверы загружаются автоматически по требованию, и только небольшая часть загружается во время начальной загрузки.
SunOS-4.x и Solaris (SunOS-5.x) и Linux - все это реализации с одним контекстом. Весь их код выполняется в одном контексте MMU.
Mac OS X основана на Mach и работает как многоконтекстная реализация с несколькими процессами, разделенными контекстами MMU. В этой концепции драйверы находятся в отдельных процессах и отдельных контекстах MMU.
Многие называют Mac OS X "микроядерной системой", но может оказаться, что базовое ядро не меньше, чем базовое ядро Solaris.
Поэтому кажется, что лучше говорить о одноконтекстных ядрах
против многоконтекстных ядер
.
Я только что наткнулся на сценарий запуска для клиента VNC на работе (извините, не могу раскрыть подробности ), который использует xdotool, две соответствующие строки-
w=`xdotool search --name "$VNC_client"`; x=`printf 0x%x $w`; qtembed $x
Таким образом, я подозреваю, что из спецификатора преобразования формата (в printf )есть хороший шанс, что разные числа вызваны простой разницей в системе счисления, используемой для сообщения их результатов.