Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 113 114 115 116 117 118 119 120 121 ... 158

elevator=deadline

У каждого алгоритма есть свои преимущества и недостатки. Но только два из них подходят для настольного компьютера (рабочей станции) — второй и третий. В Интернете вы можете найти данные о том, что для настольного компьютера более подходит второй алгоритм.

Для выбора нужного режима перезагрузите компьютер и при загрузке ядра Linux передайте ему параметр elevator с одним из перечисленных выше значений.

20.4.5. Другие параметры ядра

♦ debug: сообщения ядра (важные и не очень) передаются через функцию printk(). Если сообщение очень важно, то его копия будет передана на консоль, а также функции klogd() для его регистрации на жестком диске. Сообщения передаются на консоль, потому что иногда невозможно запротоколировать сообщение на жестком диске (например, отказ самого диска). Предел того, что будет отображаться на консоли, задается переменной console_loglevel. По умолчанию на консоли отображается все, что выше уровня DEBUG (7). Список уровней можно найти в файле kernel.h.

♦ init=/путь: по умолчанию ядро пытается запустить демон init, который продолжит загрузку согласно стартовым сценариям. Если программа init повреждена, то для аварийно-восстановительных работ вы можете запустить вместо нее командный интерпретатор (init=/bin/sh), в котором и будете ремонтировать систему.

♦ no-hlt: процессоры 386 (и выше) имеют инструкцию hlt, которая переводит процессор в режим пониженного потребления энергии, где он ожидает прерывания от устройства. Параметр no-hlt отключает использование инструкции hlt. Существование этого параметра обусловлено тем, что некоторые чипы 486DX-100 имеют проблемы с этой инструкцией. Кроме того, параметр no-hlt позволяет использовать Linux на бракованных процессорах.

♦ no387: отключает использование математического сопроцессора.

♦ no-scroll: отключает функцию прокрутки экрана во время загрузки.

♦ reboot=<режим>: параметр, задающий режим перезагрузки. Возможные значения: cold и warm, то есть «холодная» или «горячая» перезагрузка. Поддерживается ядрами версии 2.0 и выше.

♦ single: загружает систему в однопользовательском режиме — например, для ремонта.

20.5. Компиляция ядра

20.5.1. Зачем обновлять ядро?

Linux развивается быстрее любой другой операционной системы. Регулярно появляются новые версии ядра, реализующие новые функции. Например, едва успел выйти дистрибутив Fedora Core 4 на ядре 2.6.11, а на www.kernel.org уже лежит стабильная версия 2.6.12.2. Еще чаще появляются драйверы к новым устройствам и заплатки с исправлением обнаруженных ошибок (например, прорех в системе защиты).

Допустим, новое ядро целиком еще можно установить из бинарного RPM-пакета (см. п.7.4.2). Но для подключения нового драйвера недостаточно просто скопировать его в каталог ядра: нужно интегрировать его код в структуры данных и таблицы ядра, для чего ядро придется строить заново из исходного кода. Исходные коды тем более необходимы для прикладывания заплатки (см. п. 7.4.3).

Пакет исходных текстов ядра может быть включен в ваш дистрибутив. Если это не так, скачайте архив с ftp://ftp.kernel.org/pub/linux/kernel (его размер 30-40 Мб в зависимости от версии) и распакуйте его в тот каталог, в котором будете производить сборку (обычно /usr/src/linux-<версия>).

20.5.2. Конфигурирование ядра

Когда вы строите из исходников прикладную программу, первым шагом сборки обычно бывает выполнение сценария configure. Ядро тоже нужно конфигурировать. Его настройки находятся в текстовом файле .config в каталоге исходных кодов. Этот файл можно редактировать вручную, но это крайне неудобно, поэтому предусмотрены диалоговые конфигураторы (п. 7.2.3, рис. 7.2).

Если вы работаете в среде GNOME, выполните команду make gconfig, и вы увидите диалоговое окно, в котором можно выбрать нужные функции и драйверы устройств (Y) и отключить ненужные (N), а также указать, как следует включать в ядро выбранные устройства: статически или в виде модулей (M).

Осталось перечислить модули, доступные для конфигурирования, и дать рекомендации по их включению и отключению. Я расскажу об этом на примере современного ядра 2.6. О настройке ядра версии 2.4 рассказано в третьем издании моей книги «Самоучитель Linux», вышедшем в 2004 г. в издательстве «Наука и Техника», а если вы все еще используете ядро версии 2.2, то вам нужно первое издание этой книги.

20.5.2.1. Code maturity level options

Этот раздел позволяет включить в ядро экспериментальные модули, находящиеся еще в стадии разработки и предназначенные не для широкой публики, а для тестеров.

20.5.2.2. General setup

Support for paging of anonymous memory

Грозно звучит, не так ли? Я сначала даже не понял, что это. Оказывается, это просто поддержка свопа — своп-устройств и своп-файлов. Настоятельно рекомендуется не отключать эту опцию — сколько бы ни было оперативной памяти, а своп все равно пригодится.

System V IPC

Поддержка средств межпроцессного взаимодействия (Interprocess Communication) System V: очередей сообщений, семафоров, разделяемой памяти и т.д. Отключать не нужно, иначе процессы не смогут «общаться» друг с другом.

BSD Process Accounting

Учет процессов. С помощью специального системного вызова пользовательская программа может попросить ядро записать в специальный файл системную информацию: время создания процесса, идентификатор владельца, командную строку, использование ресурсов, например, памяти и терминалов и т.д. Чтобы все работало как нужно, не отключайте эту опцию.

Sysctl support

Включает поддержку программы Sysctl, позволяющей изменять параметры ядра без перекомпилирования во время загрузки. Поддержка Sysctl увеличивает размер ядра на 8 Кб. Если ядро, которое вы компилируете, не предназначено для дисков загрузки/восстановления, включите эту опцию.

Задает размер буфера протокола ядра в зависимости от значения, указанного в программе конфигурирования ядра:

♦ 17 — 128 Кб (по умолчанию)

♦ 16 — 64 Кб

♦ 15 — 32 Кб (рекомендуется для SMP)

♦ 14 — 16 Кб

♦ 13 — 8 Кб

♦ 12 — 4 Кб.

Kernel .config support

Поддержка файлов .config, содержащих конфигурацию ядра.

20.5.2.3. Loadable module support

Если вы планируете использовать загружаемые модули, включите все функции. Можно создать компактную версию ядра, которая вообще не использует модули, при этом поддержка всех необходимых устройств будет включена непосредственно в ядро. В этом случае можно отключить все функции в этом разделе.

Enable loadable module support

Включить поддержку загружаемых модулей. Рекомендуется не отключать эту опцию, если вы собираете обычное ядро для настольной системы или сервера. Если же вы собираете компактное ядро, можно эту опцию выключить, а все необходимые модули включить в состав ядра.

Module unloading

Разрешить удаление модулей из ядра. Если эта опция выключена, вы не сможете удалить модуль из ядра после того, как он был загружен.

Forced module unloading

Принудительное удаление. Модуль будет удален из ядра, даже если какой-то процесс его использует. Такое удаление может быть опасным — ведь в результате удаления модуля устройства, которое в данный момент используется процессом, очень велика вероятность потери данных, поэтому лучше эту опцию не включать. Наоборот, когда вы занимаетесь программированием модулей, то есть созданием своих модулей, эта опция очень полезна, поскольку помогает сразу же выгрузить некорректно работающий модуль.

Module versioning support

Экспериментальная поддержка версий модулей. Включение данной опции позволяет использовать модули, откомпилированные для другой версии ядра. Нет никакой гарантии, что модуль, откомпилированный под другую версию ядра, будет работать стабильно с вашей версией, поэтому лучше выключите эту опцию.

Automatic kernel module loading

Обычно некоторые части ядра выполнены в виде модулей ядра. Когда ядру нужен тот или иной модуль, перед использованием модуля оно должно загрузить его (команда insmod). Если данная опция включена, ядро сможет автоматически загружать необходимые модули. Поэтому рекомендуется включить эту опцию.

20.5.2.4. Processor type and features

Здесь можно указать тип процессора и его функции, например, поддержка памяти более 1 Гб, MTRR, эмулирование математического сопроцессора.

Subarchitecture type

Тип архитектуры процессора:

1 ... 113 114 115 116 117 118 119 120 121 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий