В HP-UX применяется старый подход к построению ядра: все драйверы включаются в одно большое ядро. Имеется также сложный и запутанный конфигурационный файл. К счастью, административная утилита SAM позволяет существенно упростить весь процесс. Настоятельно рекомендуем начать осваивать процедуру построения ядра именно с этой утилиты. Ее графический интерфейс прост: достаточно выбрать команду в меню, и ядро будет построено. Единственный недостаток заключается в том, что нужно быть готовым после активизации команды "Process new kernel" немедленно перегрузиться.
В этом параграфе мы рассмотрим, как создавать ядро вручную, так как эта процедура обычно не описана в документации и не столь очевидна, как в случае применения утилиты SAM. Процесс ручного построения ядра более управляем, поскольку можно сконфигурировать и скомпилировать ядро, а затем дождаться нужного времени для перезагрузки системы. Кроме того, не требуется иметь под рукой X-терминал и тратить время на многочисленные движения мышью, когда достаточно ввести всего несколько команд.
Конфигурирование ядра HP-UX осуществляется посредством файла /stand/system. Предварительно необходимо скопировать этот файл под другим именем; мы воспользуемся именем system.example. Файл system обычно генерируется утилитой SAM, поэтому он труден для понимания и в нем отсутствуют комментарии. Единственный способ узнать, что означают все эти загадочные команды и переменные, — использовать саму утилиту SAM. Но можно просто загрузить ее и распечатать копию окна с конфигурационными параметрами. Это позволит получить список имен настраиваемых переменных, а также краткое описание их назначения с указанием стандартных значений.
Наш файл system.example представляет собой список драйверов, подсистем и переменных, которые будут встроены в ядро. Устройства обычно перечислены первыми, за ними идут подсистемы. В конце указаны переменные с их значениями.
GSCtoPCI
asio0
с730
sdisk
sdisk
sctl
cdfs
nfs_core
...
STRMSGSZ 65535
dump lvol
nstrpty 60
Как видите, расшифровать этот список невозможно без помощи утилиты SAM. Если переменной присваивается значение по умолчанию, то она вообще не включается в файл. В табл. 12.4 перечислены некоторые наиболее часто используемые переменные вместе с их стандартными значениями.
Таблица 12.4. Полезные переменные файла system в HP-UX
Переменная
|
По умолчанию
|
Описание
|
maxfiles_lim
|
1024
|
Неизменяемое максимальное число открытых файлов в одном процессе
|
maxusers
|
60
|
Максимальное число одновременно работающих пользователей
|
maxuprc
|
75
|
Максимальное число пользовательских процессов
|
nproc
|
276
|
Максимальное число процессов
|
nf ile
|
910
|
Максимальное число открытых файлов
|
nflocks
|
200
|
Максимальное число блокировок файлов
|
ninode
|
476
|
Максимальное число открытых индексных дескрипторов
|
npty
|
60
|
Максимальное число псевдотерминалов
|
nstrtel
|
60
|
Максимальное число сеансов telnet
|
nkthread
|
499
|
Максимальное число потоков ядра
|
После окончания редактирования файла system.example остается построить ядро с помощью команды mk_kernel. По умолчанию эта команда берет установки из файла /stand/system и создает ядро с именем /stand/vmunix.test. С помощью опции -s можно указать другой конфигурационный файл, а с помощью опции -о — другое имя ядра. В нашем случае команда будет иметь следующий вид:
% mk_kernel -s /stand/system.example -о /stand/vmunix.example
Перезагрузиться можно в любое удобное время. Если нужно, чтобы новое ядро загружалось автоматически, скопируйте старое ядро /stand/vmunix куда-нибудь и поместите на его место новое ядро.