Итак, насколько я понимаю, BIOS - это микропрограммное обеспечение, то есть программное обеспечение, встроенное в оборудование и не зависящее от ОС.
Но есть загрузчики, которые загружают операционную систему.
Но тогда у нас есть такие вещи, как GRUB, которые являются загрузчиками, но, похоже, также являются загрузчиками, ориентированными на Linux?
Я немного не понимаю, почему это так.Каждый ли BIOS использует GRUB? У всего оборудования есть встроенный загрузчик? Загружает ли что-то вроде GRUB Windows, Linux, Mac и т. Д.?
Я пытаюсь понять точку отсечения, в которой мы переходим от независимости от ОС к зависимости от ОС, от аппаратной части / прошивки к "любой ОС мы установили "side.
РЕДАКТИРОВАТЬ:
Попытка сформулировать это иначе.
Допустим, я иду в магазин и покупаю готовый ноутбук с Windows. Я передаю его вам, и вы его осматриваете и говорите: «Хорошо, он использует этот BIOS, этот загрузчик, эту операционную систему».
Я говорю: «Круто. Теперь вы можете стереть Windows и вместо этого установить Ubuntu? хочу, чтобы этот ноутбук был ноутбуком с Ubuntu, а не с Windows ».
Возможно ли это? Зачем менять загрузчик? Как бы вы узнали, на что его поменять? Что, если бы вместо этого я вручил вам Macbook Pro? Можем ли мы стереть его и превратить в компьютер с Windows? Можем ли мы стереть его и превратить в компьютер с Ubuntu?
Что здесь определяет совместимость и необходимость? Когда продается ноутбук, поставляется ли он с предустановленным загрузчиком в зависимости от ОС? Что определяет, на что мы можем его изменить в зависимости от ОС, которую мы хотим? Что определяет, какую ОС мы можем запустить в первую очередь?
Я пытаюсь понять взаимосвязь между оборудованием, BIOS, загрузчиком и ОС.
Не запутывайтесь, шаги:
Основные шаги:
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