Параметры ядра Linux:General setup

Материал из Wiki Open book
Перейти к: навигация, поиск

Параметры ядра Linux

General setup

Prompt for development and/or incomplete code/drivers
Some of the various things that Linux supports (such as network drivers, file systems, network protocols, etc.) can be in a state of development where the functionality, stability, or the level of testing is not yet high enough for general use. This is usually known as the "alpha-test" phase among developers. If a feature is currently in alpha-test, then the developers usually discourage uninformed widespread use of this feature by the general public to avoid "Why doesn't this work?" type mail messages. However, active testing and use of these systems is welcomed. Just be aware that it may not meet the normal level of reliability or it may fail to work in some special cases. Detailed bug reports from people familiar with the kernel internals are usually welcomed by the developers (before submitting bug reports, please read the documents <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, <file:Documentation/BUG-HUNTING>, and <file:Documentation/oops-tracing.txt> in the kernel source).

This option will also make obsoleted drivers available. These are drivers that have been replaced by something else, and/or are scheduled to be removed in a future kernel release. Unless you intend to help test and develop a feature or driver that falls into this category, or you have a situation that requires using these features, you should probably say N here, which will cause the configurator to present you with fewer choices. If you say Y here, you will be offered the choice of using features or drivers that are currently considered to be in the alpha-test phase.

Русский флаг

Показывать разрабатываемые и/или нестабильные опции/драйвера

Некоторые функции, поддерживаемые ядром (такие как драйвера сетевых устройств, файловые системы, сетевые протоколы и т.д.) находятся в состоянии, когда функциональность, стабильность или уровень отлаженности не подходят для постоянного использования. Среди разработчиков такое состояние называется альфа-тестирование. Если функция находится в стадии альфа-тестирования, разработчики не рекомендуют ее использовать непросвещенным пользователям во избежание писем с вопросом "Почему это не работает?". Однако активное тестирование и использование этих опций приветствуется.Просто следует помнить, что такие опции снижают стабильность системы и могут иногда не работать как надо. Детализированные отчеты об ошибках от людей, разбирающихся в ядре, приветствуются разработчиками (прежде чем написать отчет, прочтите пожалуйста документы file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, <file:Documentation/BUG-HUNTING>, и <file:Documentation/oops-tracing.txt>, поставляемые с исходными кодами ядра).

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

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

Local version - append to kernel release
Append an extra string to the end of your kernel version. This will show up when you type uname, for example. The string you set here will be appended after the contents of any files with a filename matching localversion* in your object and source tree, in that order. Your total string can be a maximum of 64 characters.
Русский флаг

Локальная версия - присоединить к релизу ядра

Добавить дополнительную строку к версии Вашего ядра. Вы её увидите, если, например, наберёте команду uname. Содержимое каждого файла, имя которого подходит под шаблон localversion* и расположенного в корне дерева исходных текстов, будет добавлено к LOCALVERSION в следующем порядке:

сначала srctree/localversion*, а затем objtree/localversion*.

Например:

  • файл $(srctree)/localversion-lowlatency содержит строку "-llat";
  • файл $(srctree)/localversion-scheduler-nick содержит строку "-np";
  • файл $(objtree)/localversion содержит строку "-smpacpi".

Получим KERNELRELEASE вида: 2.6.8.rc1-smpacpi-llat-np

Максимальный размер строки не должен превышать 64 символа. Если точнее, то не размер LOCALVERSION, а всего KERNELRELEASE.

Automatically append version information to the version string
This will try to automatically determine if the current tree is a release tree by looking for git tags that belong to the current top of tree revision.

A string of the format -gxxxxxxxx will be added to the localversion if a git based tree is found. The string generated by this will be appended after any matching localversion* files, and after the value set in CONFIG_LOCALVERSION

Note: This requires Perl, and a git repository, but not necessarily the git or cogito tools to be installed.

Русский флаг

Автоматически добавлять информацию о версии в строку версии

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

Строка формата -gxxxxxxxx будет добавлена в локальную версию, если основанное на git дерево найдено. Сгенерированная строка будет добавлена после любого файла, имя которого соответствует шаблону localversion* и после установленного значения CONFIG_LOCALVERSION

Примечание: Опции требуются Perl и git репозиторий, git- или cogito-инструменты могут быть не установленны.

Kernel compression mode (X)
Русский флаг

Алгоритм сжатия ядра

    Gzip
    The old and tried gzip compression. It provides a good balance between compression ratio and decompression speed.
   
Русский флаг

Старый и проверенный алгоритм сжатия. Хороший баланс между степенью сжатия и скоростью распаковки

    Bzip2
    Its compression ratio and speed is intermediate. Decompression speed is slowest among the three. The kernel size is about 10% smaller with bzip2, in comparison to gzip. Bzip2 uses a large amount of memory. For modern kernels you will need at least 8MB RAM or more for booting.
   
Русский флаг

Степень сжатия и скорость умеренные. Скорость распаковки самая медленная из 3-х представленных. Размер ядра на 10% меньше, чем при сжатии алгоритмом gzip. Алгоритм Bzip2 использует больше памяти. Для современного ядра Вам понадобится более 8 Мб ОЗУ или боле, для загрузки.

    LZMA
    The most recent compression algorithm. Its ratio is best, decompression speed is between the other two. Compression is slowest. The kernel size is about 33% smaller with LZMA in comparison to gzip.
   
Русский флаг

Один из современных алгоритмов сжатия. Степень сжатия лучшая, скорость распаковки между двумя предыдущими. Скорость сжатия самая низкая. Ядро на 33% меньше по объему, по сравнению с Bzip-сжатым ядром.

    LZO
    Its compression ratio is the poorest among the 4. The kernel size is about about 10% bigger than gzip; however its speed (both compression and decompression) is the fastest.
   
Русский флаг

Степень сжатия худшая из 4 представленных алгоритмов. Размер ядра больше на 10% чем у Bzip-сжатого. Тем не менее, скорость упаковки и распаковки наибольшая среди представленных алгоритмов.

Support for paging of anonymous memory (swap)
This option allows you to choose whether you want to have support for socalled swap devices or swap files in your kernel that are used to provide more virtual memory than the actual RAM present in your computer. If unsure say Y.
Русский флаг

Поддержка своппинга

Эта опция позволяет включить в ядре поддержку так называемых swap-устройств или swap-файлов, что позволяет увеличить объём предоставляемой программам виртуальной памяти за счет выгрузки содержимого неиспользуемых в данный момент частей ОЗУ на внешний носитель (например, на жесткий диск). Таким образом, объём доступной программам виртуальной памяти может превышать объем ОЗУ. Если вы не уверены в выборе, нажмите Y.

System V IPC
Inter Process Communication is a suite of library functions and system calls which let processes (running programs) synchronize and exchange information. It is generally considered to be a good thing, and some programs won't run unless you say Y here. In particular, if you want to run the DOS emulator dosemu under Linux read the DOSEMU-HOWTO, available from http://www.tldp.org/docs.html#howto), you'll need to say Y here.

You can find documentation about IPC with "info ipc" and also in section 6.4 of the Linux Programmer's Guide, available from <http://www.tldp.org/guides.html>.

Русский флаг

Поддержка System V IPC

IPC (Inter-Process Communication) - набор библиотечных функций и системных вызовов, которые позволяют процессам (упрощая, процесс можно считать запущенной программой) производить сихронизацию и обмен данными. Многие программы используют IPC и не будут корректно работать, если Вы не включите эту опцию. Наример, если Вы захотите использовать эмулятор DOS, (почитайте DOSEMU-HOWTO), вам необходимо выбрать Y.

Вы можете найти документацию об IPC введя команду info ipc (при условии, что у Вас установлена система TeXinfo и соотвествующие страницы справки). Так же можно посмотреть параграф 6.4 из Linux Programmer's Guide.

  IPC Namespaces
  Support ipc namespaces. This allows containers, i.e. virtual environments, to use ipc namespaces to provide different ipc objects for different servers. If unsure, say N.
 
Русский флаг
POSIX Message Queues
POSIX variant of message queues is a part of IPC. In POSIX message queues every message has a priority which decides about succession of receiving it by a process. If you want to compile and run programs written e.g. for Solaris with use of its POSIX message queues (functions mq_*) say Y here. To use this feature you will also need mqueue library, available from <http://www.mat.uni.torun.pl/~wrona/posix_ipc/>

POSIX message queues are visible as a filesystem called 'mqueue' and can be mounted somewhere if you want to do filesystem operations on message queues.

If unsure, say Y.

Русский флаг

Очереди сообщений POSIX (Message Queues)

Реализация POSIX-варианта очередей сообщений является частью IPC. все symbols IPC - Inter-Process Communications, средство обмена информацией между запущенными в системе процессами.

В очередях сообщений POSIX каждое сообщение получает свой приоритет, который влияет на порядок получения сообщений процессами. Если вы хотите компилировать и запускать программы написанные для ОС Solaris и других UNIX систем, которые используют очереди сообщений POSIX (функции mq_*) - скажите Y. Для использования этой опции вы должны установить библиотеку mqueue, исходный код которой доступен по адресу [1].

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

Если не уверены - нажмите Y.

BSD Process Accounting
If you say Y here, a user level program will be able to instruct the kernel (via a special system call) to write process accounting information to a file: whenever a process exits, information about that process will be appended to the file by the kernel. The information includes things such as creation time, owning user, command name, memory usage, controlling terminal etc. (the complete list is in the struct acct in <file:include/linux/acct.h>). It is up to the user level program to do useful things with this information. This is generally a good idea, so say Y.
Русский флаг

BSD-учёт процессов

Если Вы выбирете Y, то пользовательские программы получат возможность указать ядру (с помощью специального вызова) записать информацию о процессе в файл: если процесс существует, данные о нем будут добавлены ядром к файлу. Информация о процессе включает следующие сведения: время создания процесса, владелец процесса(пользователь от имени которого данный процесс запущен), название команды, статистика использования памяти процессом, терминал и так далее. (для более полной информации смотрите структуру acct в заголовочном файле <include/linux/acct.h>). Что делать с полученной учётной информацией -- решать Вам.

Обычно, Вам надо выбрать Y.

  BSD Process Accounting version 3 file format
  If you say Y here, the process accounting information is written in a new file format that also logs the process IDs of each process and it's parent. Note that this file format is incompatible with previous v0/v1/v2 file formats, so you will need updated tools for processing it. A preliminary version of these tools is available at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
 
Русский флаг

Использовать формат файлов версии 3 для BSD-учёта процессов

Если использована эта опция, то при сбросе информация о процессе в файл будет использоваться формат записей версии 3 (в новой версии формата файла указываются дополнительные данные: для каждого процесса записывается его ID, а также ID его процесса-родителя). Имейте в виду, что новый формат файла не совместим со старыми форматами (форматами версии 0, 1 и 2), а значит понадобится обновить программное обеспечения для их обработки. Предварительные версии этого программного обеспечения находятся по адресу <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.

Export task/process statistics through netlink
Export selected statistics for tasks/processes through the generic netlink interface. Unlike BSD process accounting, the statistics are available during the lifetime of tasks/processes as responses to commands. Like BSD accounting, they are sent to user space on task exit.

Say N if unsure.

Русский флаг

Передача данных задачи/процесса посредством макросов датаграмм

Передача данных для задачи/процесса посредством макросов датаграмм. Не такой как в BSD процессах, доступный во время жизни задачи/процесса, отвечающий на команды.

  Enable per-task delay accounting
  Collect information on time spent by a task waiting for system resources like cpu, synchronous block I/O completion and swapping in pages. Such statistics can help in setting a task's priorities relative to other tasks for cpu, io, rss limits etc.

Say N if unsure.

 
Русский флаг
UTS Namespaces
Support uts namespaces. This allows containers, i.e. vservers, to use uts namespaces to provide different uts info for different servers. If unsure, say N.
Русский флаг
Auditing support
Enable auditing infrastructure that can be used with another kernel subsystem, such as SELinux (which requires this for logging of avc messages output). Does not do system-call auditing without CONFIG_AUDITSYSCALL.
Русский флаг
Поддержка аудита

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

  Enable system-call auditing support
  Enable low-overhead system-call auditing infrastructure that can be used independently or with another kernel subsystem, such as SELinux.
 
Русский флаг
Задействовать поддержку аудита системных вызовов

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

Kernel .config support
This option enables the complete Linux kernel ".config" file contents to be saved in the kernel. It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel. This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and used as input to rebuild the current kernel or to build another kernel. It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below).
Русский флаг

Хранение файла .config внутри ядра

Если эта опция включена, то все настройки ядра сохраняются в самом образе ядра. Это позволяет получить конфигурационный файл ядра, даже если Вы удалили его исходные тексты. Эта информация может быть извлечена с помощью скрипта scripts/extract-ikconfig, и использована для пересборки имеющегося ядра или для сборки нового ядра. Конфигурация может быть также получена из файла /proc/config.gz если включена описанная ниже опция.

  Enable access to .config through /proc/config.gz
  This option enables access to the kernel configuration file through /proc/config.gz.
 
Русский флаг
Обеспечить доступ к файлу .config через /proc/config.gz

Эта опция позволяет получать конфигурационный файл ядра из файла /proc/config.gz.

Получить .config можно например так:

zcat /proc/config.gz > .config
Cpuset support
This option will let you create and manage CPUSETs which allow dynamically partitioning a system into sets of CPUs and Memory Nodes and assigning tasks to run only within those sets. This is primarily useful on large SMP or NUMA systems.

Say N if unsure.

Русский флаг
Create deprecated sysfs files
This option creates deprecated symlinks such as the "device"-link, the <subsystem>:<name>-link, and the "bus"-link. It may also add deprecated key in the uevent environment.

None of these features or values should be used today, as they export driver core implementation details to userspace or export properties which can't be kept stable across kernel releases.

If enabled, this option will also move any device structures that belong to a class, back into the /sys/class heirachy, in order to support older versions of udev.

If you are using a distro that was released in 2006 or later, it should be safe to say N here.

Русский флаг
Kernel->user space relay support (formerly relayfs)
This option enables support for relay interface support in certain file systems (such as debugfs). It is designed to provide an efficient mechanism for tools and facilities to relay large amounts of data from kernel space to user space.

If unsure, say N.

Русский флаг
Initial RAM filesystem and RAM disk (initramfs/initrd) support
The initial RAM filesystem is a ramfs which is loaded by the boot loader (loadlin or lilo) and that is mounted as root before the normal boot procedure. It is typically used to load modules needed to mount the "real" root file system, etc. See <file:Documentation/initrd.txt> for details.

If RAM disk support (BLK_DEV_RAM) is also included, this also enables initial RAM disk (initrd) support and adds 15 Kbytes (more on some other architectures) to the kernel size.

If unsure say Y.

Русский флаг
  Initramfs source file(s)
  This can be either a single cpio archive with a .cpio suffix or a space-separated list of directories and files for building the initramfs image. A cpio archive should contain a filesystem archive to be used as an initramfs image. Directories should contain a filesystem layout to be included in the initramfs image. Files should contain entries according to the format described by the "usr/gen_init_cpio" program in the kernel tree.

When multiple directories and files are specified then the initramfs image will be the aggregate of all of them.

See <file:Documentation/early-userspace/README for more details.

If you are not sure, leave it blank.

 
Русский флаг
Это может быть как один cpio архив с расширением .cpio , так и разделенный пробелами список директорий и файлов, составляющий initramfs образ. Для использования initramfs образа, cpio архив должен содержать архив файловой системы. Структура директории должна быть разбита соответствующим образом. Файлы должны содержать записи согласно формату, описанному программой "usr/gen_init_cpio" в дереве ядра.

Если указано несколько директорий и файлов, то initramfs образ будет содержать их совокупность.

Смотрите Documentation/early-userspace/README для более подробной информации.

Если не уверенны, оставьте так, как есть. (FIXME: ...)

Optimize for size (Look out for broken compilers!)
Enabling this option will pass "-Os" instead of "-O2" to gcc resulting in a smaller kernel.
Русский флаг
Заставляет компилятор использовать парамер -Os вместо -O2 для получения ядра меньшего размера.

EMBEDDED

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

Configure standart kernel features (for small systems)
This option allows certain base kernel options and settings to be disabled or tweaked. This is for specialized environments which can tolerate a "non-standard" kernel. Only use this if you really know what you are doing.
Русский флаг

Настроить стандартные свойста ядра (для малых систем)

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

  Load all symbols for debugging/kksymoops
  Say Y here to let the kernel print out symbolic crash information and symbolic stack backtraces. This increases the size of the kernel somewhat, as all symbols have to be loaded into the kernel image.
 
Русский флаг

Нажмите Y здесь, что бы позволить ядру выводить текстовую информацию об крахе системы и вывод стека ошибок (??). Это увеличит размер ядра на количество символов, которые будут загружены в образ ядра.

    Do an extra kallsyms pass
    If kallsyms is not working correctly, the build will fail with inconsistent kallsyms data. If that occurs, log a bug report and turn on KALLSYMS_EXTRA_PASS which should result in a stable build. Always say N here unless you find a bug in kallsyms, which must be reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while you wait for kallsyms to be fixed.
   
Русский флаг
Русский перевод
  Enable support for printk
  This option enables normal printk support. Removing it eliminates most of the message strings from the kernel image and makes the kernel more or less silent. As this makes it very difficult to diagnose system problems, saying N here is strongly discouraged.
 
Русский флаг

Включить нормальную поддержку функции printk

Эта опция включает нормальную поддержку функции printk, иначе говоря printk будет работать именно так как полагается :))). Установка данной опции в N приведёт к исключению из образа ядра большинства строк с сообщениями, что приведет к тому, что ядро будет выдавать крайне мало сообщений, что в свою очередь затруднит диагностику неисправностей в системе. Установка данной опции в N крайне не рекомендуется.

Подробности для знающих C:

Функция printk широко используется практически во всех частях ядра. Именно с помощью этой функции производится вывод информации в системную консоль (например, при старте ядра), а также вывод отладочных сообщений. Если данная опция установлена в N, то функция printk будет иметь приблизительно такой вид:

int printk(const char *s, ...) { return 0; }

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

  BUG() support
  Disabling this option eliminates support for BUG and WARN, reducing the size of your kernel image and potentially quietly ignoring numerous fatal conditions. You should only consider disabling this option for embedded systems with no facilities for reporting errors. Just say Y.
 
Русский флаг
  Enable full-sized data structures for core
  Disabling this option reduces the size of miscellaneous core kernel data structures. This saves memory on small machines, but may reduce performance.
 
Русский флаг

Включить полноразмерные структуры данных ядра

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

  Enable futex support
  Disabling this option will cause the kernel to be built without support for "fast userspace mutexes". The resulting kernel may not run glibc-based applications correctly.
 
Русский флаг
  Enable eventpoll support
  Disabling this option will cause the kernel to be built without support for epoll family of system calls.
 
Русский флаг
  Use full shmem filesystem
  The shmem is an internal filesystem used to manage shared memory. It is backed by swap and manages resource limits. It is also exported to userspace as tmpfs if TMPFS is enabled. Disabling this option replaces shmem and tmpfs with the much simpler ramfs code, which may be appropriate on small systems without swap.
 
Русский флаг

Alignment

Следующие опции влияют на использование параметров -falign-functions=n, -falign-labels=n, -falign-loops=n, -falign-jumps=n при запуске компилятора для сборки ядра. По непроверенным данным, в ближайшее время эти опции настройки ядра могут исчезнуть (хотя опции компилятора -falign- останутся).

Бесполезность данных опций объясняется тем, что они становятся доступны только после включения опции Configure standard kernel features (for small systems) (EMBEDDED), т.е. они нацелены на использование при сборке ядер для встраиваемых систем, но выравнивания, возникающие из-за применения данных параметров приводят к увеличению размера образа ядра, с другой стороны, сборщики ядер для встраиваемых систем хотят получать ядра минимального размера, и включают соответствующие флаги компилятора.


  Function alignment
  Align the start of functions to the next power-of-two greater than n, skipping up to n bytes. For instance, 32 aligns functions to the next 32-byte boundary, but 24 would align to the next 32-byte boundary only if this can be done by skipping 23 bytes or less. Zero means use compiler's default.
 
Русский флаг
  Label alignment
  Align all branch targets to a power-of-two boundary, skipping up to n bytes like ALIGN_FUNCTIONS. This option can easily make code slower, because it must insert dummy operations for when the branch target is reached in the usual flow of the code. Zero means use compiler's default.
 
Русский флаг
  Loop alignment
  Align loops to a power-of-two boundary, skipping up to n bytes. Zero means use compiler's default.
 
Русский флаг
Выравнивание циклов

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

  Jump alignment
  Align branch targets to a power-of-two boundary, for branch targets where the targets can only be reached by jumping, skipping up to n bytes like ALIGN_FUNCTIONS. In this case, no dummy operations need be executed. Zero means use compiler's default.
 
Русский флаг

Параметры ядра Linux

Инструменты
    
Личные инструменты