Пытаетесь понять процесс загрузчика / GRUB? [закрыто]

Итак, насколько я понимаю, BIOS - это микропрограммное обеспечение, то есть программное обеспечение, встроенное в оборудование и не зависящее от ОС.

Но есть загрузчики, которые загружают операционную систему.

Но тогда у нас есть такие вещи, как GRUB, которые являются загрузчиками, но, похоже, также являются загрузчиками, ориентированными на Linux?

Я немного не понимаю, почему это так.Каждый ли BIOS использует GRUB? У всего оборудования есть встроенный загрузчик? Загружает ли что-то вроде GRUB Windows, Linux, Mac и т. Д.?

Я пытаюсь понять точку отсечения, в которой мы переходим от независимости от ОС к зависимости от ОС, от аппаратной части / прошивки к "любой ОС мы установили "side.

РЕДАКТИРОВАТЬ:

Попытка сформулировать это иначе.

Допустим, я иду в магазин и покупаю готовый ноутбук с Windows. Я передаю его вам, и вы его осматриваете и говорите: «Хорошо, он использует этот BIOS, этот загрузчик, эту операционную систему».

Я говорю: «Круто. Теперь вы можете стереть Windows и вместо этого установить Ubuntu? хочу, чтобы этот ноутбук был ноутбуком с Ubuntu, а не с Windows ».

Возможно ли это? Зачем менять загрузчик? Как бы вы узнали, на что его поменять? Что, если бы вместо этого я вручил вам Macbook Pro? Можем ли мы стереть его и превратить в компьютер с Windows? Можем ли мы стереть его и превратить в компьютер с Ubuntu?

Что здесь определяет совместимость и необходимость? Когда продается ноутбук, поставляется ли он с предустановленным загрузчиком в зависимости от ОС? Что определяет, на что мы можем его изменить в зависимости от ОС, которую мы хотим? Что определяет, какую ОС мы можем запустить в первую очередь?

Я пытаюсь понять взаимосвязь между оборудованием, BIOS, загрузчиком и ОС.

-1
задан 1 October 2017 в 10:37

1 ответ

Не запутывайтесь, шаги:

Основные шаги:

 1. The BIOS/UEFI locates and executes the boot program or bootloader.
 2. The bootloader loads the kernel.
 3. The kernel starts the `init` process (with a PID of 1).
 4. init manages system initialization, using conventional 'sysvinit' startup scripts, or
          using 'Upstart' or systemd.

Независимые от операционной системы шаги заканчиваются когда GRUB загружается BIOS/UEFI. Это - задание, должен загрузиться что bootloader присутствует.

Из ссылки, данной bodhi.zazen:

GRUB был разработан, чтобы быть совместимым со спецификацией мультиначальной загрузки, которая позволяет GRUB загружать много версий Linux и других бесплатных операционных систем; это может также объединить в цепочку, загружают загрузочную запись собственных операционных систем → Windows.

Теперь GRUB не предварительно установлен всеми аппаратными средствами, если необходимо было вытереть Windows, затем Вы установите GRUB для помощи boot up Ubuntu. Это обычно хранится в названном разделе MBR Главная загрузочная запись, где BIOS/UEFI посмотрит. MBR о 512MB в размере.

          MBR
      ---------  -----
      |          |
      |          |
      |          | 446 bytes --- GRUB program code.
      |          |
      |          |
      |          |
      |          -----
512   |          -----                                            ----------
bytes |          | Partition 1 - 16 bytes                                  |
      |          |----                                                     |
      |          | Partition 2 - 16 bytes              <----Partiton Table |
      |          |----                                                     |
      |          | Partition 3 - 16 bytes                                  |--> 64byts
      |          |----                                                     |
      |          | Partition 4 - 16 bytes { 0x55AA } -> Magic Number       |
      |          |                                                         |
      ---------  -----                                            ---------|

Вы спрашиваете:

"Что определяет совместимость и поддержку? Аппаратные средства? Загрузчик? Я не понимаю взаимосвязей"

kernel интерфейс между hardware и user и определяет если OS будет работать с Вашим ядром, оно создается, чтобы работать или взаимодействовать с Вашим hardware. Если загрузчик загружается kernel и это не работает с Вашим hardware затем Ваш загрузчик будет жаловаться, но он составил kernel определить если hardware хорошее соответствие для скомпилированных модулей, найденных в нем.

Windows имеет свое собственное bootloader названный EFI bootloader, GRUB для основанных на Linux систем а не для Windows. Смотрите на это для различных загрузчиков.

Обратите внимание на то, что UEFI (Объединенный Расширяемый Микропрограммный Интерфейс), более новый тип BIOS в более новых системах:

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

Дальнейшее чтение:

https://opensource.com/article/17/2/linux-boot-and-startup

https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface

5
ответ дан 2 November 2019 в 04:39

Другие вопросы по тегам:

Похожие вопросы: