• Смонтировать изначально корневую файловую систему в режиме "только для чтения".
   • Смонтировать изначально корневую файловую систему в режиме "чтение/запись", а перед проверкой перемонтировать ее в режим "только для чтения".
   Это одни из немногих параметров загрузки ядра, которые хранят значение в образе ядра и могут быть изменены утилитой rdev.

Опции управления RAM-диском

   Все следующие опции сообщают ядру, как управлять устройством RAM-диска, обычно используемым для загрузки машины.
Параметр ramdisk_start
   Чтобы разрешить образу ядра находиться на флоппи-диске со сжатым образом RAM-диска, необходимо добавить команду ramdisk_start=<cMei4eHMe>.
Параметр load_ramdisk
   Этот параметр сообщает ядру, нужно загружать образ RAM-диска или нет. При ioad_ramdisk=l ядро будет загружать RAM-диск. По умолчанию значение параметра равно нулю, т. е. ядро не должно в этом случае загружать RAM-диск.
Параметр prompt_ramdisk
   Этот параметр сообщает ядру о необходимости вывести пользователю приглашение вставить флоппи-диск с образом RAM-диска. В однодисковой конфигурации образ RAM-диска находится на той же дискете, с которой только что закончилась загрузка ядра, поэтому приглашение не нужно. В этом случае нужно использовать команду prompt_ramdisk=0. В двухдисковой конфигурации может потребоваться заменить диски, поэтому нужно указать команду prompt_ramdisk=1. По умолчанию значение равно единице.
Параметр ramdisk_size
   Поскольку RAM-диск размещается в оперативной памяти, необходимо каким-то способом указать занимаемый им объем оперативной памяти. По умолчанию это 4096 Кбайт.
Параметр noinitrd (начальный RAM-диск)
   В ядрах, начиная с версии 2jc, корневой файловой системой изначально может быть RAM-диск. Эта возможность обычно используется для загрузки модулей, необходимых для монтирования реальной корневой файловой системы (например, загрузка модулей драйвера SCSI, хранящихся в образе RAM-диска, а затем монтирование реальной файловой системы на SCSI-диске).
   Параметр noinitrd определяет, что будет происходить с данными initrd после загрузки ядра.

Параметры загрузки для управления памятью

   Следующие параметры определяют действия ядра Linux по обнаружению или управлению физической и виртуальной памятью системы.
Параметр mem
   Используется для указания объема установленной памяти (или меньшего значения, если требуется ограничить объем памяти, доступный Linux). Старые версии BIOS не могли корректно возвращать количество оперативной памяти, если оно превышало 64 Мбайт. Поэтому приходилось вручную передавать в ядро реально установленное количество памяти.
   Ядро воспримет любое значение параметра mem=xx, которое будет указано, однако если указать больший размер памяти, чем физически установлено в компьютере, то при определенном количестве процессов система попытается использовать несуществующий участок памяти и в общем возникнут проблемы, и что самое неприятное, такое может произойти и через месяц-другой после конфигурирования системы.
   Количество памяти можно указывать как в шестнадцатеричном представлении, так и в десятичном. Например, если в компьютере установлено 96 Мбайт оперативной памяти, можно указать mem=0x6000000 или mem=96M.
Параметр swap
   Позволяет пользователю настраивать некоторые параметры виртуальной памяти (Virtual Memory), относящиеся к разделу подкачки. Он может иметь следующие значения:
   • MAX_PAGE_AGE;
   • PAGE_ADVANCE;
   • PAGE_DECLINE;
   • PAGE_INITIAL_AGE;
   • AGE_CLUSTER_FRACT;
   • AGE_CLUSTER_MIN;
   • PAGEOUT_WEIGHT;
   • BUFFEROUT_WEIGHT.
   В каталоге /usr/src/Linux-2.4.3/Documentation/vm/ содержится полезная документация по этой теме, подставляемая с ядром операционной системы.
Параметр buff
   Параметр, похожий на swap, позволяет пользователю настроить некоторые параметры, связанные с управлением буферной памятью. Он может иметь следующие значения:
   • MAX_BUFF_AGE;
   • BUFF_ADVANCE;
   • BUFF_DECLINE;
   • BUFF_INITIAL_AGE;
   • BUFFEROUT_WEIGHT;
   • BUFFERMEM_GRACE.

Параметры загрузки для файловой системы NFS

   Linux поддерживает и бездисковые рабочие станции, загружаемые по локальной сети. Для этого необходимо настроить корневую файловую систему бездисковой станции как NFS (Network File System, сетевая файловая система). Чтобы сообщить бездисковой рабочей станции, с какой машины она будет получать операционную систему, используются указанные в этом разделе параметры. Также необходимо установить параметр root=/dev/nfs. Подробная информация по использованию NFS в качестве корневой файловой системы содержится в файле /usr/src/Linux-2.4.3/Documentation/nfsroot.txt. Эта тема также будет рассмотрена в гл. 33.
Параметр nfsroot
   Параметр сообщает ядру, какую машину, какой каталог и с какими опциями NFS использовать в качестве корневой файловой системы. Формат этого параметра следующий:
 
   nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
 
   Если параметр nfsroot не был дан в командной строке, то по умолчанию будет использовано значение /tftpboot/%s.
   Другие опции:
   • <server-ip> – задает IP-адрес сервера NFS. Если это поле не задано, по умолчанию адрес будет определен переменной nfsaddrs;
   • <root-dir> – имя каталога на сервере, монтируемого как корневой. Если в строке имеется фраза "%s", она будет заменена на ASCII-представление IP-адреса клиента;
   • <nfs-options> – стандартные опции NFS. Все опции разделены запятыми. Если поле опций не задано, будут использованы следующие параметры:
   – port = указывается демоном роЛтар-сервера
   – rsize = 1024
   – wsize = 1024
   – timeo = 7
   – retrans = 3
   – acregmin = 3
   – acregmax = 60
   – acdirmin = 30
   – acdirmax = 60
   – flags = hard, nointr, noposix, cto, ac
Параметр nfsaddrs
   Параметр загрузки устанавливает параметры сетевого интерфейса. Если параметр опущен, то для выяснения этих значений ядро попытается использовать RARP и/или ВООТР. Формат параметра следующий:
 
   nfsaddrs=<my-ip>:<serv-ip>:<gw-ip>:<netmask>:<name>:<dev>:<auto>
 
   • <my-ip> – IP-адрес клиента. Если параметр опущен, адрес определяется с помощью RARP или ВООТР. Выбор протокола будет зависеть от того, как было сконфигурировано ядро, и от параметра <auto>. Если параметр указан, ни RARP, ни ВООТР использоваться не будут;
   • <serv-ip> – IP-адрес сервера NFS. Если это поле опущено, будет использован адрес сервера, ответившего на запрос RARP или ВООТР;
   • <gw-ip> – IP-адрес шлюза. Если поле опущено, шлюзы использоваться не будут;
   • <netmask> – маска сети для сетевого интерфейса;
   • <name> – имя клиента;
   • <dev> – имя используемого сетевого устройства. Если поле опущено, для RARP-запросов будут использованы все устройства, а для ВООТР – первое найденное. Для NFS будет использовано устройство, на котором были получены ответы RARP или ВООТР;
   • <auto> – автоконфигурирование. Можно использовать следующие значения:
   – rarp – использовать протокол RARP;
   – bootp – использовать протокол ВООТР;
   – both – будут применены оба протокола;
   – none – означает отсутствие автоконфигурирования. В этом случае следует указать все необходимые значения в предыдущих полях.

Дополнительные параметры загрузки

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

Параметр debug

   Ядро Linux имеет возможность выводить важные сообщения на консоль (ошибки ввода/вывода, проблемы с оборудованием и т. п.). Пороговое значение важности сообщения задается переменной consoie_iogievei. По умолчанию на консоль отправляется практически все, кроме отладочной информации. Использование параметра debug позволит всем сообщениям ядра попадать на консоль.

Параметр init

   Во время загрузки ядро Linux запускает программу init, которая затем подготавливает операционную систему для полноценной работы. Сначала ядро Linux ищет программу init в каталоге /sbin, а при неудаче попробует запустить ее из каталога /bin/sh. Если программа init повреждена и загрузить операционную систему не удается, можно использовать командную строку загрузки init=/bin/sh, которая даст возможность заменить поврежденную программу или выполнить какие-то другие программы.

Параметр kbd-reset

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

Параметр maxcpus

   Параметр ограничивает максимальное количество процессоров, используемое в режиме SMP. Указание в параметре о эквивалентно опции nosmp.

Параметр mca-pentium

   Параметр, специфичный для компьютеров IBM модели 95 с шиной МСА (MicroChannel), которые зависают во время теста, выполняемого Linux для обнаружения типа математического сопроцессора. Эту проблему можно решить с помощью параметра загрузки mca-pentium.

Параметр md

   Если корневая система компьютера расположена на составном (Multiple) устройстве (как правило, это RAID-массив дисков), то можно использовать параметр md, чтобы сообщить ядру конфигурацию составного устройства.
   Подробная информация по этой теме содержится в файле /usr/src/Linux-2.4.3/Documentation/md.txt.

Параметр no387

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

Параметр no-hlt

   Параметр актуален только для старых компьютеров на базе процессора i486. У процессоров Intel есть инструкция hit, заставляющая процессор ничего не делать, пока внешнее устройство (клавиатура, винчестер и т. п.) не вызовут его для выполнения задачи. Некоторые чипы i486 имели проблемы с командой hit, после которой они не могли вернуться в рабочий режим. С помощью параметра no-hit можно заставить ядро Linux при отсутствии активности вместо остановки процессора выполнять бесконечный цикл.

Параметр no-scroll

   Параметр запрещает при загрузке функцию прокрутки. Актуально только для некоторых устаревших терминалов.

Параметр noapic

   Параметр позволяет ядру Linux с поддержкой мультипроцессорности не использовать расширенные возможности контроллера прерываний в многопроцессорных машинах. Подробную информацию можно найти в файле /usr/src/Linux-2.4.3/Documentation/IO-APIC.txt.

Параметр nosmp

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

Параметр panic

   В крайне редком случае «паники» ядра (обнаруженная ядром внутренняя ошибка, которую ядро считает достаточно серьезной, что приводит к выдаче сообщения kernel panic и полной остановке системы) по умолчанию компьютер остается в этом состоянии, пока администратор его не перезагрузит. Однако иногда необходимо, чтобы машина автоматически перезагрузила себя, чтобы восстановить нормальную работу системы. Используя этот параметр, можно установить время (в секундах), по прошествии которого система попытается перезагрузиться. Например, при установке параметра panic=2 о ядро Linux попытается перегрузиться через 20 секунд после выдачи сообщения kernel panic. Нулевое значение соответствует стандартному поведению – ждать вмешательства администратора.
   Также время тайм-аута можно прочитать и изменить через интерфейс /proc /sys/kernel/panic.

Параметр pirq

   Эта опция передает мультипроцессорному ядру информацию об установках IRQ-слота PCI для некоторых материнских плат SMP. Подробную информацию можно найти в файле /usr/src/Linux-2.4.3/Documentation/IO-APIC.txt.

Параметр profile

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

Параметр reboot

   Параметр задает тип перезагрузки, выполняемой ядром Linux. Стандартно ядро Linux выполняет так называемую «холодную» перезагрузку (полная инициализация аппаратного обеспечения, BIOS проверяет память и т. д.). Существует также «теплая» перезагрузка, при которой не происходит первоначального тестирования оборудования, что несколько убыстряет загрузку операционной системы.

Параметр reserve

   Используется для защиты диапазона портов ввода/вывода от тестирования (I/O probe). Формат команды:
 
   reserve=iobase,extent[,iobase,extent]…
 
   В некоторых машинах бывает необходимо защитить драйверы устройств от поиска устройств (auto-probing) в определенном диапазоне. Причиной могут послужить устройства, идентифицирующиеся ошибочно, или устройства, инициализация которых ядром нежелательна.
   Параметр загрузки reserve устраняет проблему, указывая диапазон портов ввода/вывода, который необходимо исключить из тестирования. При этом диапазон резервируется в таблице ядра регистрации портов как уже определенный. Такой механизм необходимо использовать только при наличии проблем или в специальных случаях.

Параметр vga

   Опция, интерпретируемая LILO, а не ядром, однако ее применение стало настолько обычным, что заслуживает упоминания. Также может быть установлена с помощью команды rdev – v. Лучший способ применения этой опции – стартовать с vga=ask. Тогда до загрузки ядра будет предложен список различных режимов, допустимых для имеющейся в системе видеокарты. Более подробная информация содержится в файле /usr/src/Linux-2.4.3/Documentation/svga.txt.

Загрузочные параметры, определяющие поведение шины PCI

   Параметр pci= можно использовать для изменения способа поиска устройств на шине PCI и поведения этих устройств. Как правило, это необходимо либо для старого оборудования, не совсем корректно использующего технологию Plug and Play, либо для специфических РС1-устройств.

Аргументы pci=bios и pci-nobios

   Используются для установки или сброса флага индикации тестирования (probing) PCI через PCI BIOS. По умолчанию используется BIOS.

Аргументы pci=conf1 и pci=conf2

   Разрешают тип конфигурации 1 или 2. Также они неявно сбрасывают флаг PCI BIOS probe (т. е. pci=nobios).

Аргумент pci=io=

   Если получено сообщение типа
 
   Unassigned 10 space for…/
 
   то может потребоваться указать значение ввода/вывода этой опцией.

Аргумент pci=nopeer

   Специфический аргумент, исправляющий погрешности некоторых версий BIOS.

Аргумент pci=nosort

   Использование этого аргумента заставляет ядро не сортировать PCI-устройства в процессе проверки.

Аргумент pci=off

   Использование этой опции запрещает все проверки PCI-шины. Любые драйверы устройств, использующих функции PCI для поиска и инициализации оборудования, скорее всего, потеряют работоспособность.

Аргумент pci=reverse

   Эта опция меняет на обратный порядок PCI-устройств на шине PCI.

Аргументы загрузки для драйверов буфера видеофреймов

   Аргумент video= используется, когда уровень абстракции устройства буфера фреймов встроен в ядро. Это означает, что вместо наличия отдельных программ для каждого семейства видеокарт (VOODOO, TNT, S3 и пр.) ядро имеет встроенный драйвер для каждой видеокарты и экспортирует единственный (единый) интерфейс для видеопрограмм. Типичный формат этого аргумента:
 
   video=name: option1,option2,…
   где name – название универсальной опции или драйвера буфера фреймов. Как только найдено совпадающее имя драйвера, то список параметров, разделенных запятыми, передается в этот конкретный драйвер для окончательной обработки.
   Информацию по опциям, поддерживаемым каждым драйвером, можно найти в файле /usr/src/Linux-2.4.3/Documentation/fb/.

Аргумент video=map:…

   Эта опция используется для установки консоли отображения устройства буфера фреймов.

Аргумент video=scrollback:…

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

Аргумент video=vc:…

   Число или диапазон чисел определяют первую или первую и последнюю виртуальную консоли буфера фреймов.

Аргументы загрузки для SCSI-периферии

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

Аргументы для драйверов Mid-level

   Драйверы уровня Mid управляют такими устройствами, как винчестеры, CD-ROM и стримеры без учета специфики SCSI-контроллера.
Максимальный LUN (max_scsi_luns=)
   Каждое SCSI-устройство может иметь несколько псевдоустройств внутри себя. К примеру, SCSI CD-ROM, обслуживающий более чем один диск одновременно. Каждый CD-ROM адресуется номером логического устройства (Logical Unit Number, LUN). Но большинство SCSI-устройств являются одним устройством, и им назначается нулевой LUN.
   Старые SCSI-устройства не могут обработать запросы поиска с LUN, не равным нулю. Зачастую это приводит к зависанию устройства. Чтобы избежать указанной проблемы, по умолчанию пробуется только нулевой LUN.
   Для определения количества пробуемых LUN при загрузке, в качестве аргумента загрузки вводится max_scsi_iuns=n, где л – номер от 1 до 8.
Регистрация SCSI (scsi_logging=)
   Ненулевое значение этого загрузочного аргумента включает регистрацию всех SCSI-событий.
Параметры для ленточного накопителя SCSI (st=)
   При загрузке ядра Linux можно изменить конфигурацию ленточного накопителя SCSI, используя
 
   st=buf_size[,write_threshold[,max bufs]]
 
   Первые два числа указываются в килобайтах. По умолчанию buf_size равен 32 Кбайт. write_threshoid – значение, при котором буфер сбрасывается на ленту, по умолчанию 30 Кбайт. Максимальное количество буферов зависит от количества обнаруженных ленточных накопителей, по умолчанию равно 2.

Аргументы для контроллеров SCSI

   Понятия, используемые в данном разделе:
   • iobase – первый порт ввода/вывода, занимаемый контроллером SCSI. Указывается в шестнадцатеричной нотации и обычно лежит в диапазоне от 0x200 до 0x3ff;
   • irq – аппаратное прерывание, установленное на карте. Допустимые значения зависят от конкретного контроллера, но обычно это 5, 7, 9, 10, 11, 12 и 15;
   • dma – используемый картой канал DMA (Direct Memoiy Access – прямой доступ к памяти). Обычно применяется только для карт с управлением шиной (bus-mastering);
   • scsi-id – идентификатор, используемый контроллером для идентификации себя на SCSI-шине. Только некоторые контроллеры позволят изменить это значение. Типичное значение по умолчанию – 7.
   • parity – ожидает ли SCSI-контроллер поддержку всеми подсоединенными устройствами четности при всех информационных обменах. Единица разрешает проверку четности, ноль – запрещает.
   К сожалению, большей неразберихи, чем в настройках SCSI-контроллеров и устройств, наверное, не существует. До недавнего времени любая попытка улучшить поддержку SCSI-устройств в Linux оборачивалась тем, что какие-то новые контроллеры работали, а старые (казалось, уже давно отлаженные) теряли свою работоспособность.
   В качестве примера ниже приведена конфигурация некоторых семейств контроллеров. Подробную информацию следует искать в документации на конкретные контроллеры.
Adaptec aha154x (aha1542=)
   Карты серии ahal54x с управлением шиной. Аргументы загрузки выглядят следующим образом:
 
   aha1542=iobase[,buson,busoff[,dmaspeed]]
 
   Допустимые значения iobase: 0x130, 0x134, 0x230, 0x234, 0x330, 0x334. Клоны карты могут допускать другие значения.
   Значения buson, busoff указывают количество микросекунд, на которое карта может захватить ISA-шину.
   Параметр dmaspeed указывает скорость в мегабайтах в секунду, с которой происходит DMA-доступ. По умолчанию – 5 Мбайт/с.
Adaptec aha274x, aha284x, aic7xxx (aic7xxx=)
   Эти контроллеры принимают следующие аргументы:
 
   aiс7xxx=extended,no_reset
 
   Здесь:
   • extended – значение, используемое с винчестерами большой емкости;
   • no_reset – значение, запрещающее сброс SCSI-шины во время загрузки.
   Если SCSI-контроллер не желает нормально функционировать, следует обратится к SCSI-HOWTO или к документации ядра. Возможно, там присутствует данный SCSI-контроллер и описано решение этой проблемы.

Жесткие диски

   В этом разделе приводится список аргументов загрузки для стандартных жестких дисков (винчестеров) MFM/RLL, ST-506, XT и устройств IDE.

Параметры драйвера IDE – винчестера/CD-ROM

   Драйвер IDE допускает множество параметров, от определения геометрии диска до поддержки расширенных или дефектных микросхем контроллера. Подробная информация по конфигурации драйвера содержится в файле /usr/src/Linux-2.4.3/Documentation/ide.txt.
   • hdx= – распознается от а до h, например HDD;
   • idex= – распознается от 0 до 3, например IDE1;
   • hdx=noprobe – привод может присутствовать, но он не тестируется;
   • hdx=none – жесткий диск отсутствует, CMOS игнорируется и тестирование не производится;
   • hdx=nowerr – игнорируется бит wrerr_stat на этом приводе;
   • hdx=cdrom – привод присутствует и является приводом CD-ROM;
   • hdx=cyi, head, sect – принудительное указание геометрии жесткого диска;
   • hdx=autotune – привод попытается настроить скорость интерфейса на самый быстрый поддерживаемый режим PIO, который только возможен для этого привода. На старых материнских платах не гарантируется полная поддержка такого режима;
   • idex=noprobe – не тестировать данный интерфейс;
   • idex=base – задать адрес указанному интерфейсу, где base обычно 0x1f0 или 0x170, a cti подразумевается base+0x206;
   • idex=base, cti – указывает как base, так и cti;
   • idex=base, cti, irq – указывает base, cti и номер IRQ;
   • idex=autotune – будет произведена попытка настроить скорость интерфейса на самый быстрый поддерживаемый режим PIO для всех приводов на этом интерфейсе. На старых материнских платах не гарантируется полная поддержка такого режима;
   • idex=noautotune – привод не будет пытаться настроить скорость интерфейса;
   • idex=serialize – не выполнять операции overlap на idex.
   Нижеследующее допустимо только на IDE0, и умолчания для base– и ctl-портов не должны меняться. Используется для старых чипсетов времен процессоров i386 и i486:
   • ide0=dtc2278 – поддерживать контроллер DTC2278;
   • ide0=ht6560b – поддерживать контроллер НТ6560В;
   • ide0=cmd640_vib – необходим для карт VLB с чипом CMD640;
   • ide0=qd6580 – поддерживать контроллер qd6580;
   • ide0=ali14xx – поддерживать чипсеты ALI14xx (ALI М1439/М1445);
   • ide0=umc8672 – поддерживать чипсет UMC8672.

Опции драйвера диска стандарта ST-506 (hd)

   Устаревший стандарт. Сегодня вряд ли можно где-нибудь столкнуться с жестким диском этого стандарта. Допустим только аргумент hd=.
   Формат: hd=cyls, heads, sects
   Если установлено два диска, точно так же задается второй диск.

Опции драйвера диска XT (xd)

   Устаревший стандарт. Аргумент загрузки для жесткого диска:
 
   xd=type,irq,iobase,dma_chan
 
   Значение type указывает конкретного производителя карты и обозначается: 0=generic; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI. Единственное отличие между разными типами от одного и того же производителя – строка BIOS, используемая для обнаружения, которая не активизируется, если указан тип.

CD-ROM (не-SCSI/ATAPI/IDE)

   Первоначально, когда только появились приводы CD-ROM, для этих приводов не было единого интерфейса. Последние 4–5 лет выпускаются приводы CD-ROM только с SCSI или IDE-интерфейсом. Однако иногда приходится встречаться с CD-ROM с интерфейсом Sony и Mitsumi. Ниже приведены параметры для различных контроллеров приводов CD-ROM.
   Более подробная информация содержится в каталоге /usr/src/Linux-2.4.3/ Documentation/cdrom.

Интерфейс Aztech (aztcd)

   Синтаксис для этого типа интерфейса:
 
   aztcd=iobase[,magic_number]
 
   Если установить magic_number равным 0x79, драйвер опробует устройство и в случае неизвестной ему версии оборудования (firmware) отключится. Все другие значения игнорируются.

Интерфейс Sony CDU-31A и CDU-33A (cdu31a)

   Синтаксис:
 
   cdu31a=iobase,[irq[,is_pas_card]]
 
   Указав значение IRQ, равное нулю, сообщаем драйверу, что аппаратные прерывания не поддерживаются. Если имеющаяся карта поддерживает прерывания, следует использовать их для уменьшения загрузки центрального процессора.