загрузчик
Загрузчик загрузчик , также пишется как . [1] [2] или называемый загрузчиком начальной загрузки , это компьютерная программа , которая отвечает за загрузку компьютера. Если он также предоставляет интерактивное меню с несколькими вариантами загрузки, его часто называют менеджером загрузки . [2]
Когда компьютер выключается, его программное обеспечение, включая операционные системы, код приложений и данные, остается храниться в энергонезависимой памяти . (ОЗУ) обычно нет операционной системы или ее загрузчика Когда компьютер включен, в его оперативной памяти . Компьютер сначала выполняет относительно небольшую программу, хранящуюся в постоянной памяти (ПЗУ, а затем EEPROM , флэш-память NOR ) вместе с некоторыми необходимыми данными, для инициализации ОЗУ (особенно в системах x86), для доступа к энергонезависимому устройству (обычно блочному устройству , например, флэш-память NAND) или устройства, с которых программы и данные операционной системы могут быть загружены в ОЗУ.
Некоторые более ранние компьютерные системы, получив сигнал загрузки от человека-оператора или периферийного устройства, могли загрузить очень небольшое количество фиксированных инструкций в память в определенном месте, инициализировать по крайней мере один ЦП, а затем указать ЦП на инструкции и приступить к их исполнению. Эти инструкции обычно запускают операцию ввода с некоторого периферийного устройства (которое может быть выбрано оператором переключателем). Другие системы могут отправлять аппаратные команды непосредственно периферийным устройствам или контроллерам ввода-вывода, что вызывает выполнение чрезвычайно простой операции ввода (например, «чтение нулевого сектора системного устройства в память, начиная с ячейки 1000»), эффективно загружая небольшой количество инструкций загрузчика в памяти; сигнал завершения от устройства ввода-вывода может затем использоваться для начала выполнения инструкций ЦП.
В компьютерах меньшего размера часто используются менее гибкие, но более автоматические механизмы загрузчика, обеспечивающие быстрый запуск компьютера и с заранее определенной конфигурацией программного обеспечения. Например, во многих настольных компьютерах процесс начальной загрузки начинается с того, что ЦП выполняет программное обеспечение, содержащееся в ПЗУ (например, BIOS IBM PC или IBM PC-совместимого компьютера ) по заранее определенному адресу (некоторые ЦП, включая серию Intel x86 , предназначены для запуска этого программного обеспечения после перезагрузки без посторонней помощи). Это программное обеспечение содержит элементарную функциональность для поиска устройств, имеющих право участвовать в загрузке, и загрузки небольшой программы из специального раздела (чаще всего загрузочного сектора ) наиболее перспективного устройства, обычно начиная с фиксированной точки входа, такой как начало сектор.
Загрузчик первой стадии [ править ]
В этом разделе слишком много внимания уделяется конкретным примерам . ( май 2023 г. ) |
Загрузчики могут столкнуться с особыми ограничениями, особенно по размеру; например, на более ранних моделях IBM PC и совместимых с ними загрузочный сектор обычно должен работать с 510 байтами кода (или меньше) и размером всего 32 КиБ. [3] [4] (позже уменьшено до 64 КиБ [5] поддерживаемые оригинальными 8088/8086 ) системной памяти и используйте только инструкции , процессорами . Первый этап загрузчиков ПК (FSBL, загрузчик первого этапа), расположенный на фиксированных и съемных дисках, должен умещаться в первые 446 байт главной загрузочной записи , чтобы оставить место для стандартной 64-байтовой таблицы разделов с четырьмя записи раздела и двухбайтовая загрузочная подпись , которая требуется BIOS для правильного загрузчика — или даже меньше, когда дополнительные функции, такие как более четырех записей раздела (до 16 по 16 байт каждая), подпись диска (6 байт) , временная метка диска (6 байт), расширенный активный раздел (18 байт) или специальные мультизагрузочные загрузчики также должны поддерживаться в некоторых средах.
В гибких и супердискет загрузочных записях томов до 59 байтов занято для расширенного блока параметров BIOS на томах FAT12 и FAT16 , начиная с DOS 4.0, тогда как EBPB FAT32 , представленный в DOS 7.1, требует даже 87 байт, оставляя только 423 байта для загрузчика. при условии, что размер сектора составляет 512 байт. Поэтому загрузочные секторы Microsoft традиционно налагают определенные ограничения на процесс загрузки. Например, загрузочный файл должен был располагаться в фиксированной позиции в корневом каталоге файловой системы и храниться в последовательных секторах. [6] [7] условия, о которых заботится SYS
команда и немного смягчена в более поздних версиях DOS. [7] [номер 1] Затем загрузчик смог загрузить первые три сектора файла в память, которая содержала другой встроенный загрузчик, способный загрузить остальную часть файла в память. [7] Когда Microsoft добавила поддержку LBA и FAT32, они перешли на загрузчик, охватывающий более двух физических секторов, используя 386 инструкций из соображений размера. В то же время другим поставщикам удалось втиснуть гораздо больше функциональности в один загрузочный сектор, не ослабляя первоначальные ограничения только на минимальный доступный объем памяти (32 КиБ) и поддержку процессоров (8088/8086). [номер 2] Например, загрузочные сектора DR-DOS способны находить загрузочный файл в файловых системах FAT12, FAT16 и FAT32 и загружать его в память целиком через CHS или LBA, даже если файл не хранится в фиксированном месте и в последовательных секторах. [8] [3] [9] [10] [11] [номер 3] [номер 2]
BIOS и UEFI могут не только загружать несколько операционных систем с энергонезависимого устройства, но и инициализировать системное оборудование для загруженных операционных систем.
Примеры загрузчиков первого этапа включают BIOS , UEFI , coreboot , Libreboot и Das U-Boot .
Загрузчик второго уровня [ править ]
Загрузчики второго этапа, такие как GNU GRUB , rEFInd , BOOTMGR , Syslinux , NTLDR или iBoot , сами по себе не являются операционными системами, но способны правильно загружать операционную систему и передавать ей выполнение; операционная система впоследствии инициализируется и может загрузить дополнительные драйверы устройств . Загрузчик второго этапа не нуждается в драйверах для своей работы, но вместо этого может использовать общие методы доступа к памяти, предоставляемые системной прошивкой, такие как BIOS или открытая прошивка , хотя обычно с ограниченной аппаратной функциональностью и более низкой производительностью. [12]
Многие загрузчики можно настроить так, чтобы предоставить пользователю несколько вариантов загрузки. Эти варианты могут включать разные операционные системы (для двойной или многократной загрузки с разных разделов или дисков), разные версии одной и той же операционной системы (на случай, если новая версия имеет неожиданные проблемы), разные варианты загрузки операционной системы (например, загрузка в спасательный или безопасный режим ), а также некоторые автономные программы, которые могут работать без операционной системы, такие как тестеры памяти (например, memtest86+ ), базовая оболочка (как в GNU GRUB) или даже игры (см. Список игр для загрузки ПК ). [13] Некоторые загрузчики также могут загружать другие загрузчики; например, GRUB загружает BOOTMGR вместо прямой загрузки Windows. Обычно выбор по умолчанию выбирается заранее с временной задержкой, в течение которой пользователь может нажать клавишу, чтобы изменить выбор; после этой задержки автоматически запускается вариант по умолчанию, поэтому нормальная загрузка может происходить без взаимодействия.
Процесс загрузки можно считать завершенным, когда компьютер готов к взаимодействию с пользователем или операционная система способна запускать системные программы или прикладные программы.
Встроенные и многоступенчатые загрузчики [ править ]
Многие встроенные системы должны загружаться немедленно. Например, ждать минуту, пока цифровое телевидение или GPS-навигатор, запустится вообще недопустимо. Следовательно, такие устройства имеют программное обеспечение в ПЗУ или флэш-памяти , поэтому устройство может начать работу немедленно; Загрузка не требуется или незначительна, поскольку загрузка может быть предварительно рассчитана и сохранена в ПЗУ при изготовлении устройства.
В больших и сложных системах процедуры загрузки могут выполняться в несколько этапов, пока, наконец, операционная система и другие программы не будут загружены и готовы к выполнению. Поскольку операционные системы устроены так, как будто они никогда не запускаются и не останавливаются, загрузчик может загрузить операционную систему, настроить себя как простой процесс внутри этой системы, а затем безвозвратно передать управление операционной системе. Затем загрузчик завершает работу нормально, как и любой другой процесс.
Сетевая загрузка [ править ]
Большинство компьютеров также способны загружаться через компьютерную сеть . В этом сценарии операционная система хранится на диске сервера , а некоторые ее части передаются клиенту с помощью простого протокола, такого как Trivial File Transfer Protocol (TFTP). После передачи этих частей операционная система берет на себя управление процессом загрузки.
Как и в случае с загрузчиком второго этапа, загрузка по сети начинается с использования общих методов доступа к сети, предоставляемых загрузочным ПЗУ сетевого интерфейса, которое обычно содержит образ среды выполнения перед загрузкой (PXE). Драйверы не требуются, но функциональность системы ограничена до тех пор, пока не будут перенесены и запущены ядро операционной системы и драйверы. В результате после завершения загрузки из ПЗУ вполне возможно выполнить сетевую загрузку операционной системы, которая сама не имеет возможности использовать сетевой интерфейс.
См. также [ править ]
Примечания [ править ]
- ^ В руководстве по PC DOS 5.0 неверно указано, что системные файлы больше не обязательно должны быть последовательными. Однако для того, чтобы процесс загрузки работал, системные файлы по-прежнему должны занимать первые две записи каталога и первые три сектора каталога.
IBMBIO.COM
все равно необходимо хранить последовательно.SYS
продолжает заботиться об этих требованиях. - ^ Jump up to: Перейти обратно: а б Например, хотя расширенная функциональность MBR и загрузочных секторов DR-DOS по сравнению с их аналогами MS-DOS / PC DOS все же может быть достигнута с использованием традиционных оптимизации кода до версии 7.05 , для добавления LBA FAT32 методов и LOADER поддерживают Секторам версии 7.07 пришлось прибегнуть к самомодифицирующемуся коду , программированию на уровне опкода , контролируемому использованию побочных эффектов , многоуровневому перекрытию данных/кода и методам алгоритмического свертывания , чтобы сжать все в один физический сектор, поскольку это было требованием для обратного ... и кросс-совместимость с другими операционными системами в сценариях мультизагрузки и цепной загрузки .
- ^ Есть одно исключение из правила: DR-DOS VBR загружают всю
IBMBIO.COM
файл в память: ЕслиIBMBIO.COM
что загрузчик перезапишет стек размер файла превышает примерно 29 КБ, попытка загрузить весь файл в память приведет к тому , и переместит таблицу параметров диска (DPT/FDPB). Таким образом, VBR DR-DOS 7.07 загружает в память только первые 29 КБ файла, полагаясь на другой загрузчик, встроенный в первую часть файла.IBMBIO.COM
чтобы проверить это условие и при необходимости загрузить оставшуюся часть файла в память. Это не вызывает проблем совместимости, так какIBMBIO.COM
Размер никогда не превышал этот предел в предыдущих версиях без этого загрузчика. В сочетании со структурой двойной записи это также позволяет загружать систему с помощью VBR DOS ПК , который загружает в память только первые три сектора файла.
Ссылки [ править ]
- ^ «GNU GRUB — Проект GNU — Фонд свободного программного обеспечения (FSF)» . www.gnu.org . Проверено 27 сентября 2021 г.
- ^ Jump up to: Перейти обратно: а б «системная загрузка» . www.freedesktop.org . Проверено 27 сентября 2021 г.
- ^ Jump up to: Перейти обратно: а б Пол, Матиас Р. (2 октября 1997 г.) [29 сентября 1997 г.]. «Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM — README.TXT и BOOT.TXT — краткое описание загрузки OpenDOS» . Архивировано из оригинала 4 октября 2003 года . Проверено 29 марта 2009 г. [1]
- ^ Сакамото, Масахико (13 мая 2010 г.). «Почему BIOS загружает MBR в 7C00h в x86?» . glmenv-septzen.net . Проверено 22 августа 2012 г.
- ^ компьютерная корпорация Compaq; ООО «Феникс технологии»; Корпорация Intel (11 января 1996 г.). «Спецификация загрузки BIOS 1.01» (PDF) . Проверено 21 декабря 2017 г.
- ^ Збиковски, Марк ; Аллен, Пол ; Балмер, Стив ; Борман, Рубен; Борман, Роб; Батлер, Джон; Кэрролл, Чак; Чемберлен, Марк; Челл, Дэвид; Коули, Майк; Кортни, Майк; Драйфус, Майк; Дункан, Рэйчел; Экхардт, Курт; Эванс, Эрик; Фермер, Рик; Гейтс, Билл ; Гири, Майкл; Гриффин, Боб; Хогарт, Дуг; Джонсон, Джеймс В.; Кермаани, Каамель; Король, Адриан; Кох, Рид; Ландовски, Джеймс; Ларсон, Крис; Леннон, Томас; Липки, Дэн; Макдональд, Марк ; МакКинни, Брюс; Мартин, Паскаль; Мазерс, Эстель; Мэтьюз, Боб; Мелин, Дэвид; Мергентайм, Чарльз; Невин, Рэнди; Ньюэлл, Дэн; Ньюэлл, Тани; Норрис, Дэвид; О'Лири, Майк; О'Рир, Боб ; Олссон, Майк; Остерман, Ларри; Остлинг, Ридж; Пай, Сунил; Патерсон, Тим ; Перес, Гэри; Питерс, Крис; Петцольд, Чарльз ; Поллок, Джон; Рейнольдс, Аарон; Рубин, Дэррил; Райан, Ральф; Шульмейстерс, Карл; Шах, Раджен; Шоу, Барри; Коротко, Энтони; Сливка, Бен; Смирл, Джон; Стиллмейкер, Бетти; Стоддард, Джон; Тиллман, Деннис; Уиттен, Грег; Йонт, Натали; Зек, Стив (1988). «Технические консультанты». Энциклопедия MS-DOS: версии с 1.0 по 3.2 . Дункан, Рэй; Боствик, Стив; Бургойн, Кейт; Байерс, Роберт А.; Хоган, Том; Кайл, Джим; Летвин, Гордон ; Петцольд, Чарльз ; Рабиновиц, Чип; Томлин, Джим; Уилтон, Ричард; Вулвертон, Ван; Вонг, Уильям; Вудкок, Джоанн (Полностью переработанное издание). Редмонд, Вашингтон, США: Microsoft Press . ISBN 1-55615-049-0 . LCCN 87-21452 . OCLC 16581341 . (xix+1570 страниц; 26 см) (Примечание. Это издание было опубликовано в 1988 году после обширной переработки отозванного первого издания 1986 года другим коллективом авторов. [2] )
- ^ Jump up to: Перейти обратно: а б с Чаппелл, Джефф (январь 1994 г.). «Глава 2: Влияние системы». В Шульмане, Эндрю; Педерсен, Аморетт (ред.). Внутреннее устройство DOS . Серия программ Эндрю Шульмана (1-е издание, 1-е изд.). Аддисон-Уэсли . ISBN 978-0-201-60835-9 . (xxvi+738+iv страниц, 3,5-дюймовая дискета [3] [4] ) Исправления: [5] [6] [7]
- ^ Рош, Винн Л. (12 февраля 1991 г.). «DR DOS 5.0 — лучшая операционная система?» . Журнал ПК . Том. 10, нет. 3. С. 241–246, 257, 264, 266. Архивировано из оригинала 25 июля 2019 года . Проверено 26 июля 2019 г.
[…]
(Примечание. Источник связывает это сSYS
был улучшен в DR DOS 5.0, поэтому вам не придется беспокоиться о том, чтобы оставить свободным первый кластер на диске, который вы хотите сделать загрузочным. Системные файлы DR DOS могут располагаться в любом месте диска, поэтому для загрузки вашей системы можно использовать любой диск с достаточным количеством свободного места. […]SYS
утилита, хотя на самом деле это особенность расширенного загрузчика в загрузочном секторе.SYS
просто помещает этот сектор на диск.) - ^ Пол, Матиас Р. (17 января 2001 г.). «FAT32 в DR-DOS» . opendos@delorie . Архивировано из оригинала 6 октября 2017 года . Проверено 6 октября 2017 г.
[…] Загрузочный сектор DR-DOS […] ищет
IBMBIO.COM
( DRBIOS.SYS ), а затем загружает *весь* файл в память, прежде чем передать ему управление. […] - ^ Пол, Матиас Р. (20 февраля 2002 г.). «Не могу скопировать» . opendos@delorie . Архивировано из оригинала 6 октября 2017 года . Проверено 9 октября 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 . […] - ^ Пол, Матиас Р. (14 августа 2017 г.) [7 августа 2017 г.]. «Продолжение саги о Windows 3.1 в расширенном режиме на OmniBook 300» . MoHPC — музей калькуляторов HP . Архивировано из оригинала 6 октября 2017 года . Проверено 6 октября 2017 г.
[…] ДР-ДОС
FDISK
не только разбивает диск на разделы, но также может форматировать только что созданные тома и инициализировать их загрузочные сектора за один раз, поэтому нет риска случайно испортить неправильный том и нет необходимостиFORMAT /S
илиSYS
. После этого вы можете просто скопировать оставшиеся файлы DR-DOS, включая системные файлы. Важно знать, что, в отличие от MS-DOS / PC DOS , DR-DOS имеет «умные» загрузочные сектора, которые фактически «монтируют» файловую систему для поиска и загрузки системных файлов в корневом каталоге, а не в корневом каталоге. ожидая, что они будут размещены в определенном месте. Физически системные файлы могут располагаться где угодно, а также могут быть фрагментированы. […] - ^ «Глава 6 – Устранение неполадок запуска и проблем с диском» . Ресурсный комплект сервера Windows NT . Майкрософт. Архивировано из оригинала 15 мая 2007 года.
- ^ «Тинт» . coreboot . Проверено 20 ноября 2010 г.