Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
GNU GRUB, популярный загрузчик с открытым исходным кодом

Загрузчик это программа, которая отвечает за загрузку компьютера.

Когда компьютер выключен, его программное обеспечение - «включая операционные системы, код приложений и данные» - остается в энергонезависимой памяти . Когда компьютер включен, он обычно не имеет операционной системы или ее загрузчика в оперативной памяти (RAM). Компьютер сначала выполняет относительно небольшую программу, хранящуюся в постоянном запоминающем устройстве (ПЗУ), вместе с небольшим объемом необходимых данных, чтобы получить доступ к энергонезависимому устройству или устройствам, с которых программы и данные операционной системы могут быть загружены в ОЗУ.

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

Некоторые компьютерные системы после получения сигнала загрузки от человека-оператора или периферийного устройства могут загружать очень небольшое количество фиксированных инструкций в память в определенном месте, инициализировать по крайней мере один ЦП, а затем направлять ЦП на инструкции и запускать их исполнение. Эти инструкции обычно запускают операцию ввода с некоторого периферийного устройства (которое может переключаться оператором). Другие системы могут отправлять аппаратные команды непосредственно на периферийные устройства или контроллеры ввода-вывода, которые вызывают выполнение чрезвычайно простой операции ввода (например, «чтение нулевого сектора системного устройства в память, начиная с ячейки 1000»), эффективно загружая небольшой количество инструкций загрузчика в памяти; затем сигнал завершения от устройства ввода-вывода может использоваться для начала выполнения инструкций ЦП.

Меньшие компьютеры часто используют менее гибкие, но более автоматические механизмы загрузчика, чтобы гарантировать, что компьютер запускается быстро и с заранее определенной конфигурацией программного обеспечения. Во многих настольных компьютеров, например, процесс самонастройки начинается с исполняющей программного обеспечения процессора , содержащиеся в ПЗУ (например, BIOS из IBM PC или совместимый с IBM PC ) в заранее определенном адресе (некоторые процессоры, включая Intel серии x86 являются предназначена для запуска этого программного обеспечения после сброса без посторонней помощи). Это программное обеспечение содержит элементарные функции для поиска устройств, которые могут участвовать в загрузке, и загрузки небольшой программы из специального раздела (чаще всего загрузочного сектора).) наиболее многообещающего устройства, обычно начиная с фиксированной точки входа, такой как начало сектора.

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

Загрузчики могут сталкиваться со специфическими ограничениями, особенно по размеру; например, на IBM PC и совместимых, загрузочный сектор должен , как правило , работают только 32 КБ [1] [2] (позднее ослаблены до 64 КБ [3] ) системной памяти и использовать только инструкции , поддерживаемые оригинал 8088 / 8086 процессоры. Первый этап загрузки PC погрузчиков (FSBL, загрузчик первого этапа) , расположенные на жестких дисках и съемных дисках должен вписываться в первые 446 байт в Master Boot Record , чтобы оставить место для 64 байт по умолчанию таблицы разделов с четыре записи раздела и двухбайтовая подпись загрузки, который BIOS требует для правильного загрузчика - или даже меньше, когда дополнительные функции, такие как более четырех записей разделов (до 16 по 16 байтов каждая), подпись диска (6 байтов), временная метка диска (6 байтов), Расширенное активное раздела (18 байт) или специальные мульти-загрузочные погрузчики должны поддерживаться, а в некоторых средах. В загрузочных записях томов с гибких и супертекстовых дисков до 59 байтов занято для расширенного блока параметров BIOS на томах FAT12 и FAT16, начиная с DOS 4.0, тогда как FAT32EBPB, представленный в DOS 7.1, требует даже 87 байтов, оставляя только 423 байта для загрузчика, если предположить, что размер сектора равен 512 байтам. Поэтому загрузочные сектора Microsoft традиционно накладывали определенные ограничения на процессе загрузки, например, файл загрузка должен находиться в фиксированном положении в корневом каталоге файловой системы и хранится в последовательных секторах, [4] [5] условий позаботились of SYSкомандой и немного ослаблен в более поздних версиях DOS. [5] [nb 1] Загрузчик смог загрузить первые три сектора файла в память, которая, как оказалось, содержала другой встроенный загрузчик, способный загрузить оставшуюся часть файла в память. [5] Когда Microsoft добавила LBAи поддержку FAT32, они даже переключились на загрузчик, охватывающий более двух физических секторов и использующий 386 инструкций по соображениям размера. В то же время другим производителям удалось втиснуть гораздо больше функций в один загрузочный сектор, не ослабляя исходных ограничений только на минимальную доступную память (32 КБ) и поддержку процессора (8088/8086). [nb 2] Например, загрузочные секторы DR-DOS могут найти загрузочный файл в файловой системе FAT12, FAT16 и FAT32 и загрузить его в память в целом через CHS или LBA, даже если файл не хранится в фиксированное место и в последовательных секторах. [6] [1] [7] [8] [9] [nb 3] [nb 2]

BIOS (в системах x86) и UEFI не только загружают операционную систему с энергонезависимого устройства, они также инициализируют системное оборудование для операционной системы.

Примеры загрузчиков первого уровня включают BIOS , coreboot , Libreboot и Das U-Boot .

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

Загрузчики второго уровня, такие как GNU GRUB , rEFInd , BOOTMGR , Syslinux , NTLDR или BootX , сами по себе не являются операционными системами, но могут правильно загружать операционную систему и передавать ей выполнение; впоследствии операционная система инициализируется и может загружать дополнительные драйверы устройств . Загрузчику второго уровня не нужны драйверы для собственной работы, но вместо этого он может использовать общие методы доступа к хранилищу, предоставляемые системной прошивкой, например BIOS или Open Firmware , хотя обычно с ограниченной функциональностью оборудования и более низкой производительностью. [10]

Многие загрузчики (такие как GNU GRUB, rEFInd, Windows BOOTMGR, Syslinux и NTLDR в Windows NT / 2000 / XP) могут быть настроены так, чтобы предоставить пользователю несколько вариантов загрузки. Эти варианты могут включать разные операционные системы (для двойной или множественной загрузки с разных разделов или дисков), разные версии одной и той же операционной системы (в случае, если в новой версии возникают неожиданные проблемы), разные варианты загрузки операционной системы (например, загрузка в rescue или безопасный режим ), а также некоторые автономные программы, которые могут работать без операционной системы, такие как тестеры памяти (например, memtest86 + ), базовая оболочка (как в GNU GRUB) или даже игры (см. Список игр PC Booter ). [11]Некоторые загрузчики могут также загружать другие загрузчики; например, GRUB загружает BOOTMGR вместо прямой загрузки Windows. Обычно выбор по умолчанию предварительно выбирается с временной задержкой, в течение которой пользователь может нажать клавишу, чтобы изменить выбор; после этой задержки автоматически выполняется выбор по умолчанию, поэтому нормальная загрузка может происходить без взаимодействия.

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

Многие встроенные системы должны загружаться немедленно. Например, как правило, недопустимо подождать минуту для запуска цифрового телевидения или GPS-навигатора . Следовательно, такие устройства имеют программные системы в ПЗУ или флэш-памяти, поэтому устройство может сразу начать функционировать; требуется небольшая загрузка или ее отсутствие, поскольку загрузка может быть предварительно вычислена и сохранена в ПЗУ при создании устройства.

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

Загрузка по сети [ править ]

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

Как и в случае загрузчика второго уровня, загрузка по сети начинается с использования общих методов доступа к сети, предоставляемых загрузочным ПЗУ сетевого интерфейса, которое обычно содержит образ среды предварительной загрузки (PXE). Никаких драйверов не требуется, но функциональность системы ограничена до тех пор, пока ядро ​​операционной системы и драйверы не будут перенесены и запущены. В результате, как только загрузка из ПЗУ завершена, вполне возможно выполнить загрузку по сети в операционную систему, которая сама не имеет возможности использовать сетевой интерфейс.

См. Также [ править ]

  • Сравнение загрузчиков

Заметки [ править ]

  1. ^ Вруководстве для ПК DOS 5.0 неверно указано, что системные файлы больше не должны быть непрерывными. Однако для того, чтобы процесс загрузки работал, системные файлы по-прежнему должны занимать первые две записи каталога, а первые три сектора IBMBIO.COM по- прежнему должны храниться непрерывно. SYS продолжает заботиться об этих требованиях.
  2. ^ a b В качестве примера, хотя расширенная функциональность MBR и загрузочных секторов DR-DOS по сравнению с их аналогами MS-DOS / PC DOS все еще может быть достигнута с использованием обычных методов оптимизации кода до версии 7.05 , для добавления LBA , FAT32 и Для поддержки секторов 7.07 LOADER пришлось прибегнуть к самомодифицирующемуся коду , программированию на уровне кода операции , контролируемому использованию побочных эффектов , многоуровневому наложению данных / кода и алгоритмической обработке.методы сворачивания , чтобы сжать все в один физический сектор, поскольку это было требованием для обратной и кросс-совместимости с другими операционными системами в сценариях с несколькими загрузками и цепной загрузкой .
  3. ^ Есть одно исключение из правила, что DR-DOS VBR загружает весьфайл IBMBIO.COM в память: если файл IBMBIO.COM больше примерно 29 КБ, попытка загрузить весь файл в память приведет к загрузке загрузчик для перезаписи в стеке и переселен диска Таблица параметров (ЦСТ / FDPB). Следовательно, DR-DOS 7.07VBR загрузит в память только первые 29 КБ файла, полагаясь на другой загрузчик, встроенный в первую часть IBMBIO.COM, чтобы проверить это условие и при необходимости загрузить оставшуюся часть файла в память. Это не вызывает проблем с совместимостью, поскольку размер IBMBIO.COM никогда не превышал этот предел в предыдущих версиях без этого загрузчика. В сочетании со структурой с двумя входами это также позволяет загружать систему с помощью PC DOS VBR, который загружает в память только первые три сектора файла.

Ссылки [ править ]

  1. ^ а б Пол, Матиас Р. (1997-10-02) [1997-09-29]. «Caldera OpenDOS 7.01 / 7.02 Update Alpha 3 IBMBIO.COM - README.TXT и BOOT.TXT - Краткое описание того, как загружается OpenDOS» . Архивировано из оригинала на 2003-10-04 . Проверено 29 марта 2009 . [1]
  2. Сакамото, Масахико (13 мая 2010 г.). «Почему BIOS загружает MBR в 7C00h в x86?» . Glamenv-Septzen.net . Проверено 22 августа 2012 .
  3. ^ Compaq Computer Corporation; Phoenix Technologies Ltd; Корпорация Intel (11 января 1996 г.). «Спецификация загрузки BIOS 1.01» (PDF) . Проверено 21 декабря 2017 .
  4. ^ Збиковски, Марк ; Аллен, Пол ; Баллмер, Стив ; Борман, Рувим; Борман, Роб; Батлер, Джон; Кэрролл, Чак; Чемберлен, Марк; Челл, Дэвид; Коли, Майк; Кортни, Майк; Драйфус, Майк; Дункан, Рэйчел; Экхардт, Курт; Эванс, Эрик; Фермер, Рик; Гейтс, Билл ; Гири, Майкл; Гриффин, Боб; Хогарт, Дуг; Джонсон, Джеймс У .; Кермаани, Камель; Король, Адриан; Кох, Рид; Ландовски, Джеймс; Ларсон, Крис; Леннон, Томас; Липки, Дэн; Макдональд, Марк ; МакКинни, Брюс; Мартин, Паскаль; Мазерс, Эстель; Мэтьюз, Боб; Мелин, Дэвид; Mergentime, Чарльз; Невин, Рэнди; Ньюэлл, Дэн; Ньюэлл, Тани; Норрис, Дэвид; О'Лири, Майк; О'Рир, Боб ; Олссон, Майк; Остерман, Ларри; Остлинг, Ридж; Пай, Сунил;Патерсон, Тим ; Перес, Гэри; Питерс, Крис; Петцольд, Чарльз ; Поллок, Джон; Рейнольдс, Аарон ; Рубин, Дэррил; Райан, Ральф; Шульмейстер, Карл; Шах, Раджен; Шоу, Барри; Коротко, Энтони; Сливка, Бен; Смирл, Джон; Стиллмейкер, Бетти; Стоддард, Джон; Тиллман, Деннис; Уиттен, Грег; Юнт, Натали; Зек, Стив (1988). «Технические советники». Энциклопедия MS-DOS: версии с 1.0 по 3.2 . Дункан, Рэй; Боствик, Стив; Бургойн, Кейт; Байерс, Роберт А.; Хоган, Том; Кайл, Джим; Летвин, Гордон ; Петцольд, Чарльз ; Рабинович, Чип; Томлин, Джим; Уилтон, Ричард; Волвертон, Ван; Вонг, Уильям; Вудкок, Джоанна (Полностью переработанная ред.). Редмонд, Вашингтон, США: Microsoft Press .ISBN 1-55615-049-0. LCCN  87-21452 . OCLC  16581341 .(xix + 1570 страниц; 26 см) (NB. Это издание было опубликовано в 1988 году после обширной переработки отозванного первого издания 1986 года другим коллективом авторов. [2] )
  5. ^ a b c Чаппелл, Джефф (январь 1994 г.). «Глава 2: Системный след». В Шульмане, Эндрю; Педерсен, Аморетта (ред.). Внутреннее устройство DOS . Серия программирования Эндрю Шульман (1-е издание, 1-е изд.). Издательство Эддисон Уэсли . ISBN 978-0-201-60835-9.(xxvi + 738 + iv страниц, 3,5 дюйма [3] [4] ) Исправления: [5] [6] [7]
  6. ^ Рош, Винн Л. (1991-02-12). "DR DOS 5.0 - Лучшая операционная система?" . Журнал ПК . Vol. 10 шт. 3. п. 241-246, 257, 264, 266. Архивировано 25 июля 2019 года . Проверено 26 июля 2019 . […] SYS был улучшен в DR DOS 5.0, поэтому вам не нужно беспокоиться о том, что первый кластер останется свободным на диске, который вы хотите сделать загрузочным. Системные файлы DR DOS могут быть расположены где угодно на диске, поэтому любой диск с достаточно свободным пространством можно настроить для загрузки вашей системы. […] (NB. Источник приписывает это утилите SYS, хотя на самом деле это функция расширенного загрузчика начальной загрузки в загрузочном секторе. SYS просто помещает этот сектор на диск.)
  7. ^ Пол, Маттиас Р. (2001-01-17). «FAT32 в DR-DOS» . opendos @ delorie . Архивировано 6 октября 2017 года . Проверено 6 октября 2017 . […] Загрузочный сектор DR-DOS […] ищет файл IBMBIO.COM ( DRBIOS.SYS ), а затем загружает * весь * файл в память, прежде чем передать ему управление. […]
  8. Пол, Матиас Р. (20 февраля 2002). «Не могу скопировать» . opendos @ delorie . Архивировано 6 октября 2017 года . Проверено 6 октября 2017 . […] Загрузочный сектор DR-DOS загружает весь файл IBMBIO.COM в память перед его выполнением. Его совершенно не заботит файл IBMDOS.COM , который загружает IBMBIO.COM. […] Загрузочный сектор DR-DOS […] найдет […] файлы ядра, если они логически сохранены в корневом каталоге. Их физическое расположение на диске, и если они фрагментированы или нет, не имеет значения для загрузочного сектора DR-DOS. Следовательно, вы можете просто скопировать файлы ядра на диск (даже простоCOPY ), и как только загрузочный сектор станет сектором DR-DOS, он найдет и загрузит их. Конечно, сложно уместить все это всего в 512 байт, размер одного сектора, но это серьезное улучшение удобства, если вам нужно настроить систему DR-DOS, а также ключ к DR. -DOS multi-OS LOADER утилита для работы. В MS-DOS файлы ядра должны находиться в определенных местах, но файлы DR-DOS может быть в любом месте, так что вы не должны физически поменять их вокруг каждый раз при загрузке другой ОС. Кроме того, он позволяет обновлять систему DR-DOS, просто копируя файлы ядра поверх старых, нет необходимости в SYS , нет сложных процедур установки, как требуется для MS-DOS / PC DOS.. Вы даже можете хранить несколько файлов ядра DR-DOS под разными именами на одном диске, и LOADER будет переключаться между ними в соответствии с именами файлов, указанными в файле BOOT.LST . […]
  9. ^ Пол, Маттиас Р. (2017-08-14) [2017-08-07]. «Продолжение саги о Windows 3.1 в расширенном режиме на OmniBook 300» . MoHPC - Музей калькуляторов HP . Архивировано 6 октября 2017 года . Проверено 6 октября 2017 . […] DR-DOS FDISK не только разбивает диск, но также может форматировать только что созданные тома и инициализировать их загрузочные секторы за один раз, поэтому нет риска случайно испортить неправильный том и нет необходимости в FORMAT / S или SYS . После этого вы можете просто скопировать оставшиеся файлы DR-DOS, включая системные файлы. Важно знать, что в отличие от MS-DOS / PC DOS , DR-DOS имеет «умные» загрузочные секторы, которые фактически «монтируют» файловую систему для поиска и загрузки системных файлов в корневой каталог, вместо того, чтобы ожидать их размещения в определенном месте. Физически системные файлы могут располагаться где угодно, а также могут быть фрагментированы. […]
  10. ^ «Глава 6 - Устранение неполадок при запуске и проблемах с диском» . Комплект ресурсов Windows NT Server . Microsoft. Архивировано из оригинала на 2007-05-15.
  11. ^ «Оттенок» . coreboot . Проверено 20 ноября 2010 .

Внешние ссылки [ править ]

  • Загрузчик - OSDev Wiki