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

Обновлено: 05.07.2024

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

Досистемная загрузка

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

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

Загрузчик в ПЗУ

Сразу после включения оперативная память компьютера классической архитектуры девственно чиста. Для того чтобы начать работать, процессору необходима хоть какая-то программа. Эта программа автоматически загружается в память из постоянного запоминающего устройства , ПЗУ (или ROM, read-only memory), в которое она вписана раз и навсегда в неизменном виде 1 Современные компьютеры используют программируемые ПЗУ , содержимое которых можно изменять, однако такое изменение всегда считается ситуацией нештатной: например, запись новой версии содержимого ПЗУ , в которой исправлены ошибки (upgrade). . В специализированных компьютерах (например, в дешевых игровых приставках) все, что нужно пользователю, записывается именно на ПЗУ (часто сменное), и запуском программы оттуда загрузка заканчивается.

Обычно в компьютерах общего назначения программа из ПЗУ пользователю ничем полезна не бывает: она невелика, да и делает всегда одно и то же. Слегка изменить поведение программы из ПЗУ можно, оперируя данными, записанными в энергонезависимую память (иногда ее называют CMOS, иногда - NVRAM ). Объем энергонезависимой памяти очень невелик, а данные из нее сохраняются после выключения компьютера за счет автономного электропитания (как правило, от батарейки вроде часовой).

Что должна уметь эта начальная программа? Распознавать основные устройства, на которых может быть записана другая - нужная пользователю - программа, уметь загружать эту программу в память и передавать ей выполнение, а также поддерживать интерфейс, позволяющий менять настройки в NVRAM . Собственно, это даже не одна программа, а множество подпрограмм, занимающихся взаимодействием с разнообразными устройствами ввода-вывода - как с теми, на которых могут храниться программы (жесткие и гибкие диски, магнитные ленты и даже сетевые карты), так и теми, посредством которых можно общаться с пользователем (последовательные порты передачи данных - если есть возможность подключить консольный терминал, системная клавиатура и видеокарта - для простых персональных рабочих станций). Этот набор подпрограмм в ПЗУ обычно называется BIOS (basic input-output system).

BIOS. Сокращение от "Basic Input-Output System", набор подпрограмм в ПЗУ , предназначенных для простейшего низкоуровневого доступа к внешним устройствам компьютера. В современных ОС используется только в процессе начальной загрузки.

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

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

Чаще всего размер первичного дискового загрузчика - программы, которой передается управление после нулевого этапа, - весьма невелик. Это связано с требованиями универсальности подобного рода программ. Считывать данные с диска можно секторами, размер которых различается для разных типов дисковых устройств (от половины килобайта до восьми или даже больше). Кроме того, если считать один, первый, сектор диска можно всегда одним и тем же способом, то команды чтения нескольких секторов на разных устройствах могут выглядеть по-разному. Поэтому-то первичный загрузчик занимает обычно не более одного сектора в самом начале диска, в его загрузочном секторе .

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

Карта размещения. Представление области с необходимыми данными (например, вторичным загрузчиком или ядром системы) в виде списка секторов диска, которые она занимает.

В случае IBM-совместимого компьютера размер загрузочного сектора составляет всего 512 байтов, из которых далеко не все приходятся на программную область. Загрузочный сектор IBM PC, называемый MBR ( master boot record ), содержит также таблицу разбиения диска , структура которой описана в лекции 11. Понятно, что программа такого размера не может похвастаться разнообразием функций. Стандартный для многих систем загрузочный сектор может только считать таблицу разбиения диска , определить так называемый загрузочный раздел ( active partition ) и загрузить программу, расположенную в начале этого раздела . Для каждого типа диска может быть своя программная часть MBR , что позволяет считывать данные из любого места диска, сообразуясь с его типом и геометрией. Однако считывать можно все же не более одного сектора: неизвестно, для чего используются установленной на этом разделе операционной системой второй и последующие сектора. Выходит, что стандартная программная часть MBR - это некий предзагрузчик, который считывает и запускает настоящий первичный загрузчик из первого сектора загрузочного раздела .

Существуют версии предзагрузчика , предоставляющие пользователю возможность самостоятельно выбрать, с какого из разделов выполнять загрузку 2 Например, BOOTACTV из пакета pfdisk или стандартный для FreeBSD предзагрузчик boot0 , которые, в силу их досистемности, можно применять где угодно. . Это позволяет для каждой из установленных операционных систем хранить собственный первичный загрузчик в начале раздела и свободно выбирать среди них. В стандартной схеме загрузки Linux используется иной подход: простой первичный загрузчик записывается прямо в MBR , а функция выбора передается вторичному загрузчику .

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

Загрузчик ядра

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

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

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

Вторичный загрузчик может не только загружать ядро , но и настраивать его. Чаще всего используется механизм настройки ядра , похожий на командную строку shell: в роли команды выступает ядро , а в роли параметров - настройки ядра . Настройки ядра нужны для временного изменения его функциональности: например, чтобы выбрать другой графический режим виртуальных консолей , чтобы отключить поддержку дополнительных возможностей внешних устройств (если аппаратура их не поддерживает), чтобы передать самому ядру указания, как загружать систему и т.п.

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

Особенная ситуация возникает в случае, когда на компьютере установлено несколько операционных систем (например, если персональный компьютер используется также и для компьютерных игр, строго привязанных к определенной системе). В этом случае не стоит надеяться на "универсальность" вторичного загрузчика : даже если он способен различать множество файловых систем и несколько форматов загрузки ядер , невозможно знать их все. Однако если в загрузочном секторе раздела операционной системы записан первичный загрузчик , можно просто загрузить его, как если бы это произошло непосредственно после работы MBR . Таким образом, вторичный загрузчик может выступать в роли предзагрузчика, передавая управление "по цепочке" (chainloading). К сожалению, чем длиннее цепочка, тем выше вероятность ее порвать: можно, например, загрузить по цепочке MS-DOS, удалить с его помощью раздел Linux, содержавший вторичный загрузчик , а затем переразметить этот раздел, чем и привести компьютер в неработоспособное состояние.

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


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

Описание разработки

Цели урока:

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

Развивающая: научить применять на практике теоретические сведения о загрузке и настройке операционной системы.

Воспитывающая: формировать у обучающихся стремление к постоянному развитию профессиональных способностей и мастерства.

Материально-техническая база: Персональные компьютеры, мультимедийный видеопроектор, инструкционные карты.

Ход урока.

Организационная часть (5 минут).

Отчет старосты группы о количестве присутствующих и отсутствующих обучающихся.

Вводный инструктаж (40 минут).

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

Что такое операционная система? Какие операционные системы вам известны?

Какая операционная система установлена на вашем ПК?

Что такое графический интерфейс?

Что относят к объектам операционной системы?

Как создать папку? Как определить местонахождения папки, файла?

Инструктирование обучающихся по материалу урока:

Основными объектами ОС являются:

Без владения навыками манипулирования всеми этими объектами невозможно полноценно использовать возможности Операционной системы. Владение этими навыками позволит оперативно работать с объектами и выбрать наиболее оптимальный способ манипулирования в той или иной ситуации. Обмен данными в широком смысле – это передача информации от одного объекта другому.

В компьютерном мире до недавнего времени под обменом данными часто понимали процесс ввода и вывода данных между оперативной памятью и периферийными устройствами. С появлением концепции Windows под обменом данными стали понимать передачу данных от одного объекта к другому.

Такими объектами могут быть приложения, папки, документы, а передаваемыми данными – фрагменты документов, документы, файлы, папки, т.е. также объекты среды Windows. Так, в результате копирования файла или папки появляются их копии, а вследствие обмена данными между приложениями создаются составные документы, собранные из фрагментов, сформированных в разных приложениях.

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

Весь материал - в документе.


-75%


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

Содержание

Начальная загрузка

Большинство компьютерных систем могут исполнять только команды, находящиеся в оперативной памяти компьютера, в то время как современные операционные системы в большинстве случаев хранятся на жёстких дисках, загрузочных CDROM-ах, USB дисках или в локальной сети.

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

Решением данного парадокса является использование специальной маленькой компьютерной программы, называемой начальным загрузчиком, или

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

Начальные загрузчики должны соответствовать специфическим ограничениям, особенно это касается объёма. Например, на IBM PC загрузчик первого уровня должен помещаться в первых 446 байт главной загрузочной записи, оставив место для 64 байт таблицы разделов и 2 байта для сигнатуры AA55, необходимой для того, чтобы BIOS выявил сам начальный загрузчик.

История

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

Псевдо-ассемблерный код начального загрузчика может быть столь же простым, как и следующая последовательность инструкций:

Данный пример основан на начальном загрузчике одного из миникомпьютеров, выпущенного в 1970-х годах фирмой Nicolet Instrument Corporation.

Длина загрузчика второго уровня была такой, что последний байт загрузчика изменял команду, расположенную по адресу 6. Таким образом, после выполнения пункта 5 стартовал загрузчик второго уровня. Загрузчик второго уровня ожидал заправки в устройство считывания перфолент длиной перфоленты, содержащей операционную систему. Различием между загрузчиком первого уровня и загрузчиком второго уровня были проверки на ошибки считывания с перфоленты, которые часто встречались в то время, и, в частности, на используемых в данном случае телетайпах ASR-33.

Некоторые операционные системы, наиболее характерными их которых являются старые (до 1995 года) операционные системы компьютеров Apple Computer, настолько тесно связаны с аппаратным обеспечением компьютеров, что на данных компьютерах невозможно загрузить какую либо другую операционную систему. В данных случаях обычно разрабатывается начальный загрузчик, который работает как загрузчик стандартной ОС, а затем передает управление альтернативной операционной системе. Apple использовала данный способ для запуска A/UX версию Unix, а затем он использовался различными бесплатными операционными системами.

Устройства, инициализируемые BIOS

Загрузочное устройство — устройство, которое должно быть проинициализировано до загрузки операционной системы. К ним относятся устройства ввода (клавиатура, мышь), базовое устройство вывода (дисплей), и устройство, с которого будет произведена загрузка ОС — дисковод, жесткий диск, флэш-диск, PXE).

Загрузочная последовательность стандартного IBM-совместимого персонального компьютера


После включения персонального компьютера его процессор начинает работу. Первая выполняемая команда расположена по адресу FFFF0h и принадлежит пространству адресов BIOS.

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

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

Другие виды загрузочных последовательностей

Некоторые процессоры имеют другие режимы загрузки. Например, большинство цифровых сигнальных процессоров могут загрузиться в следующих режимах:

1. После нажатия кнопки включения или перезагрузки управление берет на себя Базовая система ввода/вывода (Basic Input/Output System - BIOS). BIOS - это программа, записанная в постоянной энергонезависимой памяти компьютера -ПЗУ (английская аббревиатура - CMOS). BIOS производит тестирование и инициализацию всех устройств и, если они прошли успешно, считывает MBR по абсолютному адресу. Затем помещает считанный код главного загрузчика в оперативную память и передает ему управление.

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

3. Получивший управление загрузчик операционной системы инициирует загрузку ядра ОС в память.

4. Запускается сама операционная система.
Как видно из вышесказанного, при загрузке компьютера используются абсолютные адреса, т.е. номера жестких дисков, цилиндров, головок, секторов, блоков. Выполнение этапов загрузки происходит по жестко заданной цепочке. Для успешной загрузки ОС необходимо, чтобы все участники цепочки находились на своих строго определенных местах: главный загрузчик и основная таблица разделов в загрузочном секторе диска, загрузчик(и) ОС и таблицы разделов в остальных разделах диска.

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

Вот такую вот важную тему мы сегодня с вами рассмотрели. Если статья была полезной для вас, то ставьте лайк и подписывайтесь на канал. Также предлагаю подписаться на наш Ютуб-канал ПиМ [ZveKa] .
Если вам понравилась статья, ознакомьтесь с другими моими работами на канале.

Читайте также: