- Этапы запуска системы
- Что такое MBR
- Что такое загрузчики, какие они бывают и что позволяют делать
- rc сценарии загрузки
- начальное монтирование файловых систем при загрузке системы
- Проблемы загрузки
- Этапы выключения системы
- Два способа выключения системы.
1. Запускаем Linux: этапы большого пути)
Ясно что первый этап он очень сложен нажать на кнопочку power у блока машины:). После этого начинает выполняться BIOS(Basic Input Output System ) это как бы встроенная ОС компьютера, которая должна его подготовить к работе с настоящей ОС. BIOS производит проверку оборудования (т.н. POST ),активирует жесткий диск, распознает другое базовое как результат вы слышите различные звуки из спикера. Если все пройдет успешно, то BIOS насчет считывать первые 512 байт с жесткого диска, т.н. MBR(Main Boot Record Главную Загрузочную Запись ). Она должна иметь особую структуру и передать управление загрузчику. Для Linux это либо LILO либо GRUB. Они позволяют выбрать необходимую операционную систему и ядро Linux для загрузки. Рассматривать в 1 части будем GRUB как наиболее распространенный из загрузчиков, итак что же он позволяет?
- Выбирать какую операционную систему из установленных загрузить, выбирать необходимую версию ядра
- Передавать параметры ядру перед его загрузкой
- Производить операции по просмотру дисковых разделов и т.д. из командной строки
1.1 Загрузка ядра и параметры загрузки
загрузчик и ядро Linux выполняет много дел. Что ж кратко пробежимся по параметрам строки:
Возьмем для примера эту:
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686
root =/dev/sda1 ro qeit
initrd /boot/initrd.img 2.6.26-2-386
Первая строчка говорит загрузчику на каком устройстве размещено устройство
Вторая, где ядро
Третья куда монтировать. параметр qeit задает ожидание
Четвертая показывает, где находится сценарий загрузки.
Что ж с этим я думаю понятно
1.2 От скрипта Init до DE(Desktop Envirement )
Если загрузка ядра корректна, то ядро начнет инициализацию своих подсистем и поиск оборудования. Каждое действие ядра сопровождается выводом сообщений и они сохраняются в лог. Если поиск оборудования прошел успешно, то следующий этап это:
а) Старт оболочки командной строки (обычно bash). Правда это не первый процесс запускаемой системой, родителем всех процессов в системе является скрипт init. Если все пройдет успешно, то вы увидите запрос на авторизацию в системе
б) Если в системе предустановлена графическая оболочка, то после активации всех систем ядра произойдет запуск X-server это базовая графическая система в *Nix системах
И уже, исходя из файлов конфигурации X будет запущена та или иная графическая среда рабочего стола.
Вот после этого можно считать что загрузка завершена. Итак если обобщить:
2. Выключаем Linux
Когда система выключается перед ней возникает несколько задач:
Отсюда два вывода:
1. Всегда выключайте компьютер через средства операционной системы
2. Обзаводитесь такими приборами как ИБП (источники бесперебойного питания) они дадут вам время для сохранения данных и корректного завершения работы
При некорректном завершении операций ввода/вывода может сложится ситуация полного разрушения файловой системы и это не вина Linux такая ситуация характерна для любой операционной системы. К слову, журналируемые файловые системы типа Ext4/3, Raiser и другие предоставляют инструменты для максимального снижения развития ситуации по описанному сценарию. В штатном режиме работы операционная система в обязательном порядке гарантирует сброс данных диск из буферов(либо при полном их заполнении, либо при выключении).На самом деле то, что применяется такая политика записи данных имеет свои преимущества, а именно: уменьшение обращений к жесткому диску что повышает скорость работы системы. При выключении системы ядро закрывает открытые файлы, завершает все процессы, потоки, закрывает все сетевые соединения. После этого ядро останавливает различные подсистемы управления оборудованием. Ну и в конце концов ядро на современных машинах может управлять электропитанием и следовательно может программно выключить машину.
Как мы можем выключить машину?
1 способ через графический интерфейс и здесь никаких комментариев не требуется.
2 способ через командную строку, так как выключение компьютера это процесс глобальный, то вам потребуются права суперпользователя(root) значит вам придется запустить команду выключения из под sudo, а сама команда выключения это shutdown. Для этой команды существуют различные ключи и параметры, нас же интересует следующие: -h это указание к останову системы, указать время мы можем либо словесно(например чтобы немедленно выключить машину: sudo shutdown -h now) или в форме указания времени до выключения (sudo shutdown -h +30 это приведет к выключению системы через 30 мин ) или указав точное время, например(shutdown -h 18:30).
На этом завершим краткое введение в тему старта/останова Linux, а во второй части изучим все эти процессы детальней.
Вот после этого можно считать что загрузка завершена. Итак если обобщить:
- Запуск BIOS и самотестирование оборудования
- Поиск MBR и передача управления программе, записанной в MBR
- Запуск загрузчика, выбор ядра при необходимости корректировка параметров загрузки
- Определение оборудования, загрузка необходимых модулей(выгрузка если в течении 10 сек не использованы), запуск сценариев инициализации системы
- Запрос авторизации и после успеха штатный режим работы.
2. Выключаем Linux
Когда система выключается перед ней возникает несколько задач:
- Остановка всех процессов,выполняющихся в системе
- Сброс на диск данных из буферов ввода/вывода
- Закрытие всех объектов ядра и освобождение памяти
- Останов аппаратуры
- Отключение электропитания через ACPI
Отсюда два вывода:
1. Всегда выключайте компьютер через средства операционной системы
2. Обзаводитесь такими приборами как ИБП (источники бесперебойного питания) они дадут вам время для сохранения данных и корректного завершения работы
При некорректном завершении операций ввода/вывода может сложится ситуация полного разрушения файловой системы и это не вина Linux такая ситуация характерна для любой операционной системы. К слову, журналируемые файловые системы типа Ext4/3, Raiser и другие предоставляют инструменты для максимального снижения развития ситуации по описанному сценарию. В штатном режиме работы операционная система в обязательном порядке гарантирует сброс данных диск из буферов(либо при полном их заполнении, либо при выключении).На самом деле то, что применяется такая политика записи данных имеет свои преимущества, а именно: уменьшение обращений к жесткому диску что повышает скорость работы системы. При выключении системы ядро закрывает открытые файлы, завершает все процессы, потоки, закрывает все сетевые соединения. После этого ядро останавливает различные подсистемы управления оборудованием. Ну и в конце концов ядро на современных машинах может управлять электропитанием и следовательно может программно выключить машину.
Как мы можем выключить машину?
1 способ через графический интерфейс и здесь никаких комментариев не требуется.
2 способ через командную строку, так как выключение компьютера это процесс глобальный, то вам потребуются права суперпользователя(root) значит вам придется запустить команду выключения из под sudo, а сама команда выключения это shutdown. Для этой команды существуют различные ключи и параметры, нас же интересует следующие: -h это указание к останову системы, указать время мы можем либо словесно(например чтобы немедленно выключить машину: sudo shutdown -h now) или в форме указания времени до выключения (sudo shutdown -h +30 это приведет к выключению системы через 30 мин ) или указав точное время, например(shutdown -h 18:30).
На этом завершим краткое введение в тему старта/останова Linux, а во второй части изучим все эти процессы детальней.