Linux-сервер своими руками
Шрифт:
В том случае, если вы для загрузки используете две дискеты (первая содержит ядро — boot, на второй находится образ файловой системы — root), образ файловой системы должен начинаться на нулевом секторе и смещение = 0.
Этот аргумент заставляет ядро использовать RAM-диск. Значение load_ramdisk=1 сообщает ядру, что нужно загрузить дискету в RAM-диск. Значение по умолчанию 0 (ядро не использует RAM-диск).
Сообщает ядру, что нужно запросить дискету, которая содержит образ файловой системы (пример: promt_ramdisk=l).
Устанавливает
Определяет размер (в Кб) устройства RAM-диска. Например, для загрузочной дискеты 1.44 Мб нужно указать ramdisk=1440. Этот аргумент поддерживается ядрами, начиная с версии 1.3.47.
18.1.3. Управление памятью
Управление памятью осуществляется с помощью параметра mem:
Определяет объем памяти, установленной в компьютере.
Например: mem=16384K или mem=16M.
Иногда нужно указать объем ОЗУ, отличный от того, который имеется на самом деле. Например, у вас чипсет Intel 810 с интегрированной видеоплатой, тогда вам нужно указать объем ОЗУ на 1 Мб меньше (а иногда даже на 2 Мб). Это связано с аппаратной особенностью чипсета. Более подробно об этом вы можете узнать на сайте компании Intel .
18.1.4. Другие параметры ядра
Сообщения ядра (важные и не очень) передаются через функцию printk. Если сообщение очень важно, то его копия будет передана на консоль, а также функции klogd для его регистрации на жестком диске.
Сообщения передаются на консоль, потому что иногда невозможно запротоколировать сообщение на жестком диске (например, отказ самого диска). Предел того, что будет отображаться на консоли, задается переменной console_loglevel. По умолчанию на консоли отображается все, что выше уровня DEBUG (7). Список уровней можно найти в файле kernel.h.
По умолчанию ядро пытается запустить программу /sbin/init, которая продолжит загрузку согласно стартовым сценариям (rc). Если программа init повреждена, вы можете использовать параметр imt=/bin/sh. В оболочке вы сможете заменить поврежденную программу.
Процессоры 386 (и выше) имеют инструкцию hlt, которая сообщает процессору не производить никаких действий. При этом обычно процессор переводится в режим пониженного потребления энергии и ожидает прерывания от устройства. Параметр no-hlt отключает использование инструкции hlt.
Существование этого параметра обусловлено тем, что некоторые чипы 486DX-100 имеют проблемы с этой инструкцией. Кроме того, параметр no-hlt позволяет использовать Linux на бракованных процессорах.
Отключает использование математического сопроцессора.
Отключает функцию прокрутки экрана во время загрузки.
Параметр, задающий режим перезагрузки. Возможные значения: cold и warm, то есть «холодная» или «горячая» перезагрузка. Поддерживается ядрами версии 2.0 и выше.
Устанавливает однопользовательский режим для администрирования системы, например, в случае отказа.
18.2.
Итак, немного разобравшись в параметрах ядра, приступим к его конфигурированию. Однако перед тем как приступить, убедитесь, что у вас установлены исходники ядра и пакет заголовков:
Затем перейдите в каталог, который содержит исходные тексты ядра. Обычно это /usr/src/linux или /usr/src/linux-2.2.17. По сути linux — это ссылка на каталог linux-2.2.17. Все действия нужно выполнять от имени суперпользователя:
Затем введите одну из следующих команд:
В первом случае вам будет задан ряд вопросов, кстати, очень длинный, на который вам предстоит ответить. Я рекомендую команду make menuconfig — это намного удобнее (рис. 18.1). В этом случае вы можете редактировать конфигурацию ядра с помощью меню. Параметр xconfig аналогичен menuconfig, только предназначен для запуска из-под системы X-Window (см. рис. 18.2).
Рис. 18.1. Программа Menuconfig
Рис. 18.2. Программа xconfig
Перед внесением изменений в файл конфигурации ядра, сохраните его под другим именем — Save Configuration to an Alternative File. Во время конфигурирования ядра вы можете включать или исключать некоторые функции из состава ядра или же сделать нужную вам функцию модулем, то есть в состав ядра данная функция включена не будет, но она будет использоваться при необходимости. Например, если вы добавите в систему устройство, то будет подключен нужный модуль, при условии, что вы его откомпилировали. Главная задача — повышение производительности системы, этого можно достичь, если точно сконфигурировать ядро и исключить из его состава ненужный код.
18.2.1. Processor type and features
Здесь можно указать тип процессора и его функции, например, поддержка памяти более 1 Гб, MTRR, эмулирование математического сопроцессора.
Рис. 18.3. Processor type and features
Очень важно правильно указать тип процессора: после того, как я правильно указал тип своего процессора, производительность системы повысилась примерно в 1,5 раза, особенно это стало ощутимо при загрузке системы. Данная функция используется для оптимизации работы процессора. Если вы укажете тип процессора, например, 486, 586, Pentium, PPro, ядро не обязательно будет запускаться на более ранней архитектуре. Например, если вы укажете Pentium, ядро будет работать на PPro (хотя и медленнее), но нет никакой гарантии, что оно запустится на 486. В табл. 18.1 приведены типы процессоров, которые рекомендуются для получения наибольшей производительности.