Чтение онлайн

на главную - закладки

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

$ LOGFILE=my_log

$ if [ "$LOGGING" == "true" ]; then

> script my_script $LOGFILE; else

> my_script;

> fi

$

Вызов сценария изнутри него самого должен выглядеть так:

exec script $0 $LOGFILE

Начать знакомство с чужими сценариями вы можете с инициализационных файлов bash

/etc/bashrc
и
/etc/profile
. Команда «.» (точка) в оболочке sh и ее производных (bash, ksh), подобно команде source, означает чтение и выполнение команд из файла-аргумента этой команды в текущем процессе.

Глава 9

Управление процессами

9.1. Как загружается Linux

9.1.1. Начальная загрузка: LILO и GRUB

Общие механизмы

Как известно, первая программа, которая выполняется после включения компьютера, — это BIOS. Она находит загрузочное устройство, считывает в память его первый (нулевой) сектор и передает на него управление. В этом секторе находится MBR (Master Boot Record) — главная загрузочная запись размером в 512 байт, в которой помещаются:

♦ первичный загрузчик;

♦ таблица разделов диска (Partition Table) размером в 64 байта, описывающая четыре первичных раздела: номера их первого и последнего цилиндров, тип файловой системы и признак активности раздела;

♦ «волшебное число» (0xAA55), предназначенное для проверки, служит ли данный сектор загрузочным.

Формат MBR стандартен для всех операционных систем, а содержание области, отведенной под первичный загрузчик, может различаться. Этот загрузчик очень мал, поэтому перед ним стоит всего одна задача: найти на диске и считать в память код загрузчика следующего этапа, разворачивающего уже саму операционную систему, и передать ему управление.

В ОС Windows 9x первичный загрузчик передает управление на Boot Record — первый сектор того первичного раздела, который отмечен как активный (bootableтакой может быть только один). В более сложных системах из MBR запускается диспетчер загрузки (NTLoader для Windows NT, LILO и GRUB — для Linux), позволяющий выбрать вариант загрузки и даже загружаемую ОС. Такую гибкость диспетчеру обеспечивает возможность не ограничиваться тем объемом данных, который помещается в MBR, а читать необходимые данные из файлов на диске. Достигается эта гибкость ценой зависимости от файловой системы: существуют файловые системы (например, XFS и ReiserFS с включенным режимом оптимизации дискового пространства), с которыми ОС Linux может работать, но загружаться с них не может. Отдельный раздел

/boot
, о котором говорилось в п.1.2.2 в связи с «барьером 1024 цилиндра», необходим еще и поэтому: на нем должна быть создана файловая система ext2fs или ext3fs, а для всех остальных разделов файловые системы можно выбирать произвольно.

Загрузчик LILO

Стандартный загрузчик Linux — LILO (LInux LOader) — состоит из двух частей: первичного загрузчика LI и вторичного LO. LI располагается в MBR и только и умеет, что загружать LO, а тот уже передает управление ядру или вызывает другой первичный загрузчик (например, Windows 9x). LO находится в файле на диске (по умолчанию

/boot/boot.b
). О файловых системах LI не знает, поэтому карта размещения этого файла хранится в нем в виде «цилиндр/головка/сектор». Помещает ее туда утилита /sbin/lilo, которую нужно запускать после любого изменения LO или его конфигурационного файла
/etc/lilo.conf
.

У вторичного загрузчика LO есть собственная карта размещения файлов (по умолчанию

/boot/map
). По ней он ищет загружаемое ядро и образ виртуального диска, поэтому после любого изменения ядра или загружаемых модулей тоже обязательно запускать утилиту lilo.

Что такое виртуальный диск? Представьте себе загрузку Linux со SCSI-диска или другого устройства, драйвер которого не вкомпилирован в ядро, а подгружается в виде модуля. LILO сможет найти и прочитать с него файл образа ядра. Теперь ядру предстоит смонтировать корневую файловую систему. Чтобы сделать это, нужно подключить драйвер SCSI, а чтобы найти драйвер в

/lib/modules
, нужно смонтировать корневую файловую систему.

Похожая проблема возникает при первоначальной установке ОС Linux: для работы инсталлятора нужна файловая система со стандартными утилитами, а на диске ее еще нет. Обе проблемы решаются в Linux с помощью технологии initrd (INITial Ram Disk): вместе с ядром LILO загружает в память образ стартового диска, и ядро монтирует его как обычную файловую систему. В этой файловой системе находятся модули, необходимые для работы с нестандартными внешними устройствами и сетью, и утилиты для их подгрузки. Подключив модули, ядро отсоединяет виртуальный диск и монтирует настоящую корневую файловую систему.

Файл образа виртуального диска обычно называется

/boot/initrd-<версия_ядра>
. Если нестандартных устройств у вас нет или их драйверы встроены в ядро, то этот файл для загрузки не нужен.

Поведение LILO зависит от настроек в его конфигурационном файле

/etc/lilo.conf
. Ниже приведен пример такого файла. Символ #, как обычно, служит для комментариев.

Листинг 9.1. Примерный файл /etc/lilo.conf

# LILO version: 21.5

# Общий раздел

#

# использовать MBR первого жесткого диска первого

# контроллера IDE

boot=/dev/hda

#

# Карта LO

map=/boot/map

#

# Файл вторичного загрузчика

install=/boot/boot.b

#

# Режим для загрузочных дискет. У меня закомментирован.

# compact

#

# Режим VGA: normal - 80x25, ext - 80x50

vga=normal

#

# Раскладка клавиатуры

keytable=/boot/ru4.kit

# Диск поддерживает режим LBA (Large Block Access) —

# трансляцию

# физических адресов в логические так,

# чтобы число цилиндров не превышало

# понятных BIOS 1024. Другое значение этого

Поделиться:
Популярные книги

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Я до сих пор не царь. Книга XXVII

Дрейк Сириус
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор не царь. Книга XXVII

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Триптих

Фриш Макс
Поэзия:
драматургия
5.00
рейтинг книги
Триптих

Двойник Короля 5

Скабер Артемий
5. Двойник Короля
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Двойник Короля 5

Темная сторона. Том 1

Лисина Александра
9. Гибрид
Фантастика:
технофэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Темная сторона. Том 1

Патрульный

Поселягин Владимир Геннадьевич
2. Наемник
Фантастика:
боевая фантастика
космическая фантастика
8.42
рейтинг книги
Патрульный

Я Гордый часть 5

Машуков Тимур
5. Стальные яйца
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Я Гордый часть 5

Целитель

Первухин Андрей Евгеньевич
1. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель

Черный Маг Императора 4

Герда Александр
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 4

Призыватель нулевого ранга. Том 3

Дубов Дмитрий
3. Эпоха Гардара
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга. Том 3

Старая школа рул

Ромов Дмитрий
1. Второгодка
Фантастика:
альтернативная история
6.00
рейтинг книги
Старая школа рул

Дракон

Бубела Олег Николаевич
5. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.31
рейтинг книги
Дракон