lfs-ru/chapter10/kernel.xml

483 lines
29 KiB
XML
Raw Normal View History

2023-05-23 09:22:34 +03:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-bootable-kernel" role="wrap">
<?dbhtml filename="kernel.html"?>
<sect1info condition="script">
<productname>kernel</productname>
<productnumber>&linux-version;</productnumber>
<address>&linux-url;</address>
</sect1info>
<title>Linux-&linux-version;</title>
<indexterm zone="ch-bootable-kernel">
<primary sortas="a-Linux">Linux</primary>
</indexterm>
<sect2 role="package">
<title/>
2023-06-12 00:42:42 +03:00
<para>Этот пакет содержит ядро Linux.</para>
2023-05-23 09:22:34 +03:00
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&linux-knl-sbu;</seg>
<seg>&linux-knl-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
2023-06-12 00:42:42 +03:00
<title>Установка ядра</title>
2023-05-23 09:22:34 +03:00
2023-08-02 23:14:31 +03:00
<para>Сборка ядра состоит из нескольких этапов&mdash;настройка, компиляция и установка.
Ознакомьтесь с файлом <filename>README</filename> в дереве исходных текстов, чтобы
узнать об альтернативных способах настройки ядра.</para>
2023-05-23 09:22:34 +03:00
<important>
<para>
Сборка ядра Linux в первый раз — одна из самых сложных задач в LFS. Правильный выбор
параметров зависит от конкретного оборудования для целевой системы и ваших потребностей.
Для ядра доступно почти 12 000 элементов конфигурации, хотя для большинства компьютеров
требуется только около трети из них. Редакторы LFS рекомендуют пользователям, не знакомым
с этим процессом, внимательно следовать описанным ниже процедурам. Главная цель сейчас
состоит в том, чтобы довести первоначальную систему до состояния, когда вы сможете войти
в систему из командной строки при последующей перезагрузке в <xref linkend="ch-finish-reboot"/>.
Вопросы оптимизация и кастомизация второстепенны.
</para>
<para>
Для получения общей информации о конфигурации ядра смотрите <ulink
url="&hints-root;kernel-configuration.txt"/>. Дополнительную информацию о настройке и
сборке ядра можно найти по адресу <ulink url="&anduin-sources;/kernel-nutshell/"/>. Эти
ссылки немного устарели, но все же дают разумное представление о процессе.
</para>
<para>
Если ничего не помогает, вы можете обратиться за помощью в список рассылки
2023-09-02 00:28:17 +03:00
<ulink url="https://www.linuxfromscratch.org/mail.html">lfs-support</ulink>. Обратите
внимание, что подписка необходима для того, чтобы рассылка не содержала спама.
</para>
</important>
2023-06-12 00:42:42 +03:00
<para>Подготовьте пакет к компиляции, выполнив следующую команду:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="pre">make mrproper</userinput></screen>
2023-06-12 00:42:42 +03:00
<para>Выполнение этой команды гарантирует, что дерево исходников будет абсолютно чистым.
Разработчики ядра рекомендуют запускать эту команду перед каждой компиляцией. Не следует полагаться
на то, что дерево исходных текстов ядра будет чистым после распаковки.</para>
2023-05-23 09:22:34 +03:00
2023-06-12 00:42:42 +03:00
<para>Существует несколько способов настройки параметров ядра. Обычно это делается с помощью
псевдографического интерфейса, например так:</para>
2023-05-23 09:22:34 +03:00
<screen role="nodump"><userinput>make menuconfig</userinput></screen>
<variablelist>
2023-06-12 00:42:42 +03:00
<title>Значения необязательных переменных окружения make:</title>
2023-05-23 09:22:34 +03:00
<varlistentry>
2023-06-12 00:42:42 +03:00
<term><parameter>LANG=&lt;переменная_LANG_хоста&gt; LC_ALL=</parameter></term>
2023-05-23 09:22:34 +03:00
<listitem>
2023-06-12 00:42:42 +03:00
<para>Устанавливает значение локали на то, которое используется на хосте. Это может
понадобиться для правильного отображения интерфейса menuconfig с помощью ncurses в текстовой
консоли Linux с UTF-8.</para>
<para>Если это необходимо, обязательно замените значение
<replaceable>&lt;переменной_LANG&gt;</replaceable> на значение переменной
<envar>$LANG</envar> вашего хоста. В качестве альтернативы вы можете использовать
значения переменных <envar>$LC_ALL</envar> или <envar>$LC_CTYPE</envar>.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
<varlistentry>
<term><command>make menuconfig</command></term>
<listitem>
2023-08-02 23:14:31 +03:00
<para>Эта команда запускает интерфейс на основе ncurses. Для использования других
2023-06-12 00:42:42 +03:00
(графических) интерфейсов, выполните <command>make help</command>.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
</variablelist>
<!-- Support for compiling a keymap into the kernel is deliberately removed -->
<note>
<?dbfo keep-together="auto"?>
2023-06-12 00:42:42 +03:00
<para>Хорошей отправной точкой для настройки ядра, может стать запуск команды
<command>make defconfig</command>. В результате её выполнения будет создана базовая
конфигурация с учётом архитектуры системы.</para>
2023-05-23 09:22:34 +03:00
2023-06-12 00:42:42 +03:00
<para>Обязательно включите/отключите/настройте следующие параметры, иначе система может
2023-08-02 23:14:31 +03:00
работать некорректно или вообще не загружаться:</para>
2023-05-23 09:22:34 +03:00
<!-- To editors: for updating kernel configuration, edit
kernel/*.toml and regenerate kernel/*.xml with
"make -C kernel KERNEL_TREE=</usr/src/linux-&linux-version> -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="kernel/sysv.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="kernel/systemd.xml"/>
<para>Включите некоторые дополнительные функции, если вы собираете 64-битную систему.
Если вы используете menuconfig, включите их в следующем порядке: сначала
<parameter>CONFIG_PCI_MSI</parameter>, затем
<parameter>CONFIG_IRQ_REMAP</parameter>, и, наконец,
<parameter>CONFIG_X86_X2APIC</parameter>, потому что параметр отображается только
после выбора его зависимости.</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="kernel/x2apic.xml"/>
<para>Если вы создаете 32-разрядную систему, работающую на оборудовании с объемом
оперативной памяти более 4 ГБ, измените конфигурацию таким образом, чтобы ядро могло
использовать до 64 ГБ оперативной памяти:</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="kernel/highmem.xml"/>
<para>Если раздел для системы LFS находится на NVME SSD (то есть узлом устройства
для раздела является <filename>/dev/nvme*</filename>, а не <filename>/dev/sd*</filename>),
включите параметр NVME support, иначе система LFS не будет загружается:</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="kernel/nvme.xml"/>
2023-05-23 09:22:34 +03:00
</note>
<note revision="systemd">
2023-06-12 00:42:42 +03:00
<para>Хотя "Протокол IPv6" не является строго обязательным, он настоятельно рекомендуется
разработчиками systemd.</para>
2023-05-23 09:22:34 +03:00
</note>
<para>Есть несколько других параметров, которые могут понадобиться
2023-06-12 00:42:42 +03:00
в зависимости от особенностей системы. Для получения списка необходимых опций для пакетов BLFS
смотрите <ulink
url="&lfs-root;blfs/view/&short-version;/longindex.html#kernel-config-index">Список опций ядра BLFS</ulink>.
</para>
2023-05-23 09:22:34 +03:00
<note>
2023-06-12 00:42:42 +03:00
<para>Если ваша хост поддерживает UEFI и вы хотите загрузить LFS с помощью него, вам необходимо
настроить некоторые параметры ядра, следуя инструкции
<ulink url="&blfs-book;postlfs/grub-setup.html#uefi-kernel">на странице BLFS</ulink>,
<emphasis role='bold'>даже если вы будете использовать загрузчик UEFI из основного
дистрибутива</emphasis>.</para>
2023-05-23 09:22:34 +03:00
</note>
<variablelist>
2023-06-12 00:42:42 +03:00
<title>Пояснения для выбранных выше параметров ядра:</title>
2023-05-23 09:22:34 +03:00
2023-08-01 16:19:23 +03:00
<varlistentry>
<term><parameter>Randomize the address of the kernel image (KASLR)</parameter></term>
<listitem>
2023-08-02 23:14:31 +03:00
<para>Включите ASLR для образа ядра, чтобы уменьшить вероятность некоторых атак,
2023-08-01 16:19:23 +03:00
основанных на фиксированных адресах конфиденциальных данных или кода в ядре.</para>
</listitem>
</varlistentry>
2023-05-23 09:22:34 +03:00
<varlistentry>
<term>
<parameter>
Compile the kernel with warnings as errors
</parameter>
</term>
<listitem>
2023-06-12 00:42:42 +03:00
<para>Включение этого параметра может привести к сбою сборки, если компилятор и/или конфигурация отличается
от конфигурации ядра разработчиков.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
Enable kernel headers through /sys/kernel/kheaders.tar.xz
</parameter>
</term>
<listitem>
2023-06-12 00:42:42 +03:00
<para>Для сборки ядра с этим параметром необходим пакет <command>cpio</command>.
<command>cpio</command> не устанавливается в LFS.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
Configure standard kernel features (expert users)
</parameter>
</term>
<listitem>
<para>Эта опция приведет к отображению некоторых параметров в интерфейсе конфигурации,
но изменение этих параметров может быть опасным. Не используйте её, если вы не знаете,
что делаете.</para>
</listitem>
</varlistentry>
2023-08-01 16:19:23 +03:00
<varlistentry>
<term><parameter>Strong Stack Protector</parameter></term>
<listitem>
<para>Включите SSP для ядра. Мы включили его для всего пользовательского пространства
с помощью <parameter>--enable-default-ssp</parameter>, настроив GCC, но ядро не
использует настройки GCC по умолчанию для SSP. Мы включаем это явно здесь.</para>
</listitem>
</varlistentry>
2023-05-23 09:22:34 +03:00
<varlistentry>
<term><parameter>Support for uevent helper</parameter></term>
<listitem>
<para>Включение этого параметра может вызвать сбои при управление устройствами через Udev.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>Maintain a devtmpfs</parameter></term>
<listitem>
2023-06-12 00:42:42 +03:00
<para>С помощью этого параметра узлы устройств создаются автоматически и заполняются самим
ядром, даже без запуска Udev. Udev будет работать поверх, управляя разрешениями и добавляя
2023-08-02 23:14:31 +03:00
необходимые символические ссылки. Этот элемент конфигурации необходим всем пользователям
Udev.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>Automount devtmpfs at /dev</parameter></term>
<listitem>
2023-06-12 00:42:42 +03:00
<para>Этот параметр позволит смонтировать представление ядра устройств в /dev при
переключении на корневую файловую систему непосредственно перед запуском init.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
2023-08-01 16:19:23 +03:00
<varlistentry>
<term>
<parameter>
Enable legacy fbdev support for your modesetting driver
</parameter> и
<parameter>Framebuffer Console support</parameter>
</term>
2023-08-01 16:19:23 +03:00
<listitem>
<para>Они необходимы для отображения консоли Linux на графическом процессоре, управляемом
драйвером DRI (Direct Rendering Infrastructure - инфраструктура прямого рендеринга). Если
<option>CONFIG_DRM</option> (Direct Rendering Manager - диспетчер прямого рендеринга) включен,
вам также следует включить эти две опции, иначе вы увидите пустой экран после загрузки драйвера
DRI.</para>
2023-08-01 16:19:23 +03:00
</listitem>
</varlistentry>
2023-05-23 09:22:34 +03:00
<varlistentry>
<term><parameter>Support x2apic</parameter></term>
<listitem>
2023-06-12 00:42:42 +03:00
<para>Поддержка запуска 64-разрядного контроллера прерываний для x86 процессоров
в режиме x2APIC. x2APIC может быть включен в BIOS на системах x86 и у ядра собранного
без этой опции будет kernel panic при загрузке. Эта опция не окажет никакого эффекта,
но и не причиняет вреда, если x2APIC отключен в BIOS.</para>
2023-05-23 09:22:34 +03:00
</listitem>
</varlistentry>
2023-06-14 13:34:58 +03:00
2023-05-23 09:22:34 +03:00
</variablelist>
2023-06-12 00:42:42 +03:00
<para>В качестве альтернативы, в некоторых ситуациях может быть уместно использование команды
<command>make oldconfig</command>. Смотрите файл <filename>README</filename> для получения
дополнительной информации.</para>
2023-05-23 09:22:34 +03:00
2023-06-12 00:42:42 +03:00
<para>По желанию, вы можете пропустить настройку ядра, скопировав конфигурационный файл ядра
<filename>.config</filename>, из хост системы(если он доступен) в каталог куда было распаковано
ядро <filename class="directory">linux-&linux-version;</filename>. Однако, мы не рекомендуем
этот вариант. Намного лучше изучить все параметры меню и создать конфигурацию ядра с нуля.</para>
2023-05-23 09:22:34 +03:00
2023-06-12 00:42:42 +03:00
<para>Скомпилируйте образ ядра и модули:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="make">make</userinput></screen>
2023-06-12 00:42:42 +03:00
<para>При использовании модулей, могут потребоваться файлы конфигурации, которые расположены в
каталоге <filename class="directory">/etc/modprobe.d</filename>. Информация о модулях и конфигурации
2023-06-12 17:27:05 +03:00
ядра находится в <xref linkend="ch-config-udev"/> и в документации к ядру <filename
2023-06-12 00:42:42 +03:00
class="directory">linux-&linux-version;/Documentation</filename>. Кроме этого, стоит ознакомиться с
руководством <filename>modprobe.d(5)</filename>.</para>
2023-05-23 09:22:34 +03:00
2023-06-12 00:42:42 +03:00
<para>Если поддержка модулей не была отключена в параметрах ядра, установите модули с помощью:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="install">make modules_install</userinput></screen>
2023-06-12 00:42:42 +03:00
<para>После окончания компиляции, необходимо выполнить еще несколько шагов для завершения
установки ядра. Некоторые файлы должны быть скопированы в каталог
<filename class="directory">/boot</filename>.</para>
2023-05-23 09:22:34 +03:00
<caution>
2023-08-01 16:19:23 +03:00
<para>Если вы решили использовать отдельный &boot-dir; раздел для системы LFS (возможно,
общий раздел &boot-dir; с хост-дистрибутивом), скопированные ниже файлы должны быть
помещены туда. Самый простой способ сделать это — сначала создать запись для &boot-dir;
в &fstab; (подробности читайте в предыдущем разделе), затем выполните следующую команду
от имени пользователя &root; в среде <emphasis>chroot</emphasis>:</para>
<screen role="nodump"><userinput>mount /boot</userinput></screen>
2023-05-23 09:22:34 +03:00
2023-08-01 16:19:23 +03:00
<para>Путь к узлу устройства в команде опущен, поскольку <command>mount</command> может
прочитать его из &fstab;.</para>
2023-05-23 09:22:34 +03:00
</caution>
2023-06-12 00:42:42 +03:00
<para>Путь к образу ядра может различаться в зависимости от используемой платформы. Имя файла, может
быть произвольным, но начинаться должно с <emphasis>vmlinuz</emphasis> для обеспечения
совместимости с автоматической настройкой процесса загрузки, описанного в следующем разделе.
Следующая команда предполагает архитектуру x86:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;</userinput></screen>
2023-06-12 00:42:42 +03:00
<para><filename>System.map</filename> - это символьный файл для ядра. Он содержит точки входа каждой
функции в API ядра, а также адреса структур данных для запущенного ядро. Он используется в качестве
ресурса при исследовании проблем с ядром. Выполните следующую команду для установки файла:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="install">cp -iv System.map /boot/System.map-&linux-version;</userinput></screen>
2023-06-12 00:42:42 +03:00
<para>Файл конфигурации ядра <filename>.config</filename> создается на шаге <command>make menuconfig</command>
и содержит все параметры ядра, которое было скомпилировано только что. Рекомендуется сохранить этот
файл на будущее:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="install">cp -iv .config /boot/config-&linux-version;</userinput></screen>
2023-06-12 00:42:42 +03:00
<para>Установите документацию ядра:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput remap="install">cp -r Documentation -T /usr/share/doc/linux-&linux-version;</userinput></screen>
2023-05-23 09:22:34 +03:00
2023-06-12 17:09:10 +03:00
<para>Важно отметить, что файлы в каталоге исходных кодов ядра не принадлежат пользователю
<emphasis>root</emphasis>. Всякий раз, когда пакет распаковывается от пользователя
<emphasis>root</emphasis> (как это и выполнялось внутри среды chroot), файлы имеют те
идентификаторы пользователя и группы, которые были присвоены при распаковке. Обычно
это не вызывает проблем для других устанавливаемых пакетов, так как каталог с исходными
кодами удаляется после установки пакета. Однако исходный код ядра Linux часто сохраняется
в течение длительного времени. Из-за этого существует вероятность того, что идентификатор
пользователя, используемый при распаковке, будет назначен другому пользователю. В таком
случае, этот пользователь будет иметь доступ на запись в этот каталог.</para>
2023-05-23 09:22:34 +03:00
<note>
2023-06-12 17:09:10 +03:00
<para>В ряде случаев требуется обновить конфигурацию ядра для пакетов, которые будут
установлены позже в BLFS. В отличии от других пакетов, нет необходимости удалять дерево
исходного кода ядра после установки только что собранного ядра.</para>
<para>Если вы планируете оставить каталог с исходным кодом ядра, выполните команду
<command>chown -R 0:0</command> в каталоге <filename
class="directory">linux-&linux-version;</filename>, чтобы все файлы принадлежали
пользователю <emphasis>root</emphasis>.</para>
2023-05-23 09:22:34 +03:00
</note>
<warning>
2023-06-12 17:09:10 +03:00
<para>В некоторой документации по ядру рекомендуется создать символическую ссылку
<filename class="symlink">/usr/src/linux</filename> указывающую на каталог с исходниками
ядра. Эта рекомендация относится к ядрам до версии 2.6 и <emphasis>не должна</emphasis>
выполняться в системе LFS, так как это может вызвать проблемы с пакетами, которые вы, возможно,
захотите собрать, когда ваша базовая система LFS будет готова.</para>
2023-05-23 09:22:34 +03:00
</warning>
<warning>
2023-06-12 17:09:10 +03:00
<para>Заголовочные файлы в системном каталоге <filename class="directory">include</filename>
(<filename class="directory">/usr/include</filename>) <emphasis>всегда</emphasis> используются те,
которые применялись при компиляции Glibc, то есть подготовленные заголовочные файлы, установленные в
2023-06-12 17:27:05 +03:00
<xref linkend="ch-tools-linux-headers"/>. Поэтому их <emphasis>никогда</emphasis> не следует заменять
2023-06-12 17:09:10 +03:00
на чистые заголовочные файлы ядра или любые другие подготовленные заголовочные файлы.</para>
2023-05-23 09:22:34 +03:00
</warning>
</sect2>
<sect2 id="conf-modprobe" role="configuration">
2023-06-12 17:09:10 +03:00
<title>Настройка порядка загрузки модулей Linux</title>
2023-05-23 09:22:34 +03:00
<indexterm zone="conf-modprobe">
<primary sortas="e-/etc/modprobe.d/usb.conf">/etc/modprobe.d/usb.conf</primary>
</indexterm>
2023-06-12 17:09:10 +03:00
<para>В большинстве случаев модули Linux загружаются автоматически, но иногда требуется
определенный порядок. Программа, которая загружает модули, <command>modprobe</command>
или <command>insmod</command>, использует файл <filename>/etc/modprobe.d/usb.conf</filename>
как раз для этой цели. Этот файл должен быть заполнен таким образом, что если USB-драйверы
(ehci_hcd, ohci_hcd и uhci_hcd) были собраны в виде модулей, то они будут загружены в правильном
порядке; ehci_hcd должен быть загружен до ohci_hcd и uhci_hcd для того, чтобы избежать
предупреждений во время загрузки.</para>
2023-05-23 09:22:34 +03:00
2023-06-12 17:09:10 +03:00
<para>Создайте новый файл <filename>/etc/modprobe.d/usb.conf</filename>, выполнив следующую команду:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput>install -v -m755 -d /etc/modprobe.d
cat &gt; /etc/modprobe.d/usb.conf &lt;&lt; "EOF"
<literal># Begin /etc/modprobe.d/usb.conf
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
# End /etc/modprobe.d/usb.conf</literal>
EOF</userinput></screen>
</sect2>
<sect2 id="contents-kernel" role="content">
2023-06-12 17:09:10 +03:00
<title>Содержимое пакета Linux</title>
2023-05-23 09:22:34 +03:00
<segmentedlist>
2023-06-12 17:09:10 +03:00
<segtitle>Установленные файлы</segtitle>
<segtitle>Созданные каталоги</segtitle>
2023-05-23 09:22:34 +03:00
<seglistitem>
<seg>config-&linux-version;,
vmlinuz-&linux-version;-lfs-&version;,
2023-06-12 17:09:10 +03:00
и System.map-&linux-version;</seg>
2023-05-23 09:22:34 +03:00
<seg>/lib/modules, /usr/share/doc/linux-&linux-version;</seg>
</seglistitem>
</segmentedlist>
<variablelist>
2023-06-12 17:09:10 +03:00
<bridgehead renderas="sect3">Краткое описание</bridgehead>
2023-05-23 09:22:34 +03:00
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="config">
<term><filename>config-&linux-version;</filename></term>
<listitem>
2023-06-12 17:09:10 +03:00
<para>Содержит в себе все параметры конфигурации ядра</para>
2023-05-23 09:22:34 +03:00
<indexterm zone="ch-bootable-kernel config">
<primary sortas="e-/boot/config">/boot/config-&linux-version;</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lfskernel">
<term><filename>vmlinuz-&linux-version;-lfs-&version;</filename></term>
<listitem>
2023-06-12 17:09:10 +03:00
<para>Ядро системы Linux. При включении компьютера ядро — это первая загружаемая часть
операционной системы. Оно обнаруживает и инициализирует все компоненты аппаратного
обеспечения компьютера, делает их доступными в виде дерева каталогов с файлами для доступа
2023-08-02 23:14:31 +03:00
к ним программ и превращает один процессор в мультизадачную машину, способную выполнять
2023-06-12 17:09:10 +03:00
множество программ как будто одновременно.</para>
2023-05-23 09:22:34 +03:00
<indexterm zone="ch-bootable-kernel lfskernel">
<primary sortas="b-lfskernel">lfskernel-&linux-version;</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="System.map">
<term><filename>System.map-&linux-version;</filename></term>
<listitem>
2023-06-12 17:09:10 +03:00
<para>Список адресов и символов; файл содержит точки входа и адреса всех функций и структур
данных в ядре</para>
2023-05-23 09:22:34 +03:00
<indexterm zone="ch-bootable-kernel System.map">
<primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>