Все UNIX-системы позволяют пользователю предоставить ядру явную информацию о том, какие аппаратные средства присутствуют в системе. Некоторые ядра могут самостоятельно искать устройства.
В Solaris ядро почти полностью является модульным и может загружать драйверы устройств по мере необходимости. Не нужно сообщать системе заранее, какие устройства присутствуют, так как компания Sun разработала очень четкую аппаратную архитектуру (сравнимую с архитектурой персональных компьютеров). Когда ядро обнаруживает новое устройство, подключенное к системе, оно ищет и загружает модуль соответствующего драйвера. В большинстве случаев данный механизм работает без сбоев.
Как и в Solaris, в HP-UX поддерживается относительно небольшой и четко определенный круг аппаратных устройств. Как правило, система самостоятельно находит устройства без особого вмешательства пользователя.
В общем случае во FreeBSD и других BSD-системах на этапе компиляции ядра нужно явно указывать, какие устройства могут быть найдены в системе. Иногда следует также задать, где именно подключено устройство. Подобную информацию часто бывает трудно получить, так как производители персональных компьютеров не всегда ее предоставляют. Приходится снимать корпус и самостоятельно находить ответы на вопросы наподобие следующего: "Какой микропроцессорный набор установлен на моей Ethernet-плате?"
Linux находится посредине между Solaris и BSD-системами. Как и FreeBSD, Linux страдает от работы в среде персональных компьютеров, где очень сложно определить точный состав аппаратных устройств в системе. Ядро Linux также можно сконфигурировать вручную, сообщив ему заранее об имеющихся устройствах, в результате чего размер ядра получится очень большим. С другой стороны, допускается конфигурация в стиле Solaris, когда драйверы загружаются по мере необходимости. Поддержка модулей в Linux не столь универсальна, как в Solaris, но в основном это связано с недостатками архитектуры персональных компьютеров.
В табл. 12.1 указано местоположение каталога, в котором выполняется построение ядра, и стандартное имя инсталлированного ядра в каждой из четырех тестовых систем.
Таблица 12.1. Местоположение ядер в тестовых системах
|
Система
|
Каталог для построения ядра
|
Ядро
|
|
Solaris
|
-
|
/kernel/unix
|
|
HP-UX
|
/stand
|
/stand/vmunix
|
|
Linux
|
/usr/src/linux
|
/vmlinuz или /boot/vmlinuz
|
|
FreeBSD
|
/usr/src/sys
|
/kernel
|