Читаем Linux: Полное руководство полностью

Вывожу строку на терминал

$ exec > log

$ echo "Вывожу строку в файл"

$ echo "И эту в файл"

$ exec > /dev/pts/2

$ echo "А эту снова на терминал "

А эту снова на терминал

$

Второй способ заключается в использовании команды script, которая копирует в файл весь сеанс работы в текстовой консоли: ввод пользователя и вывод команд. Это должен быть в полном смысле слова сеанс работы в командной строке: полноэкранные команды, такие, как редактор vi и даже man, оставляют в файле протокола мусор. Если вы запускаете команду script вручную, то остановить протоколирование можно командой exit.

$ 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, нужно смонтировать корневую файловую систему.

Перейти на страницу:

Все книги серии Полное руководство

Похожие книги

Полное руководство по Microsoft Windows XP
Полное руководство по Microsoft Windows XP

В книге известного американского автора описывается среда ОС Windows XP и принципы ее функционирования, приведен сравнительный анализ Windows XP с предшествующими версиями операционной системы Windows. Рассматриваются вопросы применения и модификации нового интерфейса с целью получения прямого доступа ко всем функциям Windows XP обсуждаются варианты подключения к компьютерным сетям. Несколько разделов посвящены работе с реестром и конфигурационными файлами, мультимедийным функциям и разнообразным системным службам, а также методам решения проблем с программным обеспечением и оборудованием. Особое внимание уделено обеспечению безопасности операционной системы.Издание адресовано пользователям и сетевым администраторам, желающим активно применять возможности операционной системы Windows XP (в том числе и недокументированные).

Питер Нортон , Джон Поль Мюллер

ОС и Сети, интернет / ОС и Сети / Книги по IT
Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет