# Добавляются разделы подкачки
Adding 530104k swap on /dev/hda7. Priority:-1 extents: 1 across:530104k
Adding 256968k swap on /dev/hdc7. Priority:-2 extents:1 across:256968k
# Файловая система ext3 найдена на hda6
EXT3 FS on hda6, internal journal
kjournald starting, Commit interval 5 seconds
# Файловая система ext3 найдена на hda5, режим журнала ordered
EXT3 FS on hda5, internal jоurnal
ЕХТЗ-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
# Файловая система ext3 найдена на hdc5, режим журнала ordered
EXT3 FS on hdc5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
# Файловая система ext3 найдена на hdc6, режим журнала ordered
EXT3 FS on hdc6: internal journal
EXT3-fs: mounted filesystem with ordered data mode.
# Есть NTFS-драйвер, поддержка NTFS в режиме только чтение
NTFS driver 2.1.28 [Flags: R/O MODULE]. NTFS volume version 3.1.
Взгляните на сообщения ядра Linux: no ним можно судить, как об аппаратных средствах компьютера, так и о самом процессе загрузки Linux. Например, из данного листинга следует, что аппаратная конфигурация компьютера, на котором запущена система Linux, следующая:
• процессор AMD Duron™, частота 1.6 ГГц;
• 64 Кбайт кэш-памяти первого уровня (L1 cache), 64 Кбайт кэша второго уровня (L2 cache);
• объем оперативной памяти - 768 Мбайт;
• материнская плата VIA, чипсет KТ266;
• два жестких диска: WD 160 Гбайт и Maxtor 40 Гбайт;
• CD/DVD-ROM LG;
• сетевой адаптер VIA Rhine 11 (интегрированный в материнскую плату);
• видеокарта nVidia, 128 Мбайт;
• два USB-порта.
О самой операционной системе можно сказать следующее:
• ядро - 2.6.21;
• SELinux выключена;
• планировщик ввода-вывода работает в режиме cfg;
• два раздела подкачки - один 530Мбайт, второй - 256 Мбайт;
• основная файловая система - ext3;
• основной режим журнала ext3 - ordered;
• есть поддержка NTFS.
Все сказанное выше должно быть понятно обычному квалифицированному пользователю, не знакомому с Linux вообще. Всё, кроме параметров планировщика, - о режимах работы журнала exl3 мы уже говорили.
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 можно просмотреть любой файл на жестком диске: