Po uruchomieniu systemu BIOS lub czegoś podobnego, który służy jako oprogramowanie układowe, kontrola jest przekazywana do programu ładującego, o ile wiem.
Dlaczego BIOS nie może bezpośrednio załadować jądra systemu operacyjnego?
Ponadto instrukcja GRUB mówi: krótko : moduł ładujący jest pierwszym programem, który działa podczas uruchamiania komputera . Czy BIOS nie jest pierwszym uruchomionym programem?
bios
grub
bootloader
aoeui
źródło
źródło
Odpowiedzi:
BIOS musiałby wiedzieć, jak załadować jądro, a to nadmiernie skomplikowałoby BIOS: wyobraź sobie BIOS, który musi wiedzieć, jak załadować wiele dostępnych systemów operacyjnych, jak przekazać im parametry jądra itp.
W ten sposób inicjuje tylko sprzęt i przeskakuje do znanego miejsca, w którym przechowywany jest program ładujący; następnie kontrola jest przekazywana do niego.
Z Unixa i podstaw Internetu HOWTO :
Jeśli chodzi o BIOS, który jest pierwszym programem, który działa: (z Wikipedii )
Ale oprogramowanie układowe to oprogramowanie. Zakładam więc, że instrukcja GRUB jest co najmniej myląca z tej strony; bootloader może być postrzegany jako pierwsze oprogramowanie zdefiniowane przez użytkownika, które działa na komputerze.
źródło
Powodem jest elastyczność. Możesz mieć kilka różnych systemów operacyjnych na jednym dysku twardym (Windows, Linux itp.) Lub możesz mieć kilka różnych wersji tego samego systemu operacyjnego. Dlatego lepiej jest mieć kod niezależny od systemu operacyjnego, który wie, gdzie znajduje się każdy system operacyjny zainstalowany na dysku twardym, jak załadować każdy z nich, który z nich załadować, czy przedstawić menu, czy nie, itd. To jest program ładujący.
System BIOS ładuje i wykonuje kod znajdujący się we wcześniej określonej lokalizacji na dysku twardym (pierwszy sektor). Ten kod nazywamy bootloaderem, ale technicznie rzecz biorąc, jeśli zainstalowałeś system Windows na czystym dysku twardym, ten kod jest również instalowany przez system Windows, więc możesz nazwać go częścią systemu Windows, zwłaszcza, że bootloader systemu Windows nie może załadować żadnego innego systemu operacyjnego poza Windows.
Jeśli chodzi o pierwszy program, który uruchamia się po uruchomieniu komputera: rozróżnienie oprogramowania wewnętrznego / oprogramowania jest dość cienkie, a proces uruchamiania nowoczesnego komputera jest bardzo skomplikowany. BIOS sam w sobie nie jest także programem monolitycznym, lecz połączonymi ze sobą kilkoma odrębnymi etapami. Jednak program ładujący jest pierwszym działającym kodem, który może zmienić użytkownik . Jest to pierwszy fragment kodu, który użytkownik może uszkodzić, usunąć, zainfekować wirusem itp. Przypuszczam, że chociaż technicznie BIOS jest pierwszym oprogramowaniem, które działa, bootloader jest pierwszy w tym sensie, że jeśli komputer nie uruchamia się, użytkownik potrzebuje aby sprawdzić, czy jest w porządku.
źródło
Trzy powody:
BIOS na oryginalnej platformie PC, kiedy został wprowadzony w 1981 roku, miał działać w tej samej roli, co w systemie operacyjnym CP / M - czyli cienkiej warstwie abstrakcji dla kilku urządzeń i prostym bootloaderze. CP / M miał inną warstwę o nazwie „BDOS”, która obsługiwała system plików. DOS był podobny do CP / M pod wieloma względami, ponieważ był wówczas modnym systemem operacyjnym i miał podobną strukturę. System BIOS miał obsługiwać specyficzne dla sprzętu aspekty platformy - rolę, którą pełnią teraz sterowniki w systemach operacyjnych.
Pojęcie systemu plików oddzielnego od systemu operacyjnego jeszcze się nie potwierdziło.
W tym czasie RAM i ROM były drogimi i ograniczonymi zasobami. Oryginalny komputer IBM 5150 można uzyskać przy zaledwie 16 KB pamięci RAM ( odniesienie ). Wielkość ROM tego systemu wynosiła 48 KB i zawierał on interpreter języka BASIC. W tym czasie nie było czegoś takiego jak standardowy system plików.
Odkąd DOS stał się najpopularniejszym systemem operacyjnym dla tej platformy, a następnie Windows, który działał z tą konfiguracją, nikt nie pomyślał o rozszerzeniu BIOS-u w ten sposób, aby obejmował rzeczywiste możliwości ładowania.
Nie jestem pewien możliwości UEFI - może mieć rzeczywistą zdolność do ładowania, która nie jest używana przez Windows z tego czy innego powodu (Windows nalega na użycie własnego menedżera rozruchu podczas instalacji). Inne oprogramowanie układowe inne niż BIOS, takie jak U-Boot oraz te w wielu telefonach i routerach, bezpośrednio ładują i uruchamiają jądra. Nie było tego technicznego powodu, odkąd BIOSy zaczęły mieć miejsce w pamięci ROM, aby zrobić więcej rzeczy.
źródło