Fedora 8 Руководство пользователя — страница 21 из 28

7.1. Антивирус ClamAV

7.1.1. Вирусы в Linux

Первым делом нужно разрушить миф о том, что в Linux нет вирусов. Вирусы в Linux есть. По данным сайта www.virus-list.com для Linux написано всего 1111 вирусов (на момент написания этих строк).

Почему "всего"? Потому что по данным того же www. viruslist.com всего вирусов и их разновидностей существует почти полмиллиона (!). Но 1111, согласитесь, тоже немало.

Другое дело, что ни один Linux-вирус не создал масштабной "эпидемии". При соблюдении должных правил безопасности вирусы в Linux вообще не страшны, что это за правила? Как мы помним, в Windows нужно обязательно проверять все полученные извне файлы специальной программой-антивирусом; не запускать программ, назначение которых не совсем понятно; не посещать сайты с крэками, эротикой и серийными номерами для программ, поскольку на них больше всего вероятность "поймать" вирус.

В Linux правило одно: не работать под именем пользователя root. Если вы будете работать как обычный пользователь, у которого практически нет полномочий, то вирусы вам не страшны. Даже если на наш компьютер проникнет злобный и страшный вирус, способный работать в среде Linux, особого вреда вашей системе он не сможет причинить только потому, что он будет запушен с правами обычного пользователя, под которым вы всегда работаете. А эти права ничтожно малы, чтобы причинить вред всей системе в целом.

А вот если вирус запущен от имени пользователя root (вы его "поймали", когда работали под именем root), тогда вирус сможет разнести систему в пух и прах! Хотя, учитывая, что для Linux написано чуть больше 1000 вирусов, большая часть из которых не вышла за пределы тех "лабораторий", в которых была создана, по вероятность разнести систему самому ("нечаянно") гораздо выше, чем вероятность заражения вирусом.

Конечно, для Linux написаны вирусы, которые распространяются по сети самостоятельно, например, от сервера к серверу, и для им работы совсем не нужно вмешательство пользователя (ведь классический сценарий следующий - приходит "зараженный" объект, например, программа, документ, письмо, и пользователь должен его открыть, чтобы кол вируса был запушен на выполнение). Но такие вирусы тоже особо не страшны по следующим причинам,

• Во-первых, они рассчитаны на дыры в старых сетевых службах, которые уже давно "залатаны".

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

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

Так для чего же нужен антивирус в Linux? Прежде всего, для проверки файлов, скачанным с Интернета, Ведь вы можете скачать файл, содержащий вирус, а потом отправить его своим знакомым, компьютеры которых будут заражены вирусом. Вы даже и знать не будете, что в файле вирус. Понятно, что вы заразили их компьютеры не намеренно, но все же их заразили вы.

А теперь возьмем другой сценарий. Вам кто-то может прислать по электронной почте документ с вирусом. Пока OpenOffice не подвержен обычным макровирусам MS Office, но опять-таки вы можете передать данный файл Windows-пользователям. Результат будет тем же, что и в предыдущем случае.

Поэтому антивирус для Linux нужен. Другое дело, какой антивирус установить. Для среды Linux разработаны Linux-версии популярных антивирусов AVP (www.kaspersky.ru) и DrWeb (www.drweb.com), но они платные. Если вы хотите использовать AVP или DrWeb, то всегда сможете их купить на приведенных выше сайтах. Они поставляются с подробной документацией, поэтому рассматривать их здесь мы не будем.

Вместо коммерческих антивирусов мы рассмотрим бесплатный антивирус ClamAV. Можно сказать, что ClamAV - это "стандартный" антивирус Linux, поскольку он входит в состав большинства современных дистрибутивов и в некоторых случаях даже устанавливается по умолчанию. А раз это стандарт, то вы должны знать, как его использовать.

7.1.2. Установка и первое обновление антивирусных баз данных

Установить ClamAV очень просто - достаточно установить пакет clamav:

# уum install clamav

В этом пакете находится все необходимое - демон clamd, сканер clamscan и программа обновления антивирусных Саз clamav. Антивирусные базы в комплект поставки не входят; их нужно загрузить из Интернета, но это даже к лучшему - ведь все равно нам пришлось бы после установки пакета со старыми базами обязательно их обновлять.

Сразу после установки пакета нужно запустить демон clamd:

# service clamd start

Система ответит:

Starting Clam AntiVirus daemon [Ok]

Мы уже знаем, что такое служба (сервис) и не раз включали/отключали службы с помощью конфигуратора system-config-services. Так вот, знайте: в Linux правильнее называть службы демонами - этот термин появился раньше.

После этого нужно запустить программу обновления антивирусных баз:

# freshclam


ClaimAV update process started at Mon Nov 26 6:07:23 2007

Downloading main.cvd [100%]

main.cvd updated (version: 46, sigs: 133163, f-level: 20, builder: sven.)

Downloading daily.cvd [100%]

daily.cvd updated (version: 4683, sigs: 30600, f-level: 21, builder: ccordes)

Database updated (163763 signatures) from database.clamav.net (IP: 217.173.238.34)

Обратите внимание: команду freshclam нужно вводить после clarmd. Если демон clamd не будет запущен, то вы получите предупреждение о том, что демон clamd не уведомлен об обновлении баз:

WARNING: Clamd was NOT notified: Can't connect to clamd on 127.0.0.1:3310

connect(): Connection refused

Демон clamd и программа freshclam будут запускаться, автоматически при запуске компьютера, поэтому вам больше не нужно будет вводить ни команду запуска clamd, ни команду обновления баз данных. Только позаботьтесь о том, чтобы соединение с Интернетом устанавливалось автоматически - тогда можно быть уверенным в том, что ваши базы всегда находятся в актуальном состоянии.

7.1.3. Проверка файлов и каталогов

Для проверки файлов и каталогов используется сканер clam-scan. Вот как можно проверить подозрительный файл file.bin:

clamscan file.bin

Для проверки каталогов желательно указывать опцию -r, чтобы заодно были проверены все их подкаталоги:

clamscan -r /home/den

А вот проверку корневой файловой системы лучше проводить от имени пользователя root, потому что у обычного пользователя есть доступ не ко всем объектам файловой системы:

# clamscan -r /

В процессе проверки для каждого файла будет выведен отчет - Ok или сообщение о том, что найден вирус. По окончанию проверки вы увидите общий отчет примерно такого вида:

Known viruses; 161763

 всего известных вирусов в базе

Engine version: 0.91.2

 версия ClamAV

Scanned directories: 552

 количество просксанированных каталогов

Scanned files: 997

 количество просканированных файлов

Infected files: 0

 инфицировано файлов

Data scanned: 75.22 MB

 общий объем просканированных файлов

Time: 57.023 sec (0 m 57 s)

 общее время сканирования

По умолчанию clamscan не проверяет почтовые ящики и архивы. Для проверки почтовых ящиков используется опция -r-mbох:

# clamscan -r-mbox /var/spool/mail

Для проверки архивов нужно указать опции -unzip, -unrar, -tgz:

# clamscan -tgz -unzip -unrar -r /home

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

# clamscan -unrar=/путь/rar -r /home

7.1.4. KlamAV- графический интерфейс для ClamAV

В Windows мы привыкли, что у антивируса должен быть графический интерфейс. Для ClamAV тоже был создан графический интерфейс - программа KlamAV, скачать которую можно по адресу:

http://sourceforge.net/projects/klamav

KlamAV - это всего лишь оболочка (рис. 7.1), и для ее работы необходимо, чтобы была установлена сама программа антивирус ClamAV. Использовать программу-оболочку достаточно просто, поэтому вы разберетесь с ней и без моих комментариев.

У KlamAV есть одно ограничение: данная программа написана с использованием KDE, поэтому пользователям GNOME придется дополнительно установить если не всю KDE, то большую ее часть.

Рис. 7.1. Программа KlamAV

7.1.5. ClamAV для Windows

Если вам нужен бесплатный антивирус для Windows, тогда можно обратить внимание на ClamAV для Windows. Посетите следующие сайты.

• http://www.sosdg.org/clamav-win32 - здесь вы можете скачать консольную версию антивируса ClamAV, работающую в Windows Данная лpoгpaммa полностью аналогична Linux-вepcии (те же опции, тот же принцип работы).

• http://www.clamwin.net - графическая версия антивируса (эти не оболочка, а полноценная версия), работающая в среде Windows (рис. 7.2). Программа по умолчанию сканирует файлы только по вашему запросу, НО может интегрироваться в MS Outlook для проверки почтовых вложений и в Internet Еxрlоrеr (и последнем появится новая команда контекстного меню - Проверить на вирусы).

Рис. 7.2. ClamWin - версия ClamAV для Windows

7.2. Подробно о загрузке Linux

7.2.1. Загрузка компьютера

Рассмотрим первоначальную загрузку компьютера с момента включения питания. Вы нажимаете кнопку Power на корпусе компьютера и в его оперативную память загружается программа POST (Power On Self Test) - программа самотестирования компьютера при включении питания. Она хранится в ПЗУ компьютера.

Программа тестирования первым делом проверяет видеокарту и монитор, затем - запускает тест оперативной памяти, далее проверяются носители данных и другие устройства (это зависит от версии BIOS и "наворотов" материнской платы). После успешного завершения всех проверок управление передается программе-загрузчику.

Задача загрузчика - отыскать устройство, содержащее программу-загрузчик операционной системы, считать найденный загрузчик с носителя в память компьютера и передать ему управление. Порядок поиска загрузочного устройства задается в программе первоначальной настройки компьютера - SETUP. Обычно первое загрузочное устройство - это жесткий диск, CD-ROM и другие сменные носители выступают в роли первых загрузочных устройств редко - как правило, в случае сбоя, когда нужно переустановить операционную систему или восстановить ее, загрузившись с загрузочного CD/DVD.

Загрузчик операционной системы обычно помещается в главную загрузочную запись жесткого диска - MBR (Master Boot Record). После передачи управления загрузчику ОС дальнейшее развитие событии зависит только от этого загрузчика.

Поскольку на вашем компьютере, помимо Fedora, скорее всего, также установлена Windows ХР или Windows Vista, та вы будете иметь дело с двумя загрузчиками - NT Loader (загрузчик Windows) и GRUB (загрузчик Linux). В других дистрибутивах Linux вместо GRUB может использоваться другой загрузчик, например, LILO или ASPLoader. Но в Fedora используется GRUB, поэтому здесь мы будем рассматривать только этот загрузчик.

Как уже было отмечено в этой книге, заставить NTLoader загружать Linux можно, но это не стоит потраченного времени и сил, поэтому проще установить сначала Windows, а затем - Linux. В этом случае при загрузив компьютера GRUB отобразит меню, состоящее из нескольких вариантов загрузки Linux (обычная загрузка и безопасный режим) и одного варианта загрузки Windows. При выборе пункта меню Windows управление будет передано загрузчику NTLoader, который, к свою очередь, если установлено несколько версий Windows, отобразит меню, позволяющее выбрать ту или иную версию Windows (например, ХР или Vista).

7.2.2. Загрузка Linux

7.2.2.1. Корневая файловая система и система инициализации

Итак, вы выбрали загрузку Linux. Загрузчик GRUB загрузит ядро, а затем передаст ему параметры и управление. Подробно

весь процесс загрузки ядра рассматриваться здесь не будет. Вам достаточно знать следующее: ядру при загрузке нужно сделать две важные веши - "подмонтировать" корневую файловую систему и запустить систему инициализации.

Название раздела, содержащего корневую файловую систему, передается ядру в виде параметра root, например:

root=/dev/hda5

Если ядро не может "подмонтировать" корневую файловую систему, то оно переходит я режим паники, Загрузка системы останавливается, а на экране появляется сообщение:

kernel panic: VFS: unable to mount root fs

Система инициализации указывается с помощью параметра init. Если параметр init не указан, то используется система инициализации /sbin/init. Вообще init - это далеко не единственная система инициализации. Например, в Ubuntu используется система инициализации upstart, а в некоторых других дистрибутивах используется система init-ng (init Nest Generation).

7.2.2.2. Вывод сообщений ядра: программа dmesg

При загрузке ядра на экран выводятся некоторые сообщения. На современных компьютерах они выводится и сменяются настолько быстро, что вы, как правило, не успеете их прочитать. Если вам интересно, какие именно сообщения выводятся при загрузке ядра, откройте терминал и введите команду:

dmesg | less

В листинге 7.1 приведены не все сообщения ядра: полный вывод сообщений ядра занимает много места и я не вижу смысла приводить его полностью. Мои комментарии выделены полужирным шрифтом: так вам будет проще ориентироваться в выводе ядра.

Листинг 7.1. Вывод сообщений ядра Linux при загрузке (Fedora 7)

# Версия ядра и версия gcc, с помощью которого собиралось ядро

Linux version 2.6.21-1.3194.fc7 (kojbuilder@xenbuilder4.fedora.phx.ewdhat.com) (gcc version 4.1.2. 20070502 (Red Hat 4.1.2-12)) #1 SMP Wed May 23 22:35:01 EDT 2007

BIOS-provided physical RAM map:

sanitize stare

sanitize end

copy_e820_map() start: 00000000000000000 size: 000000000009f800 end:00000000009f800 type: 1

copy_e820_map() type is E820_RAM

copy_e820_map() start: 000000000009f800 size: 000000000009f800 end: 0000000000009f800 type: 1 copy_e820_maр() start: 0000000000000000 size: 000000000009fc00 end: 000000000009fc00 type: 1

BIOS-е820; 0000000000000000 - 00000000009fcOO (usable)

BIOS-e820: 00000000ffff0000 - 0000000l00000000 (reserved)

OMB HIGHMEM available.

# Всего установлено 768 Мбайт оперативной памяти (512 + 256)

767 MB lowmem available.

Entering add_active_range(0, 0, 196592) 0 entriеs of 256 used

Zone PFN ranges:

 DMA 0 -› 4096

 Normal 4096 -› 196592

 HighMem 196592 -› 196592 early_node_map[1] active PFN ranges

 0: 0 -› 196592

On node 0 totalpages: 196592

 DMA zone: 32 pages used for memmap

 DMA zone: 0 pages reserved

 DMA zone: 4064 pages, LIFO batch: 0

 Normal zone; 1503 pages used for memmap

 Normal zone: 190993 pages, LIFO batch: 31

 HighMem zone: 0 pages used for memmap

DMI 2.2 present.

# Параметры ACPI (Advanced Configuration and Рower Interface):

ACPI: RSDP (v000 VIA694) @ 0x000f6a20

ACPI: RSDT (v001 VIA694 АWRDАСРI 0x42302e31 AWRD 0x00000000) @ 0x2fff3000

AСРI: FADT (v001 VIA694 AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x2fff3040

ACPI: DSDT (v001 VIA694 AWRDACPI 0x00001000 MSFT 0x0100000e) @ 0x00000000

ACPI: PM-Timer IO Port: 0x4008

Allocating PCI resources starting at 40000000 gap: 30000000:cfff0000)

# Частота процессора:

Detected 1595.598 MHz processor.

Built 1 zonelists. Total pages: 195057

# Параметры, переданные ядру

Kernel сommand line: root=/dev/hda6 ro locale=ru_RU

# Локальный контроллер прерываний APIC (Advanced Programmable Interrupt Controller) отключен:

Local APIC disabled by BIOS - you can enable it with "lapic"

mapped APIC to ffffd000 (0160c000)

Enabling fast FPU save and restore… done.

Enabling unmasked SIMD FPU exception support… done.

Initializing CPU#0

PID hash table entries: 4096 (Order: 12, 16384 bytes)

# Консоль: цветная, 80x25

Console: colour VGA+ 80x25

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

# Информация об использовании памяти при загрузке

Memory: 768064k/786368k available (l992k kernel code, 17644k reserved, 893k data, 328k init, 0k highmem)

# Карта виртуальной памяти ядра

virtual kernel memory layout:

fixmap: 0xfff4e000 - 0xfffff000 (708 kB)

pkmap: 0xff800000 - 0xffc00000 (4096 kB)

vmalloc: 0xf0800000 - 0xff7fe000 (239 MB)

lowmem: 0xc00000000 - 0xefff0000 (767 MB)

.init: 0xc03d7000 - 0xc0429000 (328 kB)

.data: 0xc02f2264 - 0xc03d16d4 (893 kB)

.text: 0xc010000 - 0xc02f2264 (1992 kB)

Checking if this processor honours the WP bit even in supervisor mode… Ok.

Calibrating delay using timer specific routine… 3193.85 BogoMIPS (lpj = 6387715)

Security Framework v1.0.0 initialized

# SELinux выключена

SELinux: Disabled at boot.

Mount-cache hash table entries: 512

CPU: After generic identify, caps: 0383f9ff c1c3f9ff 00000000 00000000 00000000 00000000 00000000

# Кэш первого и второго уровня:

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 64K (64 bytes/line)

CPU: After all inits, caps: 0383f9ff c1c3f9ff 00000000 00000420 00000000 00000000 00000000

ACPI: setting ELCR to 0200 (from 0e28)

# тип и производитель процессора

CPU0: AMD Duron(tm) processor stepping 01

# Материнская плата обычная, не SMP

SMP motherboard not detected.

# Локальный контроллер APIC не найден, используется его эмуляция

Local APIC not detected. Using dummy APIC emulation.

# Всего один процессор

Brought up 1 CPUs

Booting paravirtiualized kernel on bare hardware

Time: 7:33:12 Date: 09/03/107

NET: Registered protocol family 16

# Настраиваются шины EISA, PCI

EISA bus registered

ACPI: bus type pci registered

PCI: PCI BIOS revision 2.10 entry at 0xfb3e0, last bus=1

PCI: Using configuration type 1

# Настраиваются стандартные РCI-ресурсы

Setting up standard PCI resources

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (0000:00)

PCI: Probing PCI hardware (bus 00)

ACPI: Assume root bridge [\_SB_.PCI0] bus is 0

# Регионы 4000-407f и 5000-500f, занятые контроллером IDE

PCI quirk: region 4000-407f claimed by vt8235PM

PCI quirk: region 5000-500f claimed by vt8235SMB

Boot video device is 0000:01:00.0

# Таблица прерываний PCI

ACPI: PCI interrupt Routing Table [\_SB_.PCI0.PRT]

ACPI; PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LNKB] (IRQs 1 *3 4 5 6 7 10 11 12 14 15)

ACPI: PCI interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI interrupt Link [LNKD] (IRQs 1 3 4 *5 6 7 10 11 12 14 15)

# Запущена поддержка PnP-устройств

Linux Plug and Play Support V0.97 (c) Adam Веlау

pnp: PnP ACPI init

pnp: PnP ACPI: found 13 devices

# PnPBios отключена ACPI PNP

PnPBIOS: Disabled by ACPI PNP

# PCI использует ACPI для IRQ-маршрутизации (Маршрутизации прерываний)

PCI: Using ACPI for IRQ routing

# Если ваше PCI-устройство не работает, попробуйте передать ядру параметр pci=routeirq

PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report

# Регистрируются сетевые протоколы

NET: Registered protocol family 8

NET: Registered protocol family 20

pnp: 00:02: ioport range 0x4000-0x407f could not be reserved

pnp: 00:02: ioport range 0x5000-0x500f has been reserved

PCI: Bridge: 0000:00:01.0

   IO window: disabled.

   MEM window: e8000000-e9ffffff

   PREFETCH window: d0000000-dfffffff

PCI: Setting latency timer of device 0000: 00:01.0 to 64

NET: Registered protocol family 2

# Подготавливаются таблицы хеша для протоколов IP и TCP

IP route cache hash table entries: 32768 (order: 5, 131072 bytes)

TCP established hash table entries: 131072 (order: 8, 1048576 bytes)

TCP bind hash table entries: 65536 (order: 7, 524288 bytes)

TCP: Hash tables configured (established 131072 bind 65536)

TCP reno registered

# Поддерживаются квоты дискового пространства

VFS: Disk quotas dquot_6.5.1

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

# Параметры планировщика ввода-вывода (о нем мы поговорим позже)

io scheduler noop registered

io scheduler anticipatory registered

io scheduler deadline registered

# планировщик cfg используется по умолчанию

io scheduler cfq registered (default)

# Поиск PnP-карт на шине ISA: карты расширения не найдены

isapnp: Scanning for PnP cards…

isapnp: No Plug&Play device found

# Драйвер часов реального времени (RTC)

Real Time Clock Driver v1.12ac

# Драйвер последовательного порта

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

# Мышка

mice: PS/2 mouse device common for all mice

# Параметры RAM-диска (диска в памяти)

RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize

input: Macintosh mouse button emulation as /class/input/input0

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

# Параметры клавиатуры и PS/2 контроллера

PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12

NЕТ: Registered protocol family 1

Using IPI No-Shortcut mode

ACPI: (supports S0 S1 S4 S5)

    Magic number: 11:19:571

    hash matches device рtуb3

# Освобождается неиспользуемая ядром память

Freeing unused kernel memory: 328k freed

Time: tac clocksource has been installed.

input: AT translated Set 2 keyboard as /class/input/input1

# LSM-модель возможностей инициализирован

Capability LSM initialized

ACPI: Fan [FAN] (on)

ACPI: CPU0 (power states: C1[C1] C2[C2])

ACPI: Thermal zone [THRM] (40 C)

# Подготовка к загрузке USB

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

# Загружен драйвер USB

USB Universal Host Controller Interface driver v3.0

ACPI: PCI Interrupt Link [LNKA] enabled at IRQ11

PCI: setting IRQ 11 as level-triggered

ACPI: PCI interrupt 0000:00:10.0 [A] -› Link

- [LNKA] -› GSI 11 (level, low) -› IRQ 11

uhci_hcd 0000:00:10.0: UHCI Host Controller

uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 1

uhci_hcd 0000:00:10.0: irq 11, io bаsе 0x0000d000

usb usb1 configuration #1 chosen from 1 choice

# Найден USB-хаб с двумя портами

hub 1-0:1.0: USB hub found

hub 1-0:l-0: 2 ports detected

FDC a is a post-1991 82077

VP_IDE: IDE controller at PCI slot 0000:00:11.1

ACPI: PCI Interrupt 0000:00:11.1 [A] -› Link [LNKA] -GSI 11 (level, low) -IRQ 11

PCI: VIA VLink IRQ fixup for 0000:00:11.1, from 255 to 11

VP_IDE: chipset revision 6

VP_IDE: not 100% native mode: will probe irqs later

# Контроллер IDE VIA vt8235

VP_IDE: VIA vt8235 (rev 00) IDE UDMA133 controller on pci0000:00:11.1

# найдены IDE-устройства

 ide0: BM-DMA at 0xdс00-0xdc07, BIOS settings: hda:DMA, hdb:pio

 ide1: BM-DMA at 0xdc08-0xdc0f, BIOS settings: hdc:DMA, hdd:DMA

# Проверяется первый IDE-контроллер (ide0)

Probing IDE interface ide0…

Time: acpi_pm clocksource has been installed.

# Первый жесткий диск (hda) - производства Western Digital,

# модель WD1600JB-00REA0 (Primary Master)

hda: WDC WD1600JB-00REA0, ATA DISK drive

ide0 at 0xlf0-0xlf7, 0x3f6 on irq 14

# Проверяется второй IDE-контроллер (ide1) Probing IDE interface ide1…

# Найден жесткий диск (hdc) Maxtor, модель 6E040L0 (подключен как Secondary Master)

hdc: Maxtor 6E040L0, ATA DISK drive

# К hdd (Secondary Slave) подключен CD/DVD-RОМ производства LG

hdd: HL-DT-ST DVDRAM GSА-4167В, ATAPI CD/DVD-ROM drive

ide1 at 0x170-0x177, 0x376 on irq 15

# Подсистема SCSI инициализирована

SCSI subsystem initialized

libata version 2.20 loaded. ACPI: PCI Interrupt 0000:00:12.0[A] -› Link [LNKА] -› GSI 11 (level, low) -› IRQ 11

# Сетевой адаптер VIA Rhine II

еth0: VIA Rhine II at 0x1e800, 00:0d:87:88:bc:96 IRQ 11.

eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1.

ACPI: PCI interrupt LINK [LNKD] enabled at IRQ 5

РСI: setting IRQ 5 as level-triggered

ACPI: PCI interrupt 0000:00:10.3[d] -› Link[LNKD] -› GSI 5 (level, low) -› IRQ 5

# Параметры жёстких дисков

# Первый жесткий диск

# Максимальный размер запроса 512 Кбайт

hda: max request size: 512KiB

# К-во секторов - 312581808, размер 160041 MВ, буфер - 8192 Кбайт, поддержка UDMA 100

hda: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63, UDMA(100)

hda: cache flushes supported

 hda: hda1 hda2 ‹ hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 ›

# Второй жесткий диск

# Максимальный размер запроса 128 Кбайт

hdc: max request size: 128KiB

# К-во секторов - 802932248, размер 41110 MB, буфер - 2048 Кбайт

hdc: 80293248 sectors (41110 МB) w/2048KiB Cache, CHS=65535/16/63

# DVD-ROM не поддерживает DMA

hdd: DMA disabled

ide1: reset: success

hdc1 hdc2 ‹ hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 ›

# Максимальная скорость чтения - 48X, кэш - 2048 Кбайт

hdd: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache

Uniform CD-ROM driver Revision: 3.20

ewsusp: Resume From Partition 3:7 PM: Checking swsusp image.

РМ: Resume from disk failed.

kjournald starting. Commit interval 5 seconds

# Файловая система ext3 работает в режиме ordered

EXT3-fS: mounted filesystem with ordered data mode.

# Сетевой интерфейс eth0 подключен к сети, скорость 100 Мбит/с

eth0: link up, 100Mbps, full-duplex, lрa 0x45E1

NET: Registered рrotоcоl family 17

pci_hotplug: PCI Hot Plug PCI Core version: 0.5

shpchp: Standard Hot Plug PCI Controller Driver version: 0.4

Linux agpgart interface v0.102 (c) Dave Jones

irda_init()

NET: Registered protocol family 23

# Чипсет материнской платы VIA KT266/KY266x/KT333

agpgart: Detected VIA KT266/KY266x/KT333 chip set

# Размер видеопамяти - 128 Мбайт

agpgart: AGP aperture is 128М @ 0xe0000000

# Загрузка модуля видеокарты nVidia

nvidia: module license 'NVIDIA' taints kernel.

input: PC Speaker as /class/input/input2

ACPI: PCI Interrupt 0000:01:00.0[A] -› Link[LNKA] -› GSI 11 (level, low) -› IRQ 11

NVRM: lоаding NVIDIA Linux x86 Kernel Module 1.0-9631 Thu Nov 9 17:38:10 PST 2006

parport: PnPBIOS parport detected.

parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [РСSРР,TRISTATE,CОМРАТ,ЕСР,DMA]

ACPI: PCI Interrupt 0000:00:11.5[C] -› Link[LNKC] -› GSI 10 (level, low) -› IRQ 10

PCI: Setting latency timer of device 0000:00:11.5 to 64

input: ImPS/2 Generic Wheel Mouse as /class/input/input3

fuse init (API Version 7.8)

# Параллельный порт

lp0: using parport0 (interrupt-driven).

# Добавляются разделы подкачки

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