2

Курсы Linux (Лекция 2) — Загрузка системы

В этой лекции будет идти речь о том, как и что происходит при загрузке операционной системы Linux от момента нажатия на кнопку включения системного блока до приглашения ввести пароль, чтобы зарегистрироваться в системе. Итак, вы нажимаете на кнопку включения на процессор подается специальный сигнал, по которому он начинает выполнять программу расположенную в микросхеме БИОС вашей материнской платы.

Программа проводит начальную настройку (инициализацию) устройств компьютера (материнская плата, процессор, память, жесткий диск, видео-подсистема и т.д.) и выясняет с какого устройства будет продолжена загрузка. Как правило таким устройством является жесткий диск (”винчестер”) на котором записана загрузочная запись - MBR (Master Boot Record). Эта запись расположена на самом первом секторе жесткого диска и занимает размер всего 512 байт. В эти 512 байт входит начальный загрузчик (446 байт), таблица разделов диска (64 байта) и так называемый специальный код в 511-м и 512-м байтах, который указывает на, то, что диск является загрузочным (содержит MBR). Как раз с помощью проверки этих двух последних байт БИОС и определяет является ли диск загрузочным или нет.

На рисунке 1 показано более наглядно.

Рисунок 1

Задача начального загрузчика определить активный раздел диска и загрузить в память загрузчик ядра операционной системы.  Такими загрузчиками в Linux являются LILO (сокращенно от Linux Loader) и GRUB(GRand Unified Bootloader). Загрузчик GRUB — является более новым загрузчиком с большими возможностями и используется в большинстве современных дистибутивов.  LILO, который долгое время был стандартом, потихоньку сдает позиции, уступая место более современному GRUB. Основное преимущество GRUB в том, что он умеет обращаться к файловой системе Linux. (Подробнее о GRUB рекомендую читать на официальном сайтеhttp://www.gnu.org/software/grub/)

Задача загрузчика загрузить в память ядро операционной системы и передать ему управление. Ядро Linuxрасположено в файле /boot и имеет название вида vmlinuz-2.6.24, где цифры обозначают номер (версию) ядра. Размер файла колеблется примерно от 400 Кб до 2 Мб. Ядро на диске находится в сжатом виде, поэтому происходит еще такая процедура как распаковка ядра и уже потом оно записывается в область оперативной памяти, которая недоступна пользовательским процессам. Ядро после того как записано в память берет управление в “свои руки” и проводит повторную инициализацию оборудования. Дело в том, что Linux в своей работе не использует функции БИОС, а “общается” с железом напрямую. Windows умеет работать с железом через функции БИОС. Чтобы не вдаваться в подробности объясню на примере. На современных материнских платах есть возможность создавать рейды. Например, объединить два жестких диска в рейд 1 (зеркало). Это реализуется как раз с помощью БИОС. Так вот Windows будет работать с таким рейдом, так как умеет обращаться к БИОС. Linux, тоже сможет обращаться с рейдом, но только если поддержка такого рейда будет реализована в ядре.

Загрузчик может передавать ядру некоторые параметры, которые влияют на загрузку системы. Например, если передать ядру параметр single, то Linux загрузится в однопользовательском режиме (можно грубо сравнить с безопасным режимом Windows XP). Параметры передаваемые ядру прописаны в конфигурационном файле. ДляGRUB это файл /boot/grub/menu.lst. Как работать с GRUB пока останавливаться не будем, вернемся к этому вопросу в дальнейшем если будет время.

Дальше ядро загружает несколько системных процессов: менеджер памяти и менеджер процессов. И только потом загружается первый пользовательский процесс - init. Процесс init является основным (родительским) процессом с идентификатором 1. Это первый процесс к которому имеет доступ системный администратор. Система Linux работает до тех пор пока “жив” процесс init . Получив управление, init выполняет алгоритм описанный в конфигурационном файле /etc/inittab . В результате работы init запускаются скрипты собранные  в директории /etc/init.d/ .

Далее запускаются процессы, которые позволяют зарегистрироваться в системе. Эти процессы называютсяgetty (сокращение от get teletype). Каждый процесс getty связывается с виртуальной (и не только виртуальной) консолью, которая отображается при помощи видеоадаптера и позволяет пользователю работать с этой консолью после того как пользователь зарегистрируется в системе. Это так называемый текстовый или алфавитно-цифровой режим работы с системой. Таких процессов запускается по умолчанию шесть штук.

Параллельно загружается служба - X Server для работы в графическом режиме. Кроме  X Server в графическом режиме запускается программа которая называется дисплей-менеджер. Наиболее популярные дисплей-менеджеры это xdm, gdm, kdm. Основная задача этих программ это регистрация пользователя в системе, только уже в графическом режиме.

Когда мы видим на экране приглашение в текстовом или графическом режиме, можно считать, что система уже почти загрузилась. Далее нужно ввести имя пользователя и пароль. Обращаю внимание на то, что в текстовом режиме при вводе пароля информация не отображается на экране (то есть нет ни “звездочек” ни кружочков). Когда вы прошли регистрацию в текстовом режиме загружается так называемая программа-оболочка (shell), в которой пользователи и работают далее. Об оболочке (еще ее называют командным интерпретатором) мы еще будем говорить, пока только скажу, что оболочек есть несколько видов - csh, tcsh, zsh, bash, но мы будем работать в bash.

В завершение хочу сказать о выборе дистрибутива. Для этого курса совершенно неважно какой дистрибутив вы выберете для того, чтобы изучать Linux. Будет даже хорошо, если у вас будет отличный дистрибутив от того, который мы используем на занятиях. Для новичков, рекомендация купить отдельный жесткий диск на 10, 20 Гб и установить туда систему, если вы боитесь, что можете навредить данным на основном винчестере.

Несколько слов добавлю от себя. На курсах мы пока используем дистрибутив Knoppix (основанный на дистрибутиве Debian), дома и на работе я работаю в Ubuntu. Если у вас нет дистрибутива, то рекомендую зайти на сайт http://linuxiso.com.ua , где представлены все популярные дистрибутивы на сегодняшний день. Если у вас хороший канал можете скачать iso-образ и записать его на компакт-диск, если нет можете заказать диск по почте.

Материалом любезно поделился Кузьменко Игорь http://igorka.com.ua

Состоит в: Обучение Тэги: , , , , ,
 
Подпишись на обновления сайта по Linuxfan RSSRSS, Linuxfan по EmailEmail или twitter!

2 Коментариев к "Курсы Linux (Лекция 2) — Загрузка системы"

  1. Владислав:

    У меня вопрос. Можно ли копировать ваши статьи на другом форуме?

Написать ответ

Оставить коментарий

© 2013 LinuxFan. При копировании материала ссылка на Linuxfan.com.ua обязательна!