Как загружается операционная система. Загрузчик операционных систем GRUB. Загрузка операционной системы

Для нормальной работы компьютера необходимо, чтобы основные модули опера­ционной системы находились в оперативной памяти. Поэтому после включения компьюте­ра организована автоматическая перезапись (загрузка) операционной системы с диска в оперативную память.

Программное обеспечение лучше всего работает, когда оно разделено на уровни, причем каждый уровень выполняет какую-то свою функцию и освобождает другие, более высокие, уровни от заботы о деталях в рамках своего уровня. Исходя из этой философии, операционная система MS-DOS построена по модульному принципу и состоит из следующих составных частей:

    Загрузчик операционной системы;

    Системные файлы IO.SYS и MSDOS.SYS ;

    Драйверы устройств.

    Командный процессор MS DOS (файл COMMAND.COM);

    Внешние команды MS DOS .

Кроме того, MS-DOS, как и все другие операционные системы для IBM PC , использует встроенное программное обеспечение компьютера, именуемое Базовой Системой Ввода-Вывода (BIOS).

Рассмотрим указанные программные модули в том порядке, в каком они загружаются в оперативную память после включения ПК.

Базовая система ввода-вывода - это самый низкий уровень управления, своего рода интерфейс между аппаратными средствами компьютера и программами. BIOS управляет непосредственно аппаратурой компьютера и избавляет другие программы от знания деталей того, как это делается. Программы BIOS записываются в ПЗУ компьютера фирмой-производителем и осуществляют:

    самотестирование компьютера при его включении (программа POST);

    инициализацию, т.е. настойку компьютерного оборудования (определяется конфигурация компьютера, устанавливаются необходимые значения некоторых регистров);

    выполнение обслуживающих функций и обработку аппаратных прерываний;

    загрузку операционной системы, записанной на магнитном диске (программа BOOT).

Сразу после включения компьютера начинает работать программа POST, проверяя работоспособность оперативной памяти и других компонентов компьютера. Затем BIOS производит инициализацию и пытается считать с диска в дисководе А: программу-загрузчик операционной системы, чтобы передать ей управление и продолжить процесс загрузки DOS. При отсутствии необходимых файлов или самого гибкого диска поиск продолжается на жестких дисках С:, D:, Е: и т.д. Если загрузочный (или, иными словами, системный) диск не найден, сообщение об этом выдается на монитор.

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

Загрузчик операционной системы - это очень короткая программа, находящаяся в первом секторе каждой дискеты и жесткого диска (винчестера) с операционной системой MS DOS. Функция этой программы заключается в считывании с загрузочного диска в оперативную память системных файлов DOS.

Системный файл IO.SYS - это расширение BIOS. Этот модуль настраивает операционную систему на конкретную конфигурацию вычислительного комплекса и позволяет подключать новые драйверы к нестандартным устройствам ввода-вывода,

Системный файл MSDOS.SYS - модуль обработки прерываний. В основном он обслуживает файловую систему и распоряжается распределением оперативной памяти.

После считывания загрузчиком системные файлы постоянно находятся в оперативной памяти компьютера, т.е являются резидентными программами.

При успешной загрузке системных файлов программный модуль IO.SYS устанавливает требуемую конфигурацию вычислительной системы. С этой целью он помещает в оперативную память компьютера драйверы внешних устройств.

Драйверы внешних устройств представляют собой отдельные программные файлы, обеспечивающие операции взаимодействия с внешними устройствами. Перечень подключаемых драйверов содержится в файле конфигурации CONFIG.SYS. .

Командный процессор завершает процесс загрузки операционной системы. После того, как управление компьютером передано командному процессору, последний автоматически начинает выполнение специального командного файла - AUTOEXEC.BAT (если такой файл присутствует в корневом каталоге загрузочного диска). В файле AUTOEXEC.BAT указывают команды и программы, выполняемые при каждом запуске компьютера. С помощью этого файла можно произвести настройку параметров операционной среды. Например, со­здать виртуальный диск, обеспечить смену режимов печати, загрузить вспомогательные программы и т.д.

Файлы с расширением.ВАТ играют при работе в системной среде особую роль. Они содержат совокупность ко­манд операционной системы или имен исполняемых файлов. После запуска файла с расширением.ВАТ все записанные в нем команды выполняются автоматически одна за другой.

Если файл AUTOEXEC.BAT не найден в корневом каталоге диска, с которого загружается операционная система, то MS DOS запрашивает у пользователя текущую дату и время.

После выполнения файла AUTOEXEC.BAT процесс загрузки операционной системы заканчивается. Командный процессор выдает приглашение, показывающее, что MS-DOS готова к приему команд. Приглашение обычно имеет вид А:\> или, например,С:\>, если загрузка производилась с жесткого диска.

Давным-давно, когда я был маленьким работал в институтской лаборатории на большом компьютере СМ-3 (что-то вроде знаменитой PDP-11), bootstrapping (загрузка) ЭВМ выглядела так. В фотосчитыватель заправлялась коротенькая бумажная перфолента с пробитой на ней программой начальной загрузки, запускался процесс считывания, а дальше … как повезет.

Дело в том, что бумажная ленточка постепенно изнашивалась, начинала плохо читаться, и ЭВМ могла с первого раза «не завестись». В этом случае процесс нужно было повторять, порой несколько раз, до победного конца. Когда ленточка окончательно выходила из строя и машина никак не хотела «оживать», приходилось временно вводить программу начальной загрузки вручную при помощи расположенных на передней панели переключателей. Тут, главное, было не торопиться и не делать ошибок.

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

Основные определения и этапы загрузки операционной системы

Включение компьютера, POST, BootMonitor

Начальный этап загрузки операционной системы после включения компьютера начинается в BIOS (Basic Input/Output System — базовая система ввода-вывода). В настройках BIOS мы указываем загрузочное устройство, или ряд загрузочных устройств в порядке их приоритета. Возможны различные варианты загрузки и их комбинации: с жесткого диска, CD/DVD – диска, USB-flash и другие.

Сразу после прохождения POST (Power-On Self-Test — самотестирование после включения) BIOS компьютера начнет поочередно перебирать указанные загрузочные устройства до тех пор, пока на одном из них не найдет подходящую специальную запись, в которой содержится информация о дальнейших действиях.

Загрузчик 1-го уровня. Master Boot Record

Master Boot Record — главная загрузочная запись, расположена в первых физических секторах загрузочных устройств хранения. Она содержит таблицу разделов (Partition Table) и исполняемый код.

Главной задачей программы, записанной в MBR, является поиск активного системного раздела диска и передача управления его загрузочному сектору. Таким образом, эту стадию можно назвать подготовительной, в силу того, что непосредственно загрузки самой ОС еще не происходит.

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

Загрузчик 2-го уровня. Partition Boot Sector

Следующим этапом загрузки компьютера является передача управления исполняемому коду, записанному в PBS (Partition Boot Sector — загрузочный сектор активного раздела). PBS расположен в первом секторе (секторах) соответствующего раздела диска. В коде PBS прописано имя файла загрузчика операционной системы, которому и передается управление на этом этапе.

Начальный этап загрузки операционной системы. Менеджер загрузки ОС

Первоначально в Linux загрузчиком являлся LILO (Linux Loader). В силу имевшихся в нем недостатков, главным из которых была неспособность понимать используемые в Linux файловые системы, позднее начал использоваться загрузчик GRUB (GRand Unified Bootloader) в котором недостатки LILO были исправлены.

Если речь идет о версиях Windows до Vista, например, Windows XP, то будет загружен Ntldr. Он, в свою очередь, считывает информацию из текстового файла Boot.ini, в котором записана информация об установленных операционных системах.

Загрузка ядра операционной системы

Завершающим этапом загрузки операционной системы является загрузка ядра ОС и передача ему управления.

Несколько лет назад в моей практике был такой забавный случай.

Меня попросили помочь одному человеку купить и привести в порядок компьютер для дома. Товарищ этот на тот момент времени только-только вышел на пенсию, а до этого работал в должности начальника и компьютер видел, по большей части, издалека, на столе у своей секретарши. После выхода на пенсию у него появилось время и желание компьютер освоить. Ну что, по-моему, замечательно. Компьютер мы ему подобрали недорогой, но добротный и с хорошим, по тем временам, монитором. Я поставил и настроил кое-какие программы, показал как ими пользоваться. Господин обзавелся книжкой из серии «Что-то там для чайников » и мы расстались абсолютно довольные друг другом.

Примерно через неделю мой подопечный позвонил мне по телефону и чуть не плача сообщил, что все пропало и компьютер больше не работает. Благо, запираться он не стал и честно рассказал, как было дело. А дело было так. Товарищ полез исследовать содержимое своего компьютера и нашел в корне диска С:\ несколько подозрительных и «ненужных», на его взгляд, файлов. Он решил освободить место и файлики эти попросту удалил. Думаю, что все уже догадались, что это были boot.ini, ntldr, ntdetect и др. Поправить ситуацию сложности не представляло, разве что пришлось ехать к нему еще раз.

К слову сказать, для того, чтобы получить проблемы с загрузкой Windows XP, можно было и ничего не стирать, а слегка «подправить», например, boot.ini.

Видимо Microsoft как то узнала об этом случае и в следующей версии своей ОС решила припрятать файлы загрузчика получше.

Особенности загрузки операционных систем Windows Vista / 7 / 8

В Windows Vista или Windows 7 / 8 диспетчер загрузки называется Bootmgr. Он читает список установленных операционных систем не из простого текстового файла, коим является boot.ini, а из системного хранилища BCD (Boot Configuration Data), доступ к которому осуществляется посредством специальной утилиты bcdedit.exe .

Но это еще не все. Откроем “Управление компьютером” –> “Управление дисками” >

Процесс стандартной инсталляции операционной системы Windows Vista / 7 / 8 создает в начале диска дополнительный раздел «Зарезервировано системой». Ему не присваивается буква диска, благодаря чему, если не сделать дополнительных шагов, и сам раздел и его содержимое будут скрыты от пользователя. Этот основной раздел имеет статус «Системный» и «Активный» и, следовательно, удалить его тоже нельзя.

В Windows 7 размер такого раздела составляет 100 МБ, из которых занято около 30 МБ, в Windows 8 – уже 350 МБ, причем занято из них 105 МБ. Такая разница объясняется тем, что в Windows 8 на этот раздел перенесена папка “Recovery”.

Посмотрим содержимое раздела «Зарезервировано системой». Для этого назначим ему букву диска, например, «W» в “Управление дисками”. Дополнительно откроем «Панель управления» –> «Параметры папок» и на вкладке «Вид» снимем галку с «Скрывать защищенные системные файлы» и поставим отметку на «Показывать скрытые файлы, папки и диски».

Если в системе установлен файловый менеджер FAR Manager, то для просмотра можно воспользоваться им и не заниматься настройкой видимости скрытых файлов.

Так выглядит содержимое раздела «Зарезервировано системой» в Windows 8 >

Как и ожидалось, в корне раздела мы видим загрузчик Bootmgr.

А так выглядит часть содержимого папки «Boot» >

В папке мы находим базу хранилища данных конфигурации загрузки BCD и сопутствующие ей папки с языковыми файлами и файлами шрифтов.

Для полноты картины осталось сказать о том, какой раздел называется загрузочным. Ответ уже показан на картинке с томами Windows 7. Очевидно, что это раздел, на котором находятся все основные файлы операционной системы.

Ну что же, запомнить названия разделов диска очень легко по принципу «всё наоборот» — на системном нет системы (операционной), но расположен загрузчик третьего уровня, на загрузочном как раз отсутствует загрузчик, но находится сама система. Естественно, эта «запоминалка» работает только тогда, когда есть несколько разделов. Если раздел один, то он может быть сразу системным, активным и загрузочным.

Главной задачей загрузчика 3-го уровня, в роли которого выступает, в зависимости от типа ОС, Bootmgr, Ntldr или GRUB, является чтение с загрузочного диска и загрузка ядра операционной системы. Кроме того, в случае множественной загрузки, когда на компьютере установлено несколько операционных систем, загрузчик 3-го уровня позволяет выбирать нужную при каждом запуске компьютера.

Классической ошибкой, которой Microsoft посвятила , является установка Windows XP после Windows Vista / 7 /8. Установщик Windows XP помечает свой раздел как активный, после чего, во время загрузки, MBR передает управление PBS этого раздела а он, в свою очередь, — Ntldr. Загрузчик Windows XP ничего не знает о более поздних версиях операционных систем Windows и их загрузка становится невозможной. Лечится достаточно легко, но неискушенного пользователя такая ситуация может поставить в тупик.

Добавить к этому практически нечего и можно переходить непосредственно к редактированию загрузочного меню. Начнем с .

9 комментариев

    • Спасибо за отзыв. В ближайшее время я планирую продолжить описание методов исправления ошибок загрузки на конкретных примерах. По опыту знаю, что пока читаешь все вроде как и понятно, а когда доходит до дела на практике начинаются сложности.

  1. Подскажите пожалуйста как именно лечить?:
    «Загрузчик Windows XP ничего не знает о более поздних версиях операционных систем Windows и их загрузка становится невозможной. Лечится достаточно легко, но неискушенного пользователя такая ситуация может поставить в тупик.»

    Поставил ХР после Vista на ноутбук — в итоге запуск системи доходит до начала загрузки ХР и все по новой перезагружаєтса, а если отключить (на время загрузки ОС) адаптер питания то все загружается нормально. Если загружать в безопасном режиме, то адаптер отключать не надо. Что ето может бить и как с етим бороться?

    ПОЖАЛУЙСТА ОТПИШИТЕ. ЗАРАНИЕ СПАСИБО. ИЗВИНИТЕ ЗА «ЛОМАННИЙ» РУССКИЙ.

    • По поводу влияния адаптера питания на загрузку ХР ничего не скажу — конкретных идей нет. По поводу восстановления загрузки Vista, если это актуально, то в конце поста есть ссылка на статью суппорта Microsoft (919529), посвященную непосредственно этой теме. Для восстановления потребуется установочный диск Vista. В командной строке с правами администратора нужно выполнить:
      Х:\boot\bootsect.exe /nt60 all
      где X: — буква оптического привода.
      А вот загрузку XP нужно будет добавлять вручную с помощью редактора . Набор команд будет таким:
      Bcdedit /create {ntldr} /d "Microsoft Windows XP"
      если данная команда завершиться неудачей, то:
      Bcdedit /set {ntldr} description "Microsoft Windows XP"
      далее:
      bcdedit /set {ntldr} device partition=X:
      Х: - буква диска раздела, на котором находятся файлы загрузчика XP, и путь к нему:
      bcdedit /set {ntldr} path \ntldr
      bcdedit /displayorder {ntldr} /addlast

    У меня был ноутбук, при загрузке и перезагрузке сразу включался виндовс,а сейчас я приобрел стационарный компьютер и загрузка идет в три этапа. Как сделать так,чтобы избавиться от этих этапов. Извините за безграмотное обозначение технических терминов.

    • Юрий! Боюсь, что тех сведений, которые Вы сообщили, явно недостаточно для каких-либо рекомендация. Какая Windows и о каких этапах идет речь? Уточните.

    Доброго здоровья, Александр.
    Как понять, предотвратить, а если повторится — правильно выйти из вот такой ситуации.
    Ноутбук. Установлена Windows-7. После включения и ввода пароля выдал «missing operating system» — то бишь «отсутствует операционная система». Выключения с повторным включением дали тот же результат. Запуститься удалось только вынув и спустя некоторое время вставив аккумулятор.
    Накануне, правда, имело место быть некорректное выключение: предварительно не были отключены флешка и модем. Раньше такая забывчивость тоже случалась, но подобного эффекта не было.
    Буду признателен за доступный старому «чайнику» ответ (мне лет на десять больше, чем господину в забавном случае, но познакомился с КОМПом примерно в том же возрасте).

    • Владимир, здравствуйте. С наступающими праздниками и всех благ.
      В данной ситуации Вы сделали все правильно — сбросили «залипший» глюк.
      Как поется в песенке: «Одна дождинка — еще не дождь. Одна снежинка — еще не снег». Возможно, что ничего подобного больше и не произойдет. Вот если с запуском начнутся регулярные проблемы, тогда надо будет разбираться. А вообще, Windows 7 и выше достаточно устойчивы к нештатным выключениям.
      Что делать? Вы сами ответили на свой вопрос — стараться штатно отключать устройства. И если есть возможность подключить по USB внешний диск, то я обязательно сделал бы (на самом деле делаю достаточно регулярно) бекап системы, например с помощью .

Операционная система обычно хранится во внешней памяти компьютера – на диске. При включении компьютера она считывается с дисковой памяти и размещается в оперативной памяти. Этот процесс называется загрузкой операционной системы.

Диск, на котором находятся файлы ОС и с которого производится ее загрузка, называется системным .
Программы могут выполняться, только если они находятся в оперативной памяти, поэтому файлы ОС необходимо загрузить в оперативную память.
После включения компьютера производится загрузка ОС с системного диска в оперативную память. Загрузка должна выполняться в соответствии с программой загрузки – загрузчика ОС.
Поэтапно загрузку ОС можно представить следующим образом:
В компьютере находится ПЗУ, содержащее программы тестирования компьютера и первого этапа загрузки ОС, которые называются BIOS (Basic Input/Output System – базовая система ввода-вывода). После включения компьютера эти программы начинают выполняться. Причем информация о ходе этого процесса высвечивается на экране дисплея. Сначала производится тестирование и настройка аппаратных средств, затем начинается загрузка ОС. На этом этапе процессор обращается к диску и ищет в 1 секторе диска наличие небольшой программы-загрузчика Master Boot .

Master Boot ищет на диске основной загрузчик Boot Sector , загружает его в память и передает ему управление. Boot sector (сектор начальной загрузки) – часть диска, зарезервированная для программы самозагрузки ОС. В этом секторе обычно содержится короткая программа на машинном языке, которая загружает ОС.
Далее основной загрузчик ищет остальные модули операционной системы и загружает их в оперативную память.
После окончания загрузки ОС управление передается командному процессору. В случае использования интерфейса командной строки на экране появляется приглашение системы, в противном случае загружается графический интерфейс.
В зависимости от вида ОС, процесс ее загрузки будет отличаться. В состав ОС обязательно входят файлы, отвечающие за процесс загрузки. Рассмотрим «работу» файлов в процессе загрузки Windows XP .

  1. Начальная фаза загрузки.
  2. Выбор системы.
  3. Определение «железа».
  4. Выбор конфигурации.

В начальной фазе NTLDR переключает процессор в защищенный режим. Затем загружает соответствующий драйвер файловой системы для работы с файлами любой файловой системы, поддерживаемой XP (FAT-16, FAT-32 и NTFS).

Если в корневой директории есть BOOT.INI, то его содержание загружается в память. Если в нем есть записи более чем об одной операционной системе, NTLDR останавливает работу — показывает меню с выбором и ожидает ввода от пользователя определенный период времени.

Если такого файла нет, то NTLDR продолжает загрузку с первого раздела, первого диска, обычно это C:\.
Если в процессе выбора пользователь выбрал Windows NT, 2000 или XP , то проверяется нажатие F8 и показ соответствующего меню с опциями загрузки.
После каждой удачной загрузки XP создает копию текущей комбинации драйверов и системных настроек известную как Last Known Good Configuration. Этот коллекцию можно использовать для загрузки в случае если некое новое устройство внесло разлад в работу операционной системы.

Если выбранная операционная система XP, то NTLDR находит и загружает DOS программу NTDETECT.COM для определения «железа», установленного в компьютере. NTDETECT.COM строит список компонентов, который потом используется в ключе HARDWARE ветки HKEY_LOCAL_MACHINE реестра.

Если компьютер имеет более одного профиля оборудования программа останавливается с меню выбора конфигурации. После выбора конфигурации NTLDR начинает загрузку ядра XP (NTOSKRNL.EXE). В процессе загрузки ядра (но перед инициализацией) NTLDR остается главным в управлении компьютером. Экран очищается и внизу показывается анимация из белых прямоугольников. Кроме ядра загружается и слой Hardware Abstraction Layer (HAL.DLL), для того чтобы ядро могло абстрагироваться от «железа». Оба файла находятся в директории System32.

NTLDR загружает драйвера устройств, помеченные как загрузочные. Загрузив их, NTLDR передает управление компьютером дальше. Каждый драйвер имеет ключ в HKEY_LOCAL_MACHINE\SYSTEM\Services. Если значение Start равно SERVICE_BOOT_START, то устройство считается загрузочным. Для каждого такого устройства на экране печатается точка.

NTOSKRNL в процессе загрузки проходит через две фазы — так называемую фазу 0 и фазу 1. Первая фаза инициализирует лишь ту часть микроядра и исполнительные подсистемы, которая требуется для работы основных служб и продолжения загрузки. Фаза 1 начинается когда HAL подготавливает систему для обработки прерываний устройств. Если на компьютере установлено более одного процессора, они инициализируются. Все исполнительные подсистемы реинициализируются в следующем порядке: Object Manager, Executive, Microkernel, Security Reference Monitor, Memory Manager, Cache Manager, LPCS, I/O Manager, Process Manager.

Инициализация Менеджера ввода/Вывода начинает процесс загрузки всех системных драйверов. С того момента где остановился NTLDR загружаются драйвера по приоритету. Сбой в загрузке драйвера может заставить XP перезагрузиться и попытаться восстановить Last Known Good Configuration. Последняя задача фазы 1 инициализации ядра — запуск Session Manager Subsystem (SMSS). Подсистема ответственна за создание пользовательского окружения, обеспечивающего интерфейс NT. SMSS работает в пользовательском режиме, но в отличии от других приложений SMSS считается доверенной частью операционной системы и «родным» приложением (использует только исполнительные функции), что позволяет ей запустить графическую подсистему и login. SMSS загружает win32k.sys — графическую подсистему. Драйвер переключает компьютер в графический режим, SMSS стартует все сервисы, которые должны автоматически запускаться при старте. Если все устройства и сервисы стартовали удачно, процесс загрузки считается удачным и создается Last Known Good Configuration.

Процесс загрузки не считается завершенным до тех пор, пока пользователь не залогинился в систему. Процесс инициализируется файлом WINLOGON.EXE, запускаемым как сервис и поддерживается Local Security Authority (LSASS.EXE), который и показывает диалог входа в систему. Это диалоговое окно показывается примерно тогда, когда Services Subsystem стартует сетевую службу.




Top