Ядро Linux: опции конфигурирования

Алексей Федорчук
[email protected]

При участии:
lexb
Kot

Время от времени в разных разделах форума LinuxShop возникают вопросы по конфигурированию ядра Linux. В связи с этим я решил собрать воедино все, что знаю по этому поводу. Сразу замечу, что знаю я далеко не все. И потому некоторые опции останутся пока без комментариев. Надеюсь на помощь посетителей сайта для заполнения пробелов.

Помимо просто описания смысла известных мне опций, я постараюсь осветить вопрос их взаимосвязей, поскольку они не всегда прозрачны и "интуитивно понятны".

Изложение ведется в порядке пунктов меню, генерируемых командой make menuconfig для ядра версии 2.4.20-XFS (дистрибутив Gentoo Linux). В каноническом ядре vanilla с www.kernel.org некоторых опций не будет. С другой стороны, ядра, включенные в состав других дистрибутивов, могут включать некоторые дополнительные опции. Однако думаю, что 99% опций имеют общее значение для текущей версии. И с выходом версии 2.21 вряд ли принципиально изменятся.

И еще: все рекомендации, основанные на моем личном опыте, даются в предположении настольного использования. Для сервера все может быть совсем по другому.

Изложение структурировано следующим образом:

Заголовок второго ранга

обозначает пункты главного меню,

Заголовок третьего ранга

отдельные опции внутри пунктов или пункты, открывающие вложенные подменю,

Заголовок четвертого ранга

субопции, открываемые только при включении основной опции, или пункты вложенных подменю.

Code maturity level options

Опции, отражающие "зрелость кода". Собственно, в этом пункте только одна опция -

Prompt for development and/or incomplete code/drivers

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

Loadable module support

Поддержка загружаемых модулей ядра. Содержит три опции.

Enable loadable module support

Включение поддержки загружаемых модулей вообще. Не смотря на то, что я предпочитаю практически все необходимое встраивать в ядро, включение этой опции целесообразно в подавляющем большинстве случаев. Во-первых, некоторые опции доступны только в виде загружаемых модулей. Во-вторых, в качестве модулей обычно реализованы фирменные драйверы поддержки всяческого экзотического оборудования. Да и не очень экзотического - например, видеокарт. И в третьих, некоторые опции должны быть в принципе доступны, но требуются столь редко, что их просто нет смысла встраивать в ядро (пример - опция Kernel configuration visible in /proc/config в разделе File systems). Отключение этой опции приведет к тому, что две следующие также станут недоступными.

Set version information on all module symbols

Включение информации о версиях модулей. Необходима для того, чтобы модули сторонних производителей, не входящие в состав ядра (например, те же драйверы производителей оборудования) сохранялись после перекомпиляции ядра. Обычно включается, хотя в некоторых случаях эта опция может привести к ошибками при компиляции ядра. Буде такая ситуация возникнет - опцию придется отключить.

Kernel module loader

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

Processor type and features

Опции установки типа процессора, максимального объема адресуемой памяти и некоторых других особенностей, в частности - поддержки мультипроцессорности.

(Pentium-4) Processor family

Оптимизация под конкретный процессор. Состав этого пункта определяется не столько версией ядра, сколько версией компилятора gcc. В настоящее время доступна оптимизация под следующие процессоры:

  • 386
  • 486
  • 586/K5/5x86/6x86/6x86MX
  • Pentium-Classic
  • Pentium-MMX
  • Pentium-Pro/Celeron/Pentium-II
  • Pentium-III/Celeron(Coppermine)
  • Pentium-4
  • K6/K6-II/K6-III
  • Athlon/Duron/K7
  • AthlonXP
  • AthlonMP
  • Elan
  • Crusoe
  • Winchip-C6
  • Winchip-2
  • Winchip-2A/Winchip-3
  • CyrixIII/VIA-C3/VIA-C5

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

Machine Check Exception

Включение детектирования проблем. Смысл этой опции мне не очень ясен, обычно я ее отключаю.

Toshiba Laptop support, Dell laptop support

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

/dev/cpu/microcode - Intel IA32 CPU microcode support

Включает возможность загрузки обновлений микрокода. Абсолютно бессмыслена для юольшинства позователей, поскольку а) нужно иметь впридачу этот самый микрокод и б) все BIOSы мат.плат, выпущенных за последние лет 5, делают тоже самое - автоматически загружают обновления микрокода при старте машины.

/dev/cpu/*/msr - Model-specific register support

Смысл остается неясным.

/dev/cpu/*/cpuid - CPU information support

Опция необходима, чтобы получить из файловой системы /proc подробную информацию о процессоре типа следующей:

$ cat /proc/cpuinfo

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 6
model name : Celeron (Mendocino)
stepping : 0
cpu MHz : 334.105
cache size : 128 KB
fdiv_bug : no <-- это кстати касается микрокода
hlt_bug : no <-- пункт 1 как раз для исправления
f00f_bug : no <-- этих ошибок
coma_bug : no <--
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 mmx fxsr
bogomips : 666.82

High Memory Support

Включение/отключение использования памяти свыше 4 Гбайт. Возможные значения - off (при объеме ОЗУ менее 1 Гбайт), 4 GB (при памяти от 1 до 4 Гбайт), 64 GB (при объеме памяти свыше 4 Гбайт, только для процессоров от PentiumPro и выше).

User address space size

В текущей версии ядра не документировано, поэтому я оставляю значение по умолчанию.

HIGHMEM I/O support

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

Math emulation

Эмуляция сопроцессора при его физическом отсутствии (когда это было...).

MTRR (Memory Type Range Register) support

Включение дополнительных регистров памяти для PentiumPro и выше. Лучше включать, в том числе и для процессоров AMD.

Symmetric multi-processing support

Поддержка симметричной мультипроцессорности. Очевидно, должно включаться, если процессоров больше одного. Полагаю, что нужна также для Penyium 4 с поддержкой HyperThreading'а.

Local APIC support on uniprocessors, IO-APIC support on uniprocessors

Включение продвинутого контроллера прерываний для однопроцессорных машин (для SMP-машин включается по умолчанию). Считается, что это нужно включить, хотя и при отключении ничего нехорошего не происходит.

Unsynced TSC support

Не понимая смысла этой опции, отключаю.

General setup

Как следует из названия, поддержка опций общего характера, то есть мешанина из сетевых, шинных и прочих опций, однако - очень важных, и потому тут при выборе следует быть внимательным.

Networking support

Общая поддержка сети. Обязательна даже на локальной машине без всякого сетевого инвентаря вообще, так как многие программы для своей работы локально имитируют сетевые взаимодействия (характерный пример - Иксы).

PCI support

Общая поддержка шины PCI, обязательно должны быть включена.

PCI access mode

Режим доступа к PCI-устройствам, непосредственны (Direct), через BIOS или произвольный (Any). В настоящее время обычно включается последний.

ISA bus support

Следует включить, если эта шина и устройства для нее еще уцелели.

PCI device name database

Обычно включается, после чего информация о PCI-устройствах доступна через файловую систему /proc. Отключается в том случае, если нужно любым путем уменьшить размер ядра.

EISA support, MCA support

А вы их видели? Я - так нет.

Support for hot-pluggable devices

Поддержка устройств, допускающих "горячее" подключение. Необходима для работы со всякого рода PC-картами, USB-накопителями и вообще USB-устройствами, в т.ч. цифровыми камерами. При этом целесообразно включить еще и поддержку файловой системы devfs в пункте File systems главного меню (см. соответствующий раздел).

PCMCIA/CardBus support

Появляется только при включении предыдущего пункта. Поддержка всякого рода PC-карт должны быть включена, если таковые имеются (обычно для ноутбуков).

PCI Hotplug Support

Появляется только при включении hot-pluggable devices. Включается при наличии на маме PCI Hotplug controller и позволяет втыкать и удалять PCI-устройства в работающей машине. Мне такого видеть не доводилось.

System V IPC

Поддержка межпроцессорного взаимодействия (Inter Process Communication) в стиле System V. Должна быть включена обязательно, так как используется большинством программ.

BSD Process Accounting

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

Sysctl support

Позволяет динамически изменять параметры ядра без его пересборки и без перезагрузки машины. Считается практически обязательной, если нет большой необходимости ужать ядро. Требует поддержки файловой системы /proc в пункте File systems.

(ELF) Kernel core (/proc/kcore) format

Определяет формат образа ядра, доступного через файловую систему /proc. Второе возможное значение - A.OUT, - в настоящее время практического значения не имеет.

Kernel support for a.out binaries

Поддержка старого формата исполнимых файлов a.out. Часто рекомендуют включать для совместимости, однако ныне это практического смысла, по моему, не имеет. Программ в a.out почти не осталось, а если и есть, заставить их работать в современных системах - задача, мягко говоря, не из самых простых.

Kernel support for ELF binaries

Поддержка современного формата исполнимых файлов ELF. Так как все современные программы именно в этом формате и собираются, обязательна к включению.

Kernel support for MISC binaries

Поддержка прочих исполнимых и run-time форматов, в том числе и для других ОС, обеспечивает запуск Java-приложений. Кому это нужно - сам знает, я же всегда отключаю.

Power Management support

Включение управления питанием. Я выключаю. Однако есть мнение, что лучше включать даже на десктопе. В частности, без этой опции ATX'ные машины не выключаются автоматически по команде halt.

Power Management support

Поддержка расширенного управления питанием для BIOS'ов, имеющих соответствующую функцию. Я отключаю.

ACPI Support

Это замена APM (вероятно, более продвинутая?) Если включить этот пункт, развернется подменю с рядом вложенных пунктов:

  • ACPI Support - общая поддержка ACPI
  • CPU Enumeration Only
    • AC Adapter - для ноутбуков показывает, работает ли он от розетки или нет
    • Battery - показывает заряд батареи
    • Button - позволяет работать кнопкам слип, повер он и вейк
    • Fan - управляет оборотами кулера, если данная возмможность пооддерживается материнской платой
    • Processor - управляет питанием процессора, опять же если поддерживается аппаратно
    • Toshiba Laptop Extras
    • Debug Statements

Memory Technology Devices

Требуется для поддержки флэш-памяти, твердотельной памяти и родственных устройств. Поскольку никогда с таковыми не сталкивался - оставляю без комментариев. Замечу только, что для обычных USB-накопителей не нужна. Если включить этот пункт, развернется вложенное меню, на котором также останавливаться не буду за полным незнанием.

Parallel port support

Поддержка параллельного порта

Parallel port support

Общая поддержка параллельного порта. Следует включить, если таковой используется.

PC-style hardware

Поддержка обычного для персоналок параллельного интерфейса. Очевидно, что если включен предыдущий пункт, следует сказать б) и включить и этот.

Support foreign hardware

Поддержка чуждого персоналкам параллельного интерфейса. Вряд ли кому потребуется.

IEEE 1284 transfer modes

Поддержка всяких параллельных улучшений типа EPP/ECP. Включать по необходимости.

Plug and Play configuration

Общий смысл ясен из названия.

Plug and Play support

Общая поддержка устройств Plug and Play. Насколько я понимаю, для современных PCI-карт не обязательна - у меня она стандартно выключена, но вся PCI-периферия работает. Тем не менее, для страховки можно включить, тогда появится подпункт

ISA Plug and Play support

Очевидно, что эта опция потребуется, если сохранились ISA-устройства.

Block devices

Пункт, где собрана поддержка всяких блочных устройств, но не дисков и большинства прочих накопителей, как можно было бы подумать.

Normal floppy disk support

Легко догадаться, что это именно поддержка нормальных флоппиков. У меня выключена, что, понятно, не препятствует загрузке машины с дискеты при необходимости (при выставлении соответствующей опции BIOS).

Compaq SMART2 support, Compaq Smart Array 5xxx support, Mylex DAC960/DAC1100 PCI RAID Controller support, Micro Memory MM5415 Battery Backed RAM suppor

Поддержка каких-то экзотических контроллеров, о которых я слыхом не слыхивал, поэтому - без комментариев.

Loopback device support

Поддержка т.н. loopback-устройств (адекватного перевода на русский не существует). Включение ее позволяет, например, монтировать iso-образы CD-дисков, как обычные файловые системы на дисковых разделах, так что практически необходима.

Network block device support

Поддержка сетевых дисков, мало что про это знаю.

RAM disk support

Поддержка виртуальных дисков в оперативной памяти. Необходима, если на таком диске располагается корневая файловая система. Обычно используется для всякого рода rescue-носителей. Кроме того, некоторые дистрибутивы монтируют на RAM-диск initrd, в этом случае опция должна быть включена обязательно. Однако нынче для initrd чаще используется файловая система tmpfs, в этом случае RAM-диск не нужен.

(4096) Default RAM disk size

Умолчальный размер RAM-диска.

Initial RAM disk (initrd) support

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

В дистрибутивах типа Gentoo, CRUX, Sorcerer и подобных поддержка RAM-диска обычно не нужна.

Per partition statistics in /proc/partitions

Интуитивно понятно, что включение этой опции предоставляет некую дополнительную информацию через файловую систему /proc. Однако деталей не знаю, у меня выключено.

Enterprise Volume Management System

Этот пункт имеется в главном меню только соответствующим образом пропатченных ядер, в канонической vanilla его нет. EVMS обеспечивает универсальный механизм для работы с дисковыми разделами, логическими томами (LVM), программными RAID-массивами, файловыми системами. Вещь очень полезная и интересная, но требует глубокого изучения.

EVMS Kernel Runtime

Собственно включение драйвера EVMS, для использования которого потребуется соответствующий пользовательский инструментарий (пакет evms). При этом отпадает необходимость во включении Multi-device support (следующий пункт главного меню). При включении EVMS Kernel Runtime разворачивается подменю с многочисленными пунктами, обеспечивающими поддержку конкретных накопителей, файловых систем и прочих фич.

EVMS Local Device Manager

Поддержка локальных дисков, как IDE, так и SCSI. Очевидно, что при желании использовать EVMS необходима.

EVMS DOS Segment Manager

Поддержка DOS-схемы разбиения диска, используемой и в Linux, так что также обязательна. Обеспечивает также распознавание BSD-схемы разбиения диска и еще нескольких.

EVMS GPT Segment Manager

Поддержка схемы разбиения, принятой на машинах IA-64. Видимо, только для них и нужна.

EVMS SnapShot Feature

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

EVMS DriveLink Feature

Включение возможности слияния разных устройств и разделов на них в единое виртуальное дисковое пространство, подобно программному RAID'у или LVM. Собственно, это - одна из основных функций EVMS, так что выключать эту опцию бессмысленно.

EVMS Bad Block Relocation (BBR) Feature

Включение еще одной продвинутой фичи EVMS - возможности ремаппинга дискового пространства с перемещением информации из запорченных блоков на свободное место. Не вредно в любом случае, так что лучше включить.

EVMS Linux LVM Package

Включение режима совместимости с логическими томами Linux. Очевидно, нужна, если таковые были ранее созданы и был установлен соответствующий пользовательский инструментарий (пакет lvm-user). В противном случае, насколько я понимаю, в ней необходимости нет, так как EVMS обеспечивает ту же (и даже большую) функциональность.

EVMS Linux MD Package

Аналогично предыдущему, обеспечивает совместимость с программными RAID-массивами.

EVMS AIX LVM Package

Обеспечивает совместимость с логическими томами AIX.

EVMS OS/2 LVM Package

Обеспечивает совместимость с логическими томами OS/2.

Multi-device support (RAID and LVM)

Опции, обеспечивающие использование логических томов и программных RAID-массивов. Не нужно включать, если используется EVMS.

Multiple devices driver support

Общая поддержка Multiple devices. Без ее включения ничего нижеследующего не появляется.

RAID support

Общая поддержка программного RAID'а.

Linear (append) mode

Насколько понимаю, просто последовательное заполнение пространства на двух (или более) разделах.

RAID-0 (striping) mode

RAID нулевого уровня - с расщеплением, якобы для повышения производительности.

RAID-1 (mirroring) mode

RAID первого уровня - с зеркалированием (100-процентная избыточность, якобы сохранности для.

RAID-4/RAID-5 mode

RAID'ы с избыточностью, деталей не знаю, см. соотв. литературу.

Multipath I/O support

Никогда не сталкивался - без комментариев.

Logical volume manager

Общая поддержка логических томов.

Networking options

Поддержка сетевых протоколов, интерфейсов и устройств (но не сетевых карт). Я в этом мало что понимаю, поэтому остановлюсь только на тех пунктах, которые кажутся заведомо необходимыми.

Packet socket

Взаимодействие сетевых устройств, минуя сетевые протоколы? Считается необходимым.

Packet socket: mmapped IO

Не знаю.

Netlink device emulation

Network packet filtering

Socket Filtering

Unix domain sockets

Опция необходимая, так как используется программами и локально (например, Иксами).

TCP/IP networking

Как нетрудно догадаться, поддержка протокола TCP/IP. Также необходима для нормального функционирования Иксов локально.

Все прочие опции у меня отключены.

Telephony Support

Информации не имею, у меня отключено.

ATA/IDE/MFM/RLL support

Очень важный пункт - поддержка дисковых накопителей IDE.

ATA/IDE/MFM/RLL support

Общая поддержка ATA-интерфейса. Необходима, если только не все устройства в системе - SCSI.

Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

Поддержка интерфейса EIDE. В современных условиях необходимо.

Use old disk-only driver on primary interface

Поддержка старых однолинейных IDE-контроллеров. Анахронизм.

Include IDE/ATA-2 DISK support

Поддержка IDE-дисков. Если не все диски SCSI - необходима.

Use multi-mode by default

Включается

Auto-Geometry Resizing support

Для больших дисков и старых BIOS. Анахронизм.

Include IDE/ATAPI CDROM support

Поддержка CD ROM с ATA-интерфейсом. Считается необходимой. Однако, если в системе имеется только один привод CD-R/RW, ее можно отключить, включив зато эмуляцию SCSI (см. чуть ниже).

Include IDE/ATAPI TAPE support

Поддержка стриммеров с ATA-интерфейсом. Если таковые имеются - необходима.

Include IDE/ATAPI FLOPPY support

Необходимо для работы с приводами IDE Zip и супердискетами типа LS-120, больше ни для чего. Так что если таковых не имеется - можно смело отключить.

SCSI emulation support

Эмуляция протокола SCSI через IDE-интерфейс В современных условиях практически необходима, так как требуется для работы с пишущими приводами CD-R/RW. Обычно включается как модуль, однако можно жестко встроить в ядро, отключив поддержку IDE/ATAPI CDROM, как было сказано выше. Это потребует также встраивания в ядро поддержки SCSI, о чем см. в следующем пункте главного меню.

IDE Taskfile Access, IDE Taskfile IO

Смысла не знаю, у меня отключено.

IDE chipset support/bugfixes

Поддержка (и коррекция ошибок) для всяких наборов логики материнских плат.

CMD640 chipset bugfix/support

Требуется счастливым обладателям мам с таким чипсетом.

Generic PCI IDE chipset support

В отличие от предыдущего, требуется всем, хоть как-то использующим IDE.

Sharing PCI IDE interrupts support

Разделение прерываний с другими PCI-устройствами. Обычно необходимо.

Generic PCI bus-master DMA support

Поддержка DMA-режима. Необходима.

Boot off-board chipsets first support

Поддержка загрузки с внешнего контроллера, например, дополнительного IDE или IDE-RAID. Необходима в том случае, если загрузка предполагается с дисков на RAID-контроллере.

Force enable legacy 2.0.X HOSTS to use DMA

Что-то очень устарелое.

Use PCI DMA by default when available

Использование DMA-режима по умолчанию. Обычно включается. Отключать следует в том случае, если это приводит к ошибкам.

Enable DMA only for disks

Включение этой опции приводит к тому, что DMA-режим не используется для CD ROM (только для дисков). Требовалось для старых CD, которые работали в DMA-моде с ошибками. Нынче обычно отключается.

ATA Work(s) In Progress

Говорят, что-то очень экспериментальное, включать не рекомендуется.

AEC62XX chipset support, ALI M15x3 chipset support, AMD and nVidia IDE support, CMD64X and CMD680 chipset support, CY82C693 chipset support, Cyrix CS5530 MediaGX chipset support, HPT34X chipset support, HPT366/368/370 chipset support

Требуется обладателям материнских плат с поименованными чипсетами.

Intel PIIXn chipsets support, PIIXn Tuning support

Требуется для всех современных интеловских чипсетов.

NS87415 chipset support, OPTi 82C621 chipset enhanced support, RZ1000 chipset bugfix/support, ServerWorks OSB4/CSB5/CSB6 chipsets support, SiS5513 chipset support, SLC90E66 chipset support, Tekram TRM290 chipset support

Опять же для обладателей соответствующих чипсетов.

VIA82CXXX chipset support

Требуется для всех современных чипсетов VIA под любые процессоры.

Support for IDE Raid controllers

Поддержка аппаратных контроллеров IDE RAID. Требуется при наличии оного.

Support Promise software RAID

Поддержка контроллеров типа FastTrack.

SCSI support

Опции, относящиеся ко всяким SCSI-устройствам.

SCSI support

Общая поддержка SCSI-интерфейса. Практически необходима даже при отсутствии соответствующих устройств, так как требуется для работы CD-R/RW, USB-накопителей, ZIP-приводов на параллельном порту. Обычно подключается как модуль, однако если ранее (в разделе о IDE-устройствах) была отключена поддержка ATAPI CD ROM и встроена - эмуляция SCSI через IDE, общую поддержку SCSI также лучше встроить в ядро.

SCSI support type

Поддержка SCSI-накопителей.

SCSI disk support

Требуется, как ни странно, для работы с USB-накопителями. Если общая поддержка SCSI была встроена в ядро, с этой опцией лучше поступить также.

SCSI tape support

Поддержка SCSI-стриммеров, требуется при наличии такового.

SCSI OnStream SC-x0 tape support

Тоже что-то из области стриммеров.

SCSI CD-ROM support

Поддержка SCSI CD-ROM. Ее нужно встроить в ядро, если то же было сделано с IDE-SCSI.

SCSI generic support

Поддержка SCSI. Требуется для работы с CD-R/RW и USB-приводами. Встраивается в ядро или подключается как модуль в зависимости от того, как ранее мы поступили с IDE-SCSI и SCSI вообще.

Прочие пункты этого подменю относятся ко всяким SCSI-специфичным штучкам (их можно отключить, если используется только эмуляция SCSI), а также к конкретным SCSI-контроллерам.

Fusion MPT device support

Просто не знаю, что это.

IEEE 1394 (FireWire) support

Поддержка интерфейса FireWire. Никогда этих устройств не видел, поэтому - без комментариев.

I2O device support

Аналогично предыдущему пункту.

Network device support

Поддержка сетевых устройств и протоколов (в том числе и для модемного соединения).

Network device support

Общая поддержка сетевых устройств. Можно отключить только в том случае, если не предполагается никакого соединения (в том числе и модемного).

ARCnet devices

Без комментариев.

Dummy net driver support

Необходимо для модемного соединения.

PPP (point-to-point protocol) support

Поддержка соединения PPP (по протоколу точка-точка), необходимо при модемном подключении.

PPP multilink support

Включение поддержки одновременной работы с несколькими модемами на одной линии.

PPP support for async serial ports

Поддержка PPP-соединения по обычному асинхронному последовательному порту (то есть необходимо при модемном подключении).

PPP support for sync tty ports

Не знаю.

PPP Deflate compression, PPP BSD-Compress compression

Поддержка различных алгоритмов компрессии данных при модемном подключении, зависит от провайдера, обычно включаются оба.

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

Прочие опции этого раздела относятся к конкретным сетевым картам и интерфейсам.

Amateur Radio support

Что-то из области радиолюбительства.

IrDA (infrared) support

Поддержка инфракрасного интерфейса.

ISDN subsystem

Поддержка ISDN-соединения, в наших условиях не актуально.

Input core support

Требуется для поддержки USB-устройств ввода (мышей, клавиатур, джойстиков), в дальнейшем потребует подключения интерфейса HID (см. раздел о USB-устройствах).

Keyboard support

Для USB-клавиатур.

Mouse support

Для USB-мышей.

Joystick support

Для джойстиков.

Event interface support

Не знаю.

Character devices

Опции поддержки многочисленных символьных устройств.

Virtual terminal

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

Support for console on virtual terminal

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

Standard/generic (8250/16550 and compatible UARTs) serial support

Поддержка стандартных последовательных портов. Необходима, в частности, для работы модема.

Support for console on serial port

Осталось с тех времен, когда терминалы подключались по соответствующему интерфейсу.

Extended dumb serial driver options

Опции для поддержки более чем 4-х последовательных портов и другие, смысла которых я не знаю.

Non-standard serial port support

Не встречался.

Unix98 PTY support

Поддержка псевдотерминалов, необходима в очень многих случаях (например, сюда относятся эмуляторы терминала в Иксах).

(256) Maximum number of Unix98 PTYs in use (0-2048)

Ограничение максимального количества оных (можно оставить значение по умолчанию).

I2C support

Опция необходима для поддержки аппаратных сенсоров, твтюнеров, по крайней мере на чипе bt848.

Mice

Поддержка мышей, кроме последовательных.

Bus Mouse Support

Шинные (то есть подключаемые к специальной плате) мыши. Думаю, все давно самортизированы.

Mouse Support (not serial and bus mice)

Понятно из названия, включают:

PS/2 mouse (aka "auxiliary device") support

Большинство ныне живущих, кроме USB.

И еще несколько, о которых я не слышал.

Joysticks

Не интересовался за ненадобностью.

QIC-02 tape support

Опять какой-то стриммер.

Watchdog Cards

Без комментариев.

Далее следует несколько опций не вполне ясного назначения.

/dev/agpgart (AGP Support)

Поддержка шины AGP, очевидно, нужна на всех современных машинах.

Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850

Поддержка AGP для поименованных чипсетов.

Intel I810/I815/I830M (on-board) support

Поддержка интегрированного видео для поименованных чипсетов.

VIA chipset support

Поддержка AGP для чипсетов VIA, и так далее.

Direct Rendering Manager

Поддержка 3D графики в Иксах для карт из списка, открывающегося при включении этой опции.

ACP Modem (Mwave) support

Поддержка программных модемов.

Multimedia devices

Video For Linux и тому подобное.

File systems

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

Напомню, что в качестве родных (native) файловых систем в Linux ныне могут использоваться Ext2fs, Ext3fs, ReiserFS, JFS и XFS (вариант с размещением на FAT-разделе не рассматриваем как баловство). Поддержка прочих файловых систем обеспечивает доступ к ним на уровне обмена данными (для ряда систем, например, NTFS - практически только для чтения).

Quota support

Поддержка дисковых квот пользователей. На настольной машине не нужно.

Kernel automounter support, Kernel automounter version 4 support (also supports v3)

Автоматическое монтирование удаленных файловых систем. На настольной машине не обязательно.

Reiserfs support

Необходимо включить, если используется.

ADFS file system support, Amiga FFS file system support, Apple Macintosh file system support, BeOS file systemv(BeFS) support (read only), BFS file system support

Всякие разные файловые системы, кому нужно - сам знает.

Ext3 journalling file system support

Очень не помешает включить, если захочется прикрутить журналирование к стандартной ext2fs. А вот поддержка отладки (JBD (ext3) debugging support) - совсем даже и не к чему.

DOS FAT fs support

Поддержка всего FAT'образного семейства.

MSDOS fs support

Обычная файловая система DOS (FAT16).

UMSDOS: Unix-like file system on top of standard MSDOS fs

Unix-подобная надстройка над FAT, на которой может быть установлен Linux. ИМХО, баловство чистой воды.

VFAT (Windows-95) fs support

FAT с длинными именами.

EFS file system support

Старая файловая система для IRIX.

Journalling Flash File System (JFFS) support

Journalling Flash File System v2 (JFFS2) support

Compressed ROM file system support

Вроде бы файловые системы на твердотельных устройствах?

Virtual memory file system support (former shm fs)

Файловая система в оперативной памяти (tmpfs), вещь ныне очень нужная, лучше включить. Может монтироваться (без форматирования) в каталоги типа /tmp, немало способствуя быстродействию (при достаточном объеме памяти физической).

ISO 9660 CDROM file system support

Поддержка обычной файловой системы CD-дисков плюс расширение RockRidge (для передачи длинных имен файлов и их атрибутов в стиле Unix). Необходима и для записи CD-R/RW в стандартном формате.

Microsoft Joliet CDROM extensions

Поддержка расширения Joliet для передачи длинных имен в стиле Windows (то есть требуется для нормального доступа ко всякого рода фабричным дискам, например, мультимедийным). Необходима также для записи CD-R/RW при создании их образом с опцией -J.

Transparent decompression extension

Поддержка Linux-специфичного расширения RockRidge для чтения компрессированных дисков.

JFS filesystem support

Поддержка журналируемой файловой системы JFS для Linux.

Minix fs support

Поддержка файловой системы Minix - бабушки ext2fs.

FreeVxFS file system support

Поддержка формата файловых систем VERITAS (SCO UnixWare и др.).

NTFS file system support

Поддержка файловой системы NTFS (гарантированно - только для чтения).

OS/2 HPFS file system support

Поддержка файловой системы OS/2 HPFS.

/proc file system support

Поддержка файловой системы процессов, представляющей протекающие в системе процессы в виде файлов. Практически необходимо во всех случаях.

Kernel configuration visible in /proc/config

Представление текущей конфигурации ядра в виде файла /proc/config. Полезно включить на тот случай, если файл /usr/src/linux/.config будет утерян в результате неаккуратных действий (команды make mrproper, например). В этом случае его можно воссоздать командой

$ cat /proc/config > /usr/src/linux/.config

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

/dev file system support

Поддержка файловой системы устройств - devfs. Делает ненужным создание файлов устройств с помощью команды mknod или сценария /dev/MAKEDEV, создает файлы подключаемых устройств на лету, избавляет от захламленности каталога /dev. На мой взгляд, ныне практически необходима. Однако по этому поводу следует учитывать специфику конкретного дистрибутива (см. следующий пункт).

Automatically mount at boot

Автоматическое монтирование devfs при загрузке системы. При включении этой опции (вместе с /dev file system support, разумеется) отпадает необходимость в настройках демона devfsd, однако исчезает обратная совместимость - то есть к файлам устройств уже нельзя будет обращаться в старой номенклатуре - как /dev/hda1 и т.д. Чтобы такая совместимость появилась - потребуется внести коррективы в файл /etc/devfsd.conf. Следует ли включать эту опцию - вопрос спорный, и зависит от конкретного дистрибутива. Например, в Gentoo делать этого не рекомендуется, а в CRUX - не просто рекомендуется, но требуется обязательно.

Debug devfs

А вот отладку devfs, как и любой другой файловой системы, на настольной машине можно спокойно отключить.

/dev/pts file system for Unix98 PTYs

Виртуальная файловая система для представления псевдотерминалов, которые мы включили в разделе Character devices. Если так, и файловая система devfs не используется, опция должна быть включена обязательно. При использовании devfs никакой необходимости в ней нет.

QNX4 file system support

Поддержка доступа к файловой системе QNX 4-й версии (но не 6-й, и только для чтения).

ROM file system support

Поддержка файловой системы, используемой на установочных и rescue-дискетах. В обычных условиях необходимости в ней не возникает.

Second extended fs support

Поддержка файловой системы Ext2fs - основной (и до недавнего времени единственно родной) для Linux. По ряду соображений включение ее практически обязательно, даже если корневой и все прочие разделы диска несут какую-либо журналируемую файловую систему. И к слову - без поддержки Ext2fs невозможна и работа с Ext3fs.

System V/Xenix/V7/Coherent file system support

Поддержка всяких Юниксовых файловых систем.

UDF file system support (read only)

Поддержка доступа к файловой системе на CD-RW, записанных в пакетном режиме, и стандартной для DVD-дисков.

UDF write support

Поддержка UDF на запись. Практически пакетная запись CD-RW потребует еще и специфического патча ядра, а также соответствующего инструментария, так что в целесообразности этой опции я не уверен.

UFS file system support (read only)

Поддержка доступа к файловой системе FreeBSD сотоварищи (NetBSD, OpenBSD) на локальных дисках. Для доступа к ним по сети не требуется (но тогда нужно включить поддержку NFS, о чем будет говориться позднее).

UFS file system write support

Поддержка записи на UFS-разделы. Считается весьма опасной.

XFS filesystem support

Поддержка файловой системы XFS - наиболее совершенной (ИМХО) из нативных для Linux. Тем не менее, этого пункта в канонической vanilla не найти - он появляется только в ядрах, пропатченных соответствующим патчем от SGI. В этой файловой системе реализованы всякого рода дополнительные фичи, за которые и отвечают нижеследующие опции.

ACL support

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

Realtime support

Поддержка т.н. субтомов реального времени (realtime subvolume) - отдельных областей дискового пространства, предназначенных только для хранения данных. Используется, насколько можно понять, при работе с потоковыми мультимедийными данными.

Quota support

Поддержка расширенного управления дисковыми квотами для пользователей и групп.

DMAPI support

Интерфейс управления данными.

Debugging support, Pagebuf debugging support

Опять отладка всякого рода - обычно не нужно.

Network File Systems

Как ясно из названия, поддержка сетевых (или, правильнее сказать, удаленных) файловых систем.

Coda file system support (advanced network fs)

Поддержка распределенной файловой системы Coda, деталей не знаю.

InterMezzo file system support

Что-то из той же оперы.

NFS file system support

Поддержка протокола NFS (Network Sharing Protocol, позволяющему монтировать удаленные файловые системы любых Unix-машин (клиентская часть).

Provide NFSv3 client support

NFS server support

Серверная часть NFS.

Provide NFSv3 server support

Provide NFS server over TCP support

SMB file system support

Система для доступа к Windows-ресурсам (дискам и принтерам).

Use a default NLS

Позволяет установить умолчальную кодировку имен файлов в случае их передачи языком, отличным от американского.

NCP file system support

Обеспечивает доступ к ресурсам сетей Novell.

Partition Types

Опции, позволяющие получить доступ к разделам на дисках для архитектур, отличных от PC, созданных в разных операционных системах.

Native Language Support

Поддержка национальных языков в именах файлов (к локализации как таковой никакого отношения не имеет). Содержит множество опций страниц для различных языков и наборов символов. Если использовать в именах файлов только чистую латиницу, необходимости в них нет - умолчальное значение iso8859-1. При общении с теми, кто этого правила не придерживается, можно подключить как модули необходимые кодировки. Для Руси это:

  • Codepage 866 (Cyrillic/Russian)
  • Windows CP1251 (Bulgarian, Belarusian)
  • NLS ISO 8859-5 (Cyrillic)
  • NLS KOI8-R (Russian)
  • NLS KOI8-U/RU
  • NLS UTF8

Inode monitor support

Опция необходима для работы программы imon. Интуитивно понятно, но деталей не знаю.

Console drivers

Опции видеорежимов текстовой консоли

VGA text console

Стандартная текстовая VGA-консоль. Обязательно включается (встраивается в ядро), за исключением двух случаев: безмониторной дистанционно управляемой машины и включения в ядро (не как модуля!) поддержки графической консоли через Frame Buffer (см. далее).

Video mode selection support

Поддержка выбора видеорежима при старте системы. Для переключения видеорежимов в ходе работы не требуется.

MDA text console (dual-headed)

Поддержка старых мониторов MDA или Hercules как вторых (при наличии соответствующей карты). Не актуально.

Frame-buffer support

Поддержка т.н. графической консоли через Frame Buffer. Один из следующих вариантов может быть включен как модуль (наряду с встроенной в ядро VGA text console) или встроен в ядро (в этом случае VGA text console следует отключить).

Support for frame buffer devices

При включении этого пункта разворачиваются нижеследующее меню.

Frame buffer Boot Logo

Выбор логотипа при загрузке - по умолчанию включается при включении поддержки frame buffer и показывает пингвина Tux'а. Варианты выбора зависят от дистрибутива. Если при старте системы предполагается загрузка графической консоли с разрешение 640x480, следует отключить, иначе система не загрузится вообще (впрочем, отключение логотипа не всегда возможно).

Далее идут опции поддержки нескольких типов графических чипов. Они далеко не всегда работают должным образом (а иногда не работают вовсе). В этом случае нужно выбрать поддержку стандартной VESA-консоли.

nVidia Riva support

Frame buffer для Riva и GeForce.

Cirrus Logic support

Для древних чипов с Циррозом Логики.

Permedia2 support

Для карт на чипе Permedia2.

Permedia3 support

То же для Permedia3.

Cyber2000 support

Аналогично (правда, что такое Cyber2000, я не знаю.

VESA VGA graphics console

А эта опция позволяет включить графическую консоль для любых VESA-совместимых карт, то есть практически для всех ныне живущих (кроме, насколько мне известно, Matrox - он обязательно требует явного указания).

VGA 16-color graphics console

А это на тот случай, если и VESA не помогла.

Hercules mono graphics console

Frame Buffer для Hercules - архаизм.

Matrox acceleration

Включение графической консоли для видеокарт Matrox Milleniun I/II, Matrox Mistique, Matrox G100-550, для последних - в том числе и в двухголовом варианте.

ATI Mach64 display support, ATI Radeon display support, ATI Rage128 display support

Frame buffer для ATI'шных карт разных поколений.

SIS acceleration

Графическая консоль для встроенного видео SiS'овских чипсетов под Socket 7.

NeoMagic display support, 3Dfx Banshee/Voodoo3 display support, 3Dfx Voodoo Graphics (sst1) support, Trident support

Соответственно.

Virtual Frame Buffer support

Не очень знаю, что это. В комментарии указано, что не для нормальных машин.

Advanced low level driver options

Многочисленные уточняющие и дополняющие опции.

Monochrome support

Включение монохромного режима

2, 4, 8, 16, 24, 32 bpp packed pixels support

Включение одного из перечисленных цветовых режимов.

Amiga bitplanes support, Amiga interleaved bitplanes support

Включение каких-то Amiga'вских видеорежимов.

Atari interleaved bitplanes (2 planes) support, Atari interleaved bitplanes (4 planes) support, Atari interleaved bitplanes (8 planes) support

Аналогично, но из области Atari

Mac variable bpp packed pixels support

Аналогично - Mac.

VGA 16-color planar support

Поддержка 4-битного цвета (для старых VGA-карт).

VGA characters/attributes support

Имитация в графической консоли чисто текстового режима. Обязательно должна включаться, если поддержка Frame buffer встроена в ядро, а VGA text console, соответственно, отключена.

HGA monochrome support

Опять же о Hercules. Не смотря на экспериментальный статус, являет собой явную архаику.

Support only 8 pixels wide fonts

Поддержка в графической консоли только шрифтов с матрицей 8x8. Лучше не включать - большинство хороших кириллических шрифтов для консоли имеют матрицу 8x16.

Select compiled-in fonts

Встраивание в ядро консольных шрифтов, отличных от умолчальных. ИМХО, нужны:

VGA 8x8 font, VGA 8x16 font

А остальные - нет?

Sound

Поддержка звука.

Sound card support

Общая поддержка звука. Если в следующем ниже списке имеющаяся карта присутствует, можно встроить в ядро или подключить как модуль и то, и другое. Если нет - придется, скорее всего, использовать драйверы ALSA. В этом случае включается как модуль только Sound card support (это вообще обязательное требование для использования ALSA).

Перечислять все карты было бы скучно. Замечу только, что распространенные карты SB AWE 128 используют чип ES1371 и, соответственно, требуют включения пункта Creative Ensoniq AudioPCI 97, а встроенные кодеки - в большинстве случаев Intel ICH (i8xx) etc.

USB support

Как легко догадаться, поддержка шины USB и соответствующих устройств.

Support for USB

Включение общей поддержки USB-устройств. Поскольку недалеко то время, когда USB-драйвы заменят не только флопы, но и (паркуа бы и не па) CD-R/RW, лучше встроить в ядро.

Miscellaneous USB options

Не очень понятен смысл. У меня все это отключено - и USB работают.

USB Host Controller Drivers

Поддержка железных контроллеров USB-шины.

EHCI HCD (USB 2.0) support

Требуется, если на маме есть USB-2.

UHCI (Intel PIIX4, VIA, ...) support

Поддержка стандартного USB на мамах с интеловскими (а также, говорят, VIA'шными) чипсетами.

UHCI Alternate Driver (JE) support

Альтернативного USB-драйвера.

OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support

Этот драйвер обеспечивает поддержку USB для чипсетов, не охваченных предыдущим пунктом.

USB Device Class drivers

Включение поддержки групп USB-устройств (смысл, кажется, очевиден).

USB Audio support

Аудио- устройства.

USB Bluetooth support

Соответственно - в память о Харальде Синезубом.

USB MIDI support

Никогда не видел.

USB Mass Storage support

Необходимо для работы с USB-драйвами (напомню, еще они требуют поддержки SCSI). А вот все подпункты данного пункта - для стандартного USB-накопителя не нужны.

USB Modem (CDC ACM) support

Наверное, поддержка USB-модема?

USB Printer support

То же применительно к принтеру.

USB Human Interface Devices (HID)

Гуманистический интерфейс к USB-устройствам. Требуется для мышей, Клав и прочих джойстиков. При наличии USB-периферии можно включить все гуртом -

USB Human Interface Device (full HID) support

Поная поддержка HID, или выбрать одну из урезанных версий HID:

USB HIDBP Keyboard (basic) support

Поддержка только тети Клавы.

USB HIDBP Mouse (basic) support

То же - только для мышей. Имеет смысл в случае каких-либо проблем с USB-периферией в стандартном режиме HID, ну а также, если имеется в наличии только USB-клава или USB-мышь.

Aiptek 6000U/8000U tablet support

Планшеты поименованные.

Wacom Intuos/Graphire tablet support

Планшеты Wacom'овские.

USB Imaging devices

Сканеры и цифровые камеры.

USB Multimedia devices

Вероятно, внешние тюнеры?

USB Network adaptors

Сетевые адаптеры по USB.

Далее идут еще несколько опций, о которых я ничего не знаю и говорить не буду.

Bluetooth support

И опять - кому интересно, почитайте в "Рыжем Орме", кто такой был Харальд Синезубый (или в "Походах викингов" Стрингольма - благо ее недавно переиздали).

Windows Applications support

Судя по названию, нечто, поддерживающее (на плаву) Виндовые аппликации.

Kernel hacking

Опции для ядреных хакеров. Но кое-что и простым людям может сгодиться.

Kernel debugging

Включение этого пункта вызывает разворачивание подменю, из которого я знаю смысл только одного пункта:

Magic SysRq key

Это включение магической клавиши (реально - комбинация Alt+PrtScr), после чего клавиатура переходит в т.н. отладочный режим, позволяющий, например, более-менее корректно выйти из безнадежно зависшей системы. Раньше я включал эту опцию обязательно (на всякий пожарный). Н последнее время Linux виснуть перестал вообще, и необходимость в ней как бы отпала.

Library routines

М.б. кто просветит, что это такое?

Load an Alternate Configuration File

Считывание некоего конфигурационного файла, отличного от умолчального (каковым выступает /usr/src/linux/.config). Требует ручного указания полного пути в нужному файлу.

Save Configuration to an Alternate File

Обратно - запись опций сконфигурированного ядра в файл, отличный от умолчального /usr/src/linux/.config.