Литмир - Электронная Библиотека
Содержание  
A
A

7.2.2.3. Планировщик ввода-вывода

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

• noop - самый простой планировщик ввода-вывода, практически ничего не умеет, создавался в расчете на использование Flash-диска вместо жесткого диска, поэтому нам такой планировщик не подходит.

• fq - этот планировщик равномерно планирует операции ввода-вывода (получается "местная" очередь). Используется по умолчанию.

• anticipatory (сокращенно as) - этот планировщик будет пытаться угадать следующую инструкцию программы. В этом случай производительность той или иной программы зависит от ее алгоритма, т.е. оттого, угадает ли планировщик следующий "ход" программы.

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

Итак, сделаем выводы. Планировщики noop и deadline нам не годятся. Остается использовать или планировщик по умолчанию - cfg, или "планировщик-предсказатель". Попробуйте использовать anticipatory: если производительность системы понизится, всегда можно вернуться к cfg.

Выбор планировщика осуществляется путем передачи ядру параметра elevator:

elevatоr=aa (для anticipatory)

или

elevator=cfq

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

7.2.3. Уровни запуска. Файл /etc/inittab

После того как все будет готово к запуску системы инициализации (будет "подмонтирована" корневая файловая система, подключены разделы подкачки и т.д.), ядро запустит программу инициализации системы, сохраняемую в файле /sbin/init (как уже было отмечено, это система инициализации по умолчанию).

Первым делом программа init открывает файл /etc/inittab (это таблица инициализации) и читает уровень запуска по умолчанию. Он задается так:

id:5:initdefault:

5 - это номер уровня запуска по умолчанию; всего существует шесть уровней запуска:

• 0 - останов системы (система переходит на этот уровень когда получена команда завершения работа);

• 1 - Однопользовательский режим без поддержки сети (для перехода в этот режим нужно передать ядру параметр single);

• 2 - многопользовательский режим без поддержки сети;

• 3 - многопользовательский режим с поддержкой сети бeз загрузки графического интерфейса;

• 4 - данный уровень запуска не используется;

• 5 - многопользовательский режим с поддержкой сети с загрузкой графического интерфейса,

• 6 - перезагрузка системы (система переходит на этот уровень, когда получена команда перезагрузки).

Вот основные команды завершения работы:

• halt - останов системы;

• poweroff - останов системы с выключением питания;

• reboot - перезагрузка системы.

Перейти на нужный вам уровень запуска (уже после загрузки системы) можно с помощью команды init:

# init ‹номер_уровня›

Например:

# init 3

7.2.4. Сервисы (службы)

После того как программа init получила номер уровня запуска, она запускает из каталога /etc/rc.d/rcN.d (N - это номер уровня запуска) ссылки вида SномерИмя (или KномерИмя - в зависимости от уровня запуска). Сейчас разберемся, что это за ссылки. Перейдите в каталог /etc/rc.d/rcN.d - например, с помощью команды

 cd /etc/rc.d/rcs.d

В данном каталоге вы найдете файлы ссылок с именами вида SномерИмя и KномерИмя. Каждая ссылка ссылается на один из сценариев в каталоге /etc/rc.d/init.d.

Данные сценарии используются для управления сетевыми службами. Предположим, что на вашем компьютере установлен Web-сервер, тогда в каталоге /etc/rc.d/init.d будет сценарий. httpd. Для запуска Web-сеpвepa используется команда /etc/rc.d/init.d/httpd start, а для останова - /etc/rc.d/init.d/httpd stop.

Теперь вернемся к нашим ссылкам SномерИмя и KномерИмя, Ссылка вида S* используется для запуска сетевой службы. Например, ссылка для запуска Web-сервера может выглядеть так: S25httpd, а ссылка для останова Web-сервера - так: K15httpd.

Если команда init обнаружит, что ей нужно обработать ссылку вида S*, то будет выполнена команда S25httpd start. Поскольку ссылка S25httpd ссылается на /etc/red/init.d/httpd, то на самом деле будет выполнена команда:

/etc/rc.d/init.d/httpd start

Другими словами, с помощью ссылки S25httpd программа init запустит наш Web-сервер.

Ссылка вида K* используется для останова сетевой службы. Если команда init должна обработать такую ссылку, то будет выполнена команда KномерИмя stop. Другими словами, сетевая служба будет остановлена.

Номер в имени ссылки означает порядок запуска/останова службы, Например, служба S10service будет запущена раньше, чем S25httpd.

Если вы заглянете в каталоги rc2.d, rс3.d и rc5.d, то обнаружите, что d этих каталогам есть только S-ссылки. В каталогах rc0.d и rc6.d находятся преимущественно К-ссылки, поскольку с их помощью выполняется разгрузка системы, и нужно остановить работавшие сетевые службы.

Уровень 1 (single) особый: на нем нужно остановить все запушенные сетевые службы, поэтому в каталоге rc1.d тоже нет S-ссылок, будут только одни K-ссылки. K-ссылки нужны для того, чтобы остановить запушенные сетевые службы, если вы перешли на первый уровень с более высокого уровня запуска.

Для управления службами в Fedora используется конфигуратор system-config-services, который мы уже рассмотрели в главе 1.

7.3. Загрузчик GRUB

7.3.1. Кратко о GRUB

Как уже было отмечено, GRUB (Grand Unified Bootloader) - это один из возможных загрузчиков Linux. Раньше загрузчиком де-факто был LILO (Linux Loader), но потом появился GRUB, и LILO сдал свои позиции. Конечно, LILO уступил свое место под солнцем не сразу, а за несколько лет. Но даже и сейчас встречаются дистрибутивы, которые используют LILO. Иногда встречаются дистрибутивы, которые используют собственный загрузчики вместо GRUB, например, ASP Linux использует собственный загрузчик - ASP Loader, нота при установке операционной системы у пользователя есть возможность выбрать другой загрузчик - GRUB или LILO.

Чем же GRUB лучше, чем LILO? Во-первых, GRUB не нужно каждый раз переустанавливать после изменения конфигурационного файла. Если вы не знакомы с LILO, то знайте: после редактирования конфигурационного файла lilo.conf нужно было в обязательном порядке переустановить загрузчик. GRUB не нужно переустанавливать после изменения его конфигурационного файла. Во-вторых, GRUB более гибкий. По сути, GRUB - это командная оболочка, позволяющая без загрузки операционной системы выполнять простейшие операции над файлами. Например, с помощью команды cat можно просмотреть любой файл на жестком диске:

grub› cat (жёсткий диск)путь/файл

Например,

grub› cat (hd0,4)/etc/inittab

Это очень полезно, если система не загружается, а у вас есть подозрения, что дело в одном из конфигурационных файлов. В-третьих, GRUB поддерживает много разных файловых систем - FAT32, ext3, Reiserfc, XFS и др., что и позволяет ему проделывать трюки, описанные выше.

46
{"b":"99508","o":1}