Для чого нам потрібен завантажувач?


28

Після запуску BIOS або чогось подібного, що служить прошивкою, управління передається завантажувачу, наскільки я знаю.

Чому BIOS не може безпосередньо завантажити ядро ​​ОС?

Також у посібнику GRUB сказано: коротко, завантажувач - це перша програма, яка працює при запуску комп'ютера . Хіба не BIOS - перша програма, яка працює?


Відповіді:


27

BIOS повинен знати, як завантажити ядро, і це зробить BIOS надто складним: уявіть собі BIOS, який повинен знати, як завантажувати багато наявних операційних систем, як передавати їм параметри ядра тощо ...

Таким чином, він лише ініціалізує обладнання та переходить до відомого місця, де зберігається завантажувач; потім, управління передається йому.

З Основ Unix та Інтернету HOWTO :

Вам може бути цікаво, чому BIOS не завантажує ядро ​​безпосередньо - чому двоступеневий процес із завантажувачем? Що ж, BIOS не дуже розумний. Насправді це дуже нерозумно, і Linux взагалі не використовує його після завантаження. Спочатку він був написаний для примітивних 8-бітних ПК з крихітними дисками, і буквально не може отримати доступ до диска, щоб безпосередньо завантажити ядро. Крок завантажувача також дозволяє запустити одну з декількох операційних систем з різних місць на вашому диску, навряд чи Unix недостатньо для вас.

Що стосується першої запущеної програми BIOS: (з Вікіпедії )

Програмне забезпечення BIOS вбудоване в ПК і є першим кодом, який управляється ПК при включенні ("прошивка завантаження").

Але прошивка - це програмне забезпечення. Тому я б припустив, що посібник з GRUB принаймні заплутаний у цій частині; завантажувач може розглядатися як перший визначений користувачем фрагмент програмного забезпечення, який працює на комп'ютері.


10

Причина - гнучкість. На одному жорсткому диску (Windows, Linux та ін.) Може бути кілька різних ОС або у вас є кілька різних версій однієї ОС. Тому краще мати незапевнений ОС, який знає, де розташована кожна ОС, встановлена ​​на жорсткому диску, як завантажувати кожну з них, яку завантажувати, представляти меню чи ні тощо. Це завантажувач.

BIOS завантажує та виконує код, розташований у заздалегідь визначеному місці на жорсткому диску (перший сектор). Цей код ми називаємо завантажувачем, але технічно якщо ви встановили Windows на порожній жорсткий диск, цей код встановлений і Windows, тому ви можете назвати його частиною Windows, тим більше, що завантажувач Windows не може завантажувати будь-яку іншу ОС, крім Windows.

Щодо першої програми, яка працює при запуску комп'ютера: розрізнення програмного забезпечення / програмного забезпечення досить тонке, а процес запуску сучасного комп'ютера дуже складний. BIOS сам по собі також не є монолітною програмою, а декількома різними етапами, зв'язаними разом. Однак завантажувач - це перший код, який можна змінити користувачем . Це перший фрагмент коду, який користувач може пошкодити, стерти, заразити вірусом тощо. Тому я припускаю, що в технічному відношенні BIOS - це перше програмне забезпечення, яке працює, завантажувач - це спочатку в тому сенсі, що якщо комп'ютер не завантажує потреби користувача щоб перевірити, чи це нормально.


1
З досвіду користувач, безумовно, може зламати BIOS.
OrangeDog

2

Чому BIOS не може безпосередньо завантажити ядро ​​ОС?

Три причини:

  • BIOS на початковій платформі ПК, коли вона була представлена ​​в 1981 році, мала функціонувати в тій же ролі, що і в операційній системі CP / M, а саме - тонкий шар абстракції для декількох пристроїв і простий завантажувач диска. CP / M мав ще один шар під назвою "BDOS", який обробляв файлову систему. DOS багато в чому був схожий на CP / M, оскільки він був операційною системою в моді в той час, і був структурований аналогічно. BIOS призначався для обробки апаратних аспектів платформи - ролі, яку зараз виконують драйвери в ОС.

  • Поняття файлової системи як окремої від ОС ще насправді не прийняло.

  • У цей час оперативна пам’ять та ПЗУ були дорогими та обмеженими ресурсами. Оригінальний комп'ютер IBM 5150 можна було отримати лише 16 Кб оперативної пам'яті ( довідково ). Розмір ПЗУ цієї системи становив 48 К і включав перекладач BASIC. У той час не було такого поняття, як стандартна файлова система.

Оскільки DOS став найпопулярнішою ОС для цієї платформи, а потім Windows, яка працювала з цією установкою, ніхто не думав розширювати BIOS таким чином, щоб включити реальну можливість завантаження.

Я не впевнений у можливостях UEFI - він може мати реальні можливості завантаження, які не використовуються Windows з тих чи інших причин (Windows наполягає на тому, щоб використовувати свій власний диспетчер завантаження при його встановленні). Інші прошивки, що не є BIOS, такі як U-Boot, а також у багатьох телефонах та маршрутизаторах завантажують та запускають ядра безпосередньо. Технічної причини для цього не було з того часу, коли BIOS почали мати місце в ROM, щоб робити більше справ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.