Алексей Федорчук
[email protected]
При участии:
lexb
Kot
Время от времени в разных разделах форума LinuxShop возникают вопросы по конфигурированию ядра Linux. В связи с этим я решил собрать воедино все, что знаю по этому поводу. Сразу замечу, что знаю я далеко не все. И потому некоторые опции останутся пока без комментариев. Надеюсь на помощь посетителей сайта для заполнения пробелов.
Помимо просто описания смысла известных мне опций, я постараюсь осветить вопрос их взаимосвязей, поскольку они не всегда прозрачны и "интуитивно понятны".
Изложение ведется в порядке пунктов меню, генерируемых командой make menuconfig для ядра версии 2.4.20-XFS (дистрибутив Gentoo Linux). В каноническом ядре vanilla с www.kernel.org некоторых опций не будет. С другой стороны, ядра, включенные в состав других дистрибутивов, могут включать некоторые дополнительные опции. Однако думаю, что 99% опций имеют общее значение для текущей версии. И с выходом версии 2.21 вряд ли принципиально изменятся.
И еще: все рекомендации, основанные на моем личном опыте, даются в предположении настольного использования. Для сервера все может быть совсем по другому.
Изложение структурировано следующим образом:
обозначает пункты главного меню,
отдельные опции внутри пунктов или пункты, открывающие вложенные подменю,
субопции, открываемые только при включении основной опции, или пункты вложенных подменю.
Опции, отражающие "зрелость кода". Собственно, в этом пункте только одна опция -
При ее включении в остальных пунктах главного меню появляются опции, имеющие статус разрабатываемых или экспериментальных. Надо заметить, что многие опции сохраняют этот статус на протяжении всего времени моего знакомства с Linux, что не мешает им функционировать вполне справно. Подлежит включению в любом случае, так как иначе не будут видны многие необходимые опции, разрабатываемость или экспериментальность которых не мешает их нормальному функционированию.
Поддержка загружаемых модулей ядра. Содержит три опции.
Включение поддержки загружаемых модулей вообще. Не смотря на то, что я предпочитаю практически все необходимое встраивать в ядро, включение этой опции целесообразно в подавляющем большинстве случаев. Во-первых, некоторые опции доступны только в виде загружаемых модулей. Во-вторых, в качестве модулей обычно реализованы фирменные драйверы поддержки всяческого экзотического оборудования. Да и не очень экзотического - например, видеокарт. И в третьих, некоторые опции должны быть в принципе доступны, но требуются столь редко, что их просто нет смысла встраивать в ядро (пример - опция Kernel configuration visible in /proc/config в разделе File systems). Отключение этой опции приведет к тому, что две следующие также станут недоступными.
Включение информации о версиях модулей. Необходима для того, чтобы модули сторонних производителей, не входящие в состав ядра (например, те же драйверы производителей оборудования) сохранялись после перекомпиляции ядра. Обычно включается, хотя в некоторых случаях эта опция может привести к ошибками при компиляции ядра. Буде такая ситуация возникнет - опцию придется отключить.
Автоматическая загрузка модулей при необходимости в них. Очевидно, что эту опцию следует включить.
Опции установки типа процессора, максимального объема адресуемой памяти и некоторых других особенностей, в частности - поддержки мультипроцессорности.
Оптимизация под конкретный процессор. Состав этого пункта определяется не столько версией ядра, сколько версией компилятора gcc. В настоящее время доступна оптимизация под следующие процессоры:
Очевидно, что следует выбирать наиболее подходящий тип процессора - для некоторых камней и на некоторых задачах это дает весьма высокий выигрыш в производительности.
Включение детектирования проблем. Смысл этой опции мне не очень ясен, обычно я ее отключаю.
Очевидно, имеют смысл только для обладателей соответствующих машин.
Включает возможность загрузки обновлений микрокода. Абсолютно бессмыслена для юольшинства позователей, поскольку а) нужно иметь впридачу этот самый микрокод и б) все BIOSы мат.плат, выпущенных за последние лет 5, делают тоже самое - автоматически загружают обновления микрокода при старте машины.
Смысл остается неясным.
Опция необходима, чтобы получить из файловой системы /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
Включение/отключение использования памяти свыше 4 Гбайт. Возможные значения - off (при объеме ОЗУ менее 1 Гбайт), 4 GB (при памяти от 1 до 4 Гбайт), 64 GB (при объеме памяти свыше 4 Гбайт, только для процессоров от PentiumPro и выше).
В текущей версии ядра не документировано, поэтому я оставляю значение по умолчанию.
Использование страниц верхней памяти для ввода/вывода. Вроде бы должно способствовать увеличению производительности, однако точный смысл опции остается для меня не вполне ясным.
Эмуляция сопроцессора при его физическом отсутствии (когда это было...).
Включение дополнительных регистров памяти для PentiumPro и выше. Лучше включать, в том числе и для процессоров AMD.
Поддержка симметричной мультипроцессорности. Очевидно, должно включаться, если процессоров больше одного. Полагаю, что нужна также для Penyium 4 с поддержкой HyperThreading'а.
Включение продвинутого контроллера прерываний для однопроцессорных машин (для SMP-машин включается по умолчанию). Считается, что это нужно включить, хотя и при отключении ничего нехорошего не происходит.
Не понимая смысла этой опции, отключаю.
Как следует из названия, поддержка опций общего характера, то есть мешанина из сетевых, шинных и прочих опций, однако - очень важных, и потому тут при выборе следует быть внимательным.
Общая поддержка сети. Обязательна даже на локальной машине без всякого сетевого инвентаря вообще, так как многие программы для своей работы локально имитируют сетевые взаимодействия (характерный пример - Иксы).
Общая поддержка шины PCI, обязательно должны быть включена.
Режим доступа к PCI-устройствам, непосредственны (Direct), через BIOS или произвольный (Any). В настоящее время обычно включается последний.
Следует включить, если эта шина и устройства для нее еще уцелели.
Обычно включается, после чего информация о PCI-устройствах доступна через файловую систему /proc. Отключается в том случае, если нужно любым путем уменьшить размер ядра.
А вы их видели? Я - так нет.
Поддержка устройств, допускающих "горячее" подключение. Необходима для работы со всякого рода PC-картами, USB-накопителями и вообще USB-устройствами, в т.ч. цифровыми камерами. При этом целесообразно включить еще и поддержку файловой системы devfs в пункте File systems главного меню (см. соответствующий раздел).
Появляется только при включении предыдущего пункта. Поддержка всякого рода PC-карт должны быть включена, если таковые имеются (обычно для ноутбуков).
Появляется только при включении hot-pluggable devices. Включается при наличии на маме PCI Hotplug controller и позволяет втыкать и удалять PCI-устройства в работающей машине. Мне такого видеть не доводилось.
Поддержка межпроцессорного взаимодействия (Inter Process Communication) в стиле System V. Должна быть включена обязательно, так как используется большинством программ.
Позволяет получить расширенную информацию л процессах, могущую быть использованной многими программами. Не то чтобы обязательно, но обычно включается. Однако прожить без нее можно - у меня, например, выключено, и ничего, живу.
Позволяет динамически изменять параметры ядра без его пересборки и без перезагрузки машины. Считается практически обязательной, если нет большой необходимости ужать ядро. Требует поддержки файловой системы /proc в пункте File systems.
Определяет формат образа ядра, доступного через файловую систему /proc. Второе возможное значение - A.OUT, - в настоящее время практического значения не имеет.
Поддержка старого формата исполнимых файлов a.out. Часто рекомендуют включать для совместимости, однако ныне это практического смысла, по моему, не имеет. Программ в a.out почти не осталось, а если и есть, заставить их работать в современных системах - задача, мягко говоря, не из самых простых.
Поддержка современного формата исполнимых файлов ELF. Так как все современные программы именно в этом формате и собираются, обязательна к включению.
Поддержка прочих исполнимых и run-time форматов, в том числе и для других ОС, обеспечивает запуск Java-приложений. Кому это нужно - сам знает, я же всегда отключаю.
Включение управления питанием. Я выключаю. Однако есть мнение, что лучше включать даже на десктопе. В частности, без этой опции ATX'ные машины не выключаются автоматически по команде halt.
Поддержка расширенного управления питанием для BIOS'ов, имеющих соответствующую функцию. Я отключаю.
Это замена APM (вероятно, более продвинутая?) Если включить этот пункт, развернется подменю с рядом вложенных пунктов:
Требуется для поддержки флэш-памяти, твердотельной памяти и родственных устройств. Поскольку никогда с таковыми не сталкивался - оставляю без комментариев. Замечу только, что для обычных USB-накопителей не нужна. Если включить этот пункт, развернется вложенное меню, на котором также останавливаться не буду за полным незнанием.
Поддержка параллельного порта
Общая поддержка параллельного порта. Следует включить, если таковой используется.
Поддержка обычного для персоналок параллельного интерфейса. Очевидно, что если включен предыдущий пункт, следует сказать б) и включить и этот.
Поддержка чуждого персоналкам параллельного интерфейса. Вряд ли кому потребуется.
Поддержка всяких параллельных улучшений типа EPP/ECP. Включать по необходимости.
Общий смысл ясен из названия.
Общая поддержка устройств Plug and Play. Насколько я понимаю, для современных PCI-карт не обязательна - у меня она стандартно выключена, но вся PCI-периферия работает. Тем не менее, для страховки можно включить, тогда появится подпункт
Очевидно, что эта опция потребуется, если сохранились ISA-устройства.
Пункт, где собрана поддержка всяких блочных устройств, но не дисков и большинства прочих накопителей, как можно было бы подумать.
Легко догадаться, что это именно поддержка нормальных флоппиков. У меня выключена, что, понятно, не препятствует загрузке машины с дискеты при необходимости (при выставлении соответствующей опции BIOS).
Поддержка каких-то экзотических контроллеров, о которых я слыхом не слыхивал, поэтому - без комментариев.
Поддержка т.н. loopback-устройств (адекватного перевода на русский не существует). Включение ее позволяет, например, монтировать iso-образы CD-дисков, как обычные файловые системы на дисковых разделах, так что практически необходима.
Поддержка сетевых дисков, мало что про это знаю.
Поддержка виртуальных дисков в оперативной памяти. Необходима, если на таком диске располагается корневая файловая система. Обычно используется для всякого рода rescue-носителей. Кроме того, некоторые дистрибутивы монтируют на RAM-диск initrd, в этом случае опция должна быть включена обязательно. Однако нынче для initrd чаще используется файловая система tmpfs, в этом случае RAM-диск не нужен.
Умолчальный размер RAM-диска.
Собственно включение initrd - виртуального диска, на который при старте системы монтируется корневая файловая система перед продолжением нормальной загрузки и монтированием настоящего корня на дисковом разделе. Используется для загрузки модулей, требующихся до монтирования реального корня (например, красивых грфических заставок при корне). Включать или не включать - зависит от дистрибутива.
В дистрибутивах типа Gentoo, CRUX, Sorcerer и подобных поддержка RAM-диска обычно не нужна.
Интуитивно понятно, что включение этой опции предоставляет некую дополнительную информацию через файловую систему /proc. Однако деталей не знаю, у меня выключено.
Этот пункт имеется в главном меню только соответствующим образом пропатченных ядер, в канонической vanilla его нет. EVMS обеспечивает универсальный механизм для работы с дисковыми разделами, логическими томами (LVM), программными RAID-массивами, файловыми системами. Вещь очень полезная и интересная, но требует глубокого изучения.
Собственно включение драйвера EVMS, для использования которого потребуется соответствующий пользовательский инструментарий (пакет evms). При этом отпадает необходимость во включении Multi-device support (следующий пункт главного меню). При включении EVMS Kernel Runtime разворачивается подменю с многочисленными пунктами, обеспечивающими поддержку конкретных накопителей, файловых систем и прочих фич.
Поддержка локальных дисков, как IDE, так и SCSI. Очевидно, что при желании использовать EVMS необходима.
Поддержка DOS-схемы разбиения диска, используемой и в Linux, так что также обязательна. Обеспечивает также распознавание BSD-схемы разбиения диска и еще нескольких.
Поддержка схемы разбиения, принятой на машинах IA-64. Видимо, только для них и нужна.
Поддержка одной из продвинутых особенностей EVMS - возможности создания снапшота текущего положения дисковых разделов и томов в целях резервного копирования, восстановления и т.д. Очень полезно, так что лучше включить.
Включение возможности слияния разных устройств и разделов на них в единое виртуальное дисковое пространство, подобно программному RAID'у или LVM. Собственно, это - одна из основных функций EVMS, так что выключать эту опцию бессмысленно.
Включение еще одной продвинутой фичи EVMS - возможности ремаппинга дискового пространства с перемещением информации из запорченных блоков на свободное место. Не вредно в любом случае, так что лучше включить.
Включение режима совместимости с логическими томами Linux. Очевидно, нужна, если таковые были ранее созданы и был установлен соответствующий пользовательский инструментарий (пакет lvm-user). В противном случае, насколько я понимаю, в ней необходимости нет, так как EVMS обеспечивает ту же (и даже большую) функциональность.
Аналогично предыдущему, обеспечивает совместимость с программными RAID-массивами.
Обеспечивает совместимость с логическими томами AIX.
Обеспечивает совместимость с логическими томами OS/2.
Опции, обеспечивающие использование логических томов и программных RAID-массивов. Не нужно включать, если используется EVMS.
Общая поддержка Multiple devices. Без ее включения ничего нижеследующего не появляется.
Общая поддержка программного RAID'а.
Насколько понимаю, просто последовательное заполнение пространства на двух (или более) разделах.
RAID нулевого уровня - с расщеплением, якобы для повышения производительности.
RAID первого уровня - с зеркалированием (100-процентная избыточность, якобы сохранности для.
RAID'ы с избыточностью, деталей не знаю, см. соотв. литературу.
Никогда не сталкивался - без комментариев.
Общая поддержка логических томов.
Поддержка сетевых протоколов, интерфейсов и устройств (но не сетевых карт). Я в этом мало что понимаю, поэтому остановлюсь только на тех пунктах, которые кажутся заведомо необходимыми.
Взаимодействие сетевых устройств, минуя сетевые протоколы? Считается необходимым.
Не знаю.
Опция необходимая, так как используется программами и локально (например, Иксами).
Как нетрудно догадаться, поддержка протокола TCP/IP. Также необходима для нормального функционирования Иксов локально.
Все прочие опции у меня отключены.
Информации не имею, у меня отключено.
Очень важный пункт - поддержка дисковых накопителей IDE.
Общая поддержка ATA-интерфейса. Необходима, если только не все устройства в системе - SCSI.
Поддержка интерфейса EIDE. В современных условиях необходимо.
Поддержка старых однолинейных IDE-контроллеров. Анахронизм.
Поддержка IDE-дисков. Если не все диски SCSI - необходима.
Включается
Для больших дисков и старых BIOS. Анахронизм.
Поддержка CD ROM с ATA-интерфейсом. Считается необходимой. Однако, если в системе имеется только один привод CD-R/RW, ее можно отключить, включив зато эмуляцию SCSI (см. чуть ниже).
Поддержка стриммеров с ATA-интерфейсом. Если таковые имеются - необходима.
Необходимо для работы с приводами IDE Zip и супердискетами типа LS-120, больше ни для чего. Так что если таковых не имеется - можно смело отключить.
Эмуляция протокола SCSI через IDE-интерфейс В современных условиях практически необходима, так как требуется для работы с пишущими приводами CD-R/RW. Обычно включается как модуль, однако можно жестко встроить в ядро, отключив поддержку IDE/ATAPI CDROM, как было сказано выше. Это потребует также встраивания в ядро поддержки SCSI, о чем см. в следующем пункте главного меню.
Смысла не знаю, у меня отключено.
Поддержка (и коррекция ошибок) для всяких наборов логики материнских плат.
Требуется счастливым обладателям мам с таким чипсетом.
В отличие от предыдущего, требуется всем, хоть как-то использующим IDE.
Разделение прерываний с другими PCI-устройствами. Обычно необходимо.
Поддержка DMA-режима. Необходима.
Поддержка загрузки с внешнего контроллера, например, дополнительного IDE или IDE-RAID. Необходима в том случае, если загрузка предполагается с дисков на RAID-контроллере.
Что-то очень устарелое.
Использование DMA-режима по умолчанию. Обычно включается. Отключать следует в том случае, если это приводит к ошибкам.
Включение этой опции приводит к тому, что DMA-режим не используется для CD ROM (только для дисков). Требовалось для старых CD, которые работали в DMA-моде с ошибками. Нынче обычно отключается.
Говорят, что-то очень экспериментальное, включать не рекомендуется.
Требуется обладателям материнских плат с поименованными чипсетами.
Требуется для всех современных интеловских чипсетов.
Опять же для обладателей соответствующих чипсетов.
Требуется для всех современных чипсетов VIA под любые процессоры.
Поддержка аппаратных контроллеров IDE RAID. Требуется при наличии оного.
Поддержка контроллеров типа FastTrack.
Опции, относящиеся ко всяким SCSI-устройствам.
Общая поддержка SCSI-интерфейса. Практически необходима даже при отсутствии соответствующих устройств, так как требуется для работы CD-R/RW, USB-накопителей, ZIP-приводов на параллельном порту. Обычно подключается как модуль, однако если ранее (в разделе о IDE-устройствах) была отключена поддержка ATAPI CD ROM и встроена - эмуляция SCSI через IDE, общую поддержку SCSI также лучше встроить в ядро.
Поддержка SCSI-накопителей.
Требуется, как ни странно, для работы с USB-накопителями. Если общая поддержка SCSI была встроена в ядро, с этой опцией лучше поступить также.
Поддержка SCSI-стриммеров, требуется при наличии такового.
Тоже что-то из области стриммеров.
Поддержка SCSI CD-ROM. Ее нужно встроить в ядро, если то же было сделано с IDE-SCSI.
Поддержка SCSI. Требуется для работы с CD-R/RW и USB-приводами. Встраивается в ядро или подключается как модуль в зависимости от того, как ранее мы поступили с IDE-SCSI и SCSI вообще.
Прочие пункты этого подменю относятся ко всяким SCSI-специфичным штучкам (их можно отключить, если используется только эмуляция SCSI), а также к конкретным SCSI-контроллерам.
Просто не знаю, что это.
Поддержка интерфейса FireWire. Никогда этих устройств не видел, поэтому - без комментариев.
Аналогично предыдущему пункту.
Поддержка сетевых устройств и протоколов (в том числе и для модемного соединения).
Общая поддержка сетевых устройств. Можно отключить только в том случае, если не предполагается никакого соединения (в том числе и модемного).
Без комментариев.
Необходимо для модемного соединения.
Поддержка соединения PPP (по протоколу точка-точка), необходимо при модемном подключении.
Включение поддержки одновременной работы с несколькими модемами на одной линии.
Поддержка PPP-соединения по обычному асинхронному последовательному порту (то есть необходимо при модемном подключении).
Не знаю.
Поддержка различных алгоритмов компрессии данных при модемном подключении, зависит от провайдера, обычно включаются оба.
Все опции, относящиеся к модемному соединению, могут быть встроены в ядро или подключены как модули, однако лучше придерживаться единообразия.
Прочие опции этого раздела относятся к конкретным сетевым картам и интерфейсам.
Что-то из области радиолюбительства.
Поддержка инфракрасного интерфейса.
Поддержка ISDN-соединения, в наших условиях не актуально.
Требуется для поддержки USB-устройств ввода (мышей, клавиатур, джойстиков), в дальнейшем потребует подключения интерфейса HID (см. раздел о USB-устройствах).
Для USB-клавиатур.
Для USB-мышей.
Для джойстиков.
Не знаю.
Опции поддержки многочисленных символьных устройств.
Смысл понятен. Опция обязательна к включению на любой настольной машине - без этого локальный доступ к ней невозможен (хотя возможен доступ по сети - как к дистанционно управляемому серверу, например).
Возможность использования виртуального терминала как т.н. системной консоли, на которую выводятся разного рода сообщения. То есть также практически обязательна.
Поддержка стандартных последовательных портов. Необходима, в частности, для работы модема.
Осталось с тех времен, когда терминалы подключались по соответствующему интерфейсу.
Опции для поддержки более чем 4-х последовательных портов и другие, смысла которых я не знаю.
Не встречался.
Поддержка псевдотерминалов, необходима в очень многих случаях (например, сюда относятся эмуляторы терминала в Иксах).
Ограничение максимального количества оных (можно оставить значение по умолчанию).
Опция необходима для поддержки аппаратных сенсоров, твтюнеров, по крайней мере на чипе bt848.
Поддержка мышей, кроме последовательных.
Шинные (то есть подключаемые к специальной плате) мыши. Думаю, все давно самортизированы.
Понятно из названия, включают:
Большинство ныне живущих, кроме USB.
И еще несколько, о которых я не слышал.
Не интересовался за ненадобностью.
Опять какой-то стриммер.
Без комментариев.
Далее следует несколько опций не вполне ясного назначения.
Поддержка шины AGP, очевидно, нужна на всех современных машинах.
Поддержка AGP для поименованных чипсетов.
Поддержка интегрированного видео для поименованных чипсетов.
Поддержка AGP для чипсетов VIA, и так далее.
Поддержка 3D графики в Иксах для карт из списка, открывающегося при включении этой опции.
Поддержка программных модемов.
Video For Linux и тому подобное.
Поддержка файловых систем. Очень важно, чтобы были включены опции всех задействованных файловых систем, причем корневая - обязательно встроена в ядро (не модулем). Да и все монтируемые автоматически при старте также нежелательно подключать как модули.
Напомню, что в качестве родных (native) файловых систем в Linux ныне могут использоваться Ext2fs, Ext3fs, ReiserFS, JFS и XFS (вариант с размещением на FAT-разделе не рассматриваем как баловство). Поддержка прочих файловых систем обеспечивает доступ к ним на уровне обмена данными (для ряда систем, например, NTFS - практически только для чтения).
Поддержка дисковых квот пользователей. На настольной машине не нужно.
Автоматическое монтирование удаленных файловых систем. На настольной машине не обязательно.
Необходимо включить, если используется.
Всякие разные файловые системы, кому нужно - сам знает.
Очень не помешает включить, если захочется прикрутить журналирование к стандартной ext2fs. А вот поддержка отладки (JBD (ext3) debugging support) - совсем даже и не к чему.
Поддержка всего FAT'образного семейства.
Обычная файловая система DOS (FAT16).
Unix-подобная надстройка над FAT, на которой может быть установлен Linux. ИМХО, баловство чистой воды.
FAT с длинными именами.
Старая файловая система для IRIX.
Вроде бы файловые системы на твердотельных устройствах?
Файловая система в оперативной памяти (tmpfs), вещь ныне очень нужная, лучше включить. Может монтироваться (без форматирования) в каталоги типа /tmp, немало способствуя быстродействию (при достаточном объеме памяти физической).
Поддержка обычной файловой системы CD-дисков плюс расширение RockRidge (для передачи длинных имен файлов и их атрибутов в стиле Unix). Необходима и для записи CD-R/RW в стандартном формате.
Поддержка расширения Joliet для передачи длинных имен в стиле Windows (то есть требуется для нормального доступа ко всякого рода фабричным дискам, например, мультимедийным). Необходима также для записи CD-R/RW при создании их образом с опцией -J.
Поддержка Linux-специфичного расширения RockRidge для чтения компрессированных дисков.
Поддержка журналируемой файловой системы JFS для Linux.
Поддержка файловой системы Minix - бабушки ext2fs.
Поддержка формата файловых систем VERITAS (SCO UnixWare и др.).
Поддержка файловой системы NTFS (гарантированно - только для чтения).
Поддержка файловой системы OS/2 HPFS.
Поддержка файловой системы процессов, представляющей протекающие в системе процессы в виде файлов. Практически необходимо во всех случаях.
Представление текущей конфигурации ядра в виде файла /proc/config. Полезно включить на тот случай, если файл /usr/src/linux/.config будет утерян в результате неаккуратных действий (команды make mrproper, например). В этом случае его можно воссоздать командой
$ cat /proc/config > /usr/src/linux/.config
Поскольку необходимость в этом возникает не каждый день, есть смысл подключить эту опцию в виде модуля.
Поддержка файловой системы устройств - devfs. Делает ненужным создание файлов устройств с помощью команды mknod или сценария /dev/MAKEDEV, создает файлы подключаемых устройств на лету, избавляет от захламленности каталога /dev. На мой взгляд, ныне практически необходима. Однако по этому поводу следует учитывать специфику конкретного дистрибутива (см. следующий пункт).
Автоматическое монтирование devfs при загрузке системы. При включении этой опции (вместе с /dev file system support, разумеется) отпадает необходимость в настройках демона devfsd, однако исчезает обратная совместимость - то есть к файлам устройств уже нельзя будет обращаться в старой номенклатуре - как /dev/hda1 и т.д. Чтобы такая совместимость появилась - потребуется внести коррективы в файл /etc/devfsd.conf. Следует ли включать эту опцию - вопрос спорный, и зависит от конкретного дистрибутива. Например, в Gentoo делать этого не рекомендуется, а в CRUX - не просто рекомендуется, но требуется обязательно.
А вот отладку devfs, как и любой другой файловой системы, на настольной машине можно спокойно отключить.
Виртуальная файловая система для представления псевдотерминалов, которые мы включили в разделе Character devices. Если так, и файловая система devfs не используется, опция должна быть включена обязательно. При использовании devfs никакой необходимости в ней нет.
Поддержка доступа к файловой системе QNX 4-й версии (но не 6-й, и только для чтения).
Поддержка файловой системы, используемой на установочных и rescue-дискетах. В обычных условиях необходимости в ней не возникает.
Поддержка файловой системы Ext2fs - основной (и до недавнего времени единственно родной) для Linux. По ряду соображений включение ее практически обязательно, даже если корневой и все прочие разделы диска несут какую-либо журналируемую файловую систему. И к слову - без поддержки Ext2fs невозможна и работа с Ext3fs.
Поддержка всяких Юниксовых файловых систем.
Поддержка доступа к файловой системе на CD-RW, записанных в пакетном режиме, и стандартной для DVD-дисков.
Поддержка UDF на запись. Практически пакетная запись CD-RW потребует еще и специфического патча ядра, а также соответствующего инструментария, так что в целесообразности этой опции я не уверен.
Поддержка доступа к файловой системе FreeBSD сотоварищи (NetBSD, OpenBSD) на локальных дисках. Для доступа к ним по сети не требуется (но тогда нужно включить поддержку NFS, о чем будет говориться позднее).
Поддержка записи на UFS-разделы. Считается весьма опасной.
Поддержка файловой системы XFS - наиболее совершенной (ИМХО) из нативных для Linux. Тем не менее, этого пункта в канонической vanilla не найти - он появляется только в ядрах, пропатченных соответствующим патчем от SGI. В этой файловой системе реализованы всякого рода дополнительные фичи, за которые и отвечают нижеследующие опции.
Поддержка расширенных атрибутов доступа. В нынешних программах, насколько я знаю, пока не используется, но по умолчанию этот пункт включается при включении XFS.
Поддержка т.н. субтомов реального времени (realtime subvolume) - отдельных областей дискового пространства, предназначенных только для хранения данных. Используется, насколько можно понять, при работе с потоковыми мультимедийными данными.
Поддержка расширенного управления дисковыми квотами для пользователей и групп.
Интерфейс управления данными.
Опять отладка всякого рода - обычно не нужно.
Как ясно из названия, поддержка сетевых (или, правильнее сказать, удаленных) файловых систем.
Поддержка распределенной файловой системы Coda, деталей не знаю.
Что-то из той же оперы.
Поддержка протокола NFS (Network Sharing Protocol, позволяющему монтировать удаленные файловые системы любых Unix-машин (клиентская часть).
Серверная часть NFS.
Система для доступа к Windows-ресурсам (дискам и принтерам).
Позволяет установить умолчальную кодировку имен файлов в случае их передачи языком, отличным от американского.
Обеспечивает доступ к ресурсам сетей Novell.
Опции, позволяющие получить доступ к разделам на дисках для архитектур, отличных от PC, созданных в разных операционных системах.
Поддержка национальных языков в именах файлов (к локализации как таковой никакого отношения не имеет). Содержит множество опций страниц для различных языков и наборов символов. Если использовать в именах файлов только чистую латиницу, необходимости в них нет - умолчальное значение iso8859-1. При общении с теми, кто этого правила не придерживается, можно подключить как модули необходимые кодировки. Для Руси это:
Опция необходима для работы программы imon. Интуитивно понятно, но деталей не знаю.
Опции видеорежимов текстовой консоли
Стандартная текстовая VGA-консоль. Обязательно включается (встраивается в ядро), за исключением двух случаев: безмониторной дистанционно управляемой машины и включения в ядро (не как модуля!) поддержки графической консоли через Frame Buffer (см. далее).
Поддержка выбора видеорежима при старте системы. Для переключения видеорежимов в ходе работы не требуется.
Поддержка старых мониторов MDA или Hercules как вторых (при наличии соответствующей карты). Не актуально.
Поддержка т.н. графической консоли через Frame Buffer. Один из следующих вариантов может быть включен как модуль (наряду с встроенной в ядро VGA text console) или встроен в ядро (в этом случае VGA text console следует отключить).
При включении этого пункта разворачиваются нижеследующее меню.
Выбор логотипа при загрузке - по умолчанию включается при включении поддержки frame buffer и показывает пингвина Tux'а. Варианты выбора зависят от дистрибутива. Если при старте системы предполагается загрузка графической консоли с разрешение 640x480, следует отключить, иначе система не загрузится вообще (впрочем, отключение логотипа не всегда возможно).
Далее идут опции поддержки нескольких типов графических чипов. Они далеко не всегда работают должным образом (а иногда не работают вовсе). В этом случае нужно выбрать поддержку стандартной VESA-консоли.
Frame buffer для Riva и GeForce.
Для древних чипов с Циррозом Логики.
Для карт на чипе Permedia2.
То же для Permedia3.
Аналогично (правда, что такое Cyber2000, я не знаю.
А эта опция позволяет включить графическую консоль для любых VESA-совместимых карт, то есть практически для всех ныне живущих (кроме, насколько мне известно, Matrox - он обязательно требует явного указания).
А это на тот случай, если и VESA не помогла.
Frame Buffer для Hercules - архаизм.
Включение графической консоли для видеокарт Matrox Milleniun I/II, Matrox Mistique, Matrox G100-550, для последних - в том числе и в двухголовом варианте.
Frame buffer для ATI'шных карт разных поколений.
Графическая консоль для встроенного видео SiS'овских чипсетов под Socket 7.
Соответственно.
Не очень знаю, что это. В комментарии указано, что не для нормальных машин.
Многочисленные уточняющие и дополняющие опции.
Включение монохромного режима
Включение одного из перечисленных цветовых режимов.
Включение каких-то Amiga'вских видеорежимов.
Аналогично, но из области Atari
Аналогично - Mac.
Поддержка 4-битного цвета (для старых VGA-карт).
Имитация в графической консоли чисто текстового режима. Обязательно должна включаться, если поддержка Frame buffer встроена в ядро, а VGA text console, соответственно, отключена.
Опять же о Hercules. Не смотря на экспериментальный статус, являет собой явную архаику.
Поддержка в графической консоли только шрифтов с матрицей 8x8. Лучше не включать - большинство хороших кириллических шрифтов для консоли имеют матрицу 8x16.
Встраивание в ядро консольных шрифтов, отличных от умолчальных. ИМХО, нужны:
А остальные - нет?
Поддержка звука.
Общая поддержка звука. Если в следующем ниже списке имеющаяся карта присутствует, можно встроить в ядро или подключить как модуль и то, и другое. Если нет - придется, скорее всего, использовать драйверы ALSA. В этом случае включается как модуль только Sound card support (это вообще обязательное требование для использования ALSA).
Перечислять все карты было бы скучно. Замечу только, что распространенные карты SB AWE 128 используют чип ES1371 и, соответственно, требуют включения пункта Creative Ensoniq AudioPCI 97, а встроенные кодеки - в большинстве случаев Intel ICH (i8xx) etc.
Как легко догадаться, поддержка шины USB и соответствующих устройств.
Включение общей поддержки USB-устройств. Поскольку недалеко то время, когда USB-драйвы заменят не только флопы, но и (паркуа бы и не па) CD-R/RW, лучше встроить в ядро.
Не очень понятен смысл. У меня все это отключено - и USB работают.
Поддержка железных контроллеров USB-шины.
Требуется, если на маме есть USB-2.
Поддержка стандартного USB на мамах с интеловскими (а также, говорят, VIA'шными) чипсетами.
Альтернативного USB-драйвера.
Этот драйвер обеспечивает поддержку USB для чипсетов, не охваченных предыдущим пунктом.
Включение поддержки групп USB-устройств (смысл, кажется, очевиден).
Аудио- устройства.
Соответственно - в память о Харальде Синезубом.
Никогда не видел.
Необходимо для работы с USB-драйвами (напомню, еще они требуют поддержки SCSI). А вот все подпункты данного пункта - для стандартного USB-накопителя не нужны.
Наверное, поддержка USB-модема?
То же применительно к принтеру.
Гуманистический интерфейс к USB-устройствам. Требуется для мышей, Клав и прочих джойстиков. При наличии USB-периферии можно включить все гуртом -
Поная поддержка HID, или выбрать одну из урезанных версий HID:
Поддержка только тети Клавы.
То же - только для мышей. Имеет смысл в случае каких-либо проблем с USB-периферией в стандартном режиме HID, ну а также, если имеется в наличии только USB-клава или USB-мышь.
Планшеты поименованные.
Планшеты Wacom'овские.
Сканеры и цифровые камеры.
Вероятно, внешние тюнеры?
Сетевые адаптеры по USB.
Далее идут еще несколько опций, о которых я ничего не знаю и говорить не буду.
И опять - кому интересно, почитайте в "Рыжем Орме", кто такой был Харальд Синезубый (или в "Походах викингов" Стрингольма - благо ее недавно переиздали).
Судя по названию, нечто, поддерживающее (на плаву) Виндовые аппликации.
Опции для ядреных хакеров. Но кое-что и простым людям может сгодиться.
Включение этого пункта вызывает разворачивание подменю, из которого я знаю смысл только одного пункта:
Это включение магической клавиши (реально - комбинация Alt+PrtScr), после чего клавиатура переходит в т.н. отладочный режим, позволяющий, например, более-менее корректно выйти из безнадежно зависшей системы. Раньше я включал эту опцию обязательно (на всякий пожарный). Н последнее время Linux виснуть перестал вообще, и необходимость в ней как бы отпала.
М.б. кто просветит, что это такое?
Считывание некоего конфигурационного файла, отличного от умолчального (каковым выступает /usr/src/linux/.config). Требует ручного указания полного пути в нужному файлу.
Обратно - запись опций сконфигурированного ядра в файл, отличный от умолчального /usr/src/linux/.config.