BIOS oprogramowanie jest wbudowane w komputer i jest to pierwszy kod prowadzony przez komputer po włączeniu ( „firmware rozruchowym”). Po uruchomieniu komputera pierwszym zadaniem systemu BIOS jest autotest po włączeniu, który inicjuje i identyfikuje urządzenia systemowe, takie jak procesor, pamięć RAM, karta graficzna, klawiatura i mysz, dysk twardy, napęd dysków optycznych i inny sprzęt. BIOS następnie lokalizuje oprogramowanie ładujące przechowywane na urządzeniu peryferyjnym (oznaczonym jako „urządzenie rozruchowe”), takim jak dysk twardy lub CD / DVD, i ładuje i uruchamia to oprogramowanie, zapewniając mu kontrolę nad komputerem. [2] Proces ten nazywa się uruchamianiem lub uruchamianiem, co jest skrótem od ładowania początkowego.
Jakie wymagania określają, że system komputerowy musi mieć zainstalowany system BIOS?
Dlaczego system operacyjny nie może faktycznie działać w całości z systemem BIOS?
Odpowiedzi:
BIOS to zależny od sprzętu fragment kodu przechowywany na płycie głównej. Każda inna płyta główna wymaga napisania niestandardowego systemu BIOS, więc niemożliwe byłoby posiadanie ogólnego systemu BIOS / OS all-in-one (chociaż BIOS jest technicznie tylko kodem przechowywanym, więc teoretycznie można napisać system operacyjny dla jednej konkretnej płyty głównej) . Jak wspomniano, celem systemu BIOS jest wykonanie następujących czynności:
Pamiętaj, że nadal możesz uruchomić komputer bez pamięci zewnętrznej - dlatego BIOS jest wymagany dla komputera. Innymi słowy, BIOS zapewnia wspólny interfejs oprogramowania, który umożliwia przechowywanemu programowi komputerowemu komunikowanie się z różnymi urządzeniami sprzętowymi podłączonymi do płyty głównej.
Na przykład, jeśli mam dwie różne płyty główne z dwoma różnymi kontrolerami SATA, BIOS pozwala mi napisać fragment kodu, który może z nimi współpracować, bez mojej wiedzy o tym, jak płyta główna faktycznie wysyła polecenia do urządzenia SATA. Muszę tylko powiedzieć komputerowi „odczytać sektor X z tego urządzenia SATA”, a BIOS jest odpowiedzialny za wysyłanie tych poleceń do sprzętu.
Tam, gdzie faktycznie pobiera informacje o „sektorze odczytu X”, jest przechowywany program zawarty w systemie BIOS, który zwykle kieruje komputer do rozpoczęcia odczytu z bootloadera przechowywanego we wspólnej lokalizacji. Te wspólne lokalizacje są uzgadniane przez różnych twórców oprogramowania i sprzętu i zwykle podawane do wiadomości publicznej w celu zapewnienia większej kompatybilności między systemami.
Po ustanowieniu podstawowego poziomu interfejsu (ponownie logicznego interfejsu za pomocą oprogramowania) sam system operacyjny tworzy wspólny interfejs z różnymi urządzeniami sprzętowymi (zwykle za pomocą „sterowników urządzeń”), a następnie system operacyjny może kontrolować sprzęt.
Na koniec należy zauważyć, że system BIOS służy również do modyfikacji konfiguracji sprzętowych komputera i przechowywania ich we wbudowanej pamięci EEPROM (aby komputer zapamiętał zmiany przy następnym uruchomieniu). Jednak, jak już wcześniej powiedziałem, po załadowaniu systemu operacyjnego ma on pełną kontrolę nad komputerem.
Umożliwia to producentom płyt głównych tworzenie oprogramowania, które umożliwia wprowadzanie tych zmian w systemie operacyjnym, w przeciwieństwie do konieczności ponownego uruchamiania systemu BIOS. Ponownie, jest to bardzo zależne od sprzętu i oprogramowania, ale pokazuje, że wszystkie interfejsy komputerowe są względne. BIOS jest dokładnie tym, co sugeruje jego nazwa - podstawowy system wejścia / wyjścia, umożliwiający wspólny interfejs oprogramowania dla bardziej zaawansowanego programu („systemu operacyjnego”), który przejmuje kontrolę nad maszyną.
źródło
Twój system operacyjny znajduje się na dysku twardym, jeśli włączysz komputer, magicznie nie zacznie on czytać z tego dysku twardego. To BIOS ładuje moduł ładujący z dysku twardego , a także wykonuje pewne testy i pozwala skonfigurować określone ustawienia systemu BIOS.
Twój system operacyjny nie może tego zrobić, ponieważ znajduje się na dysku twardym, a nie w pamięci ROM.
Dlatego potrzebujesz systemu BIOS lub podobnej (ale innej) technologii, takiej jak EFI ...
Możliwe jest umieszczenie części systemu operacyjnego na pamięci ROM (odpowiedzialnej za ładowanie programu ładującego system operacyjny) przez producenta; nie ma to jednak szerokiego zastosowania, a mimo to dostępny jest BIOS lub EFI.
źródło
Bez prawdziwego logicznego powodu. To bardziej kwestia dziedzictwa i historii.
Nie ma wymogu, aby komputer miał zainstalowany system BIOS. Jest to spuścizna po IBM PC. Chociaż okazało się to dobrym pomysłem
Wykonanie tego przez system operacyjny tak naprawdę niczego nie zmieni, ponieważ nadal działałoby to tak, jak robi to BIOS. Oczywiście system operacyjny musiałby znajdować się w pamięci ROM, a nie na urządzeniu we / wy. Problem może pojawić się w przypadku problemów związanych z monopolem, gdy konstruktor systemu operacyjnego decyduje się na niezgodność systemu BIOS z innymi systemami operacyjnymi. Oddzielenie producentów systemu BIOS od systemów operacyjnych poprawia swobodę w zakresie oprogramowania.
źródło
Coś jest wymagane do uruchomienia systemu operacyjnego. Jeśli system operacyjny zmieści się w nieulotnej pamięci, można go uruchomić bezpośrednio, ale w pełni funkcjonalnych systemach operacyjnych, takich jak Windows, OSX lub Linux, nie jest to możliwe.
Potrzebny jest niewielki lekki „system operacyjny”, który można załadować po włączeniu zasilania, który wykonuje podstawowe czynności, takie jak dostęp do pamięci i dysku, a następnie ładuje system operacyjny. Chociaż może to być część samego systemu operacyjnego, a nie osobna jednostka, istnieją inne powody, dla których warto zacząć od początku innego procesu:
Proces ten nazywany jest ładowaniem początkowym .
źródło
Koncepcja BIOS komputera PC wywodzi się z CP / M, systemu operacyjnego popularnego na 8-bitowych komputerach opartych na magistrali Z-80 „S-100” przed przejęciem przez IBM PC.
CP / M oczekiwał, że funkcje zależne od sprzętu znajdą się w pamięci ROM (BIOS). Kolejną częścią, ładowaną z dysku przez program ładujący, było oprogramowanie, które obsługiwało system plików CP / M (BDOS), a następnie trwało procesor poleceń lub „powłokę” (CCP). Sprzęt, który CP / M miał obsługiwać, nie był bardzo duży: napęd dyskowy, wyświetlacz, port szeregowy lub dwa (porty COM lub AUX), do których można podłączyć drukarki lub modemy.
BIOS komputera wykonał podstawową funkcję ładowania początkowego podobną do CP / M, a DOS użył funkcji BIOS do wykonania podstawowych operacji wejścia i wyjścia, zgodnie z przeznaczeniem. Programiści ostatecznie omijali te funkcje, ponieważ były one powolne. Doprowadziło to do tego, że twórcy klonów PC w połowie lat 80. odtworzyli platformę jako całość (łatwe, ponieważ IBM bardzo dobrze udokumentował oryginalny komputer wewnątrz i na zewnątrz), zamiast po prostu zapewnić BIOS z kompatybilnymi interfejsami, chociaż musieli to zrobić.
W tym momencie możemy powiedzieć, że w nowoczesnym systemie operacyjnym BIOS nie jest tak naprawdę konieczny poza uruchomieniem systemu. Jednak ...
Począwszy od wczesnych lat 90. przyjęto pojęcie zarządzania energią i zadaniem BIOSu było to. APM działa dobrze z systemem jednozadaniowym, takim jak DOS, ale nie z prawdziwymi systemami wielozadaniowymi, takimi jak Windows lub Linux. W tym czasie 386 było w pełni sił, procesor Intel, który obsługiwał prawdziwą wielozadaniowość. DOS i BIOS nie zostały zaktualizowane w odpowiedzi na nowe możliwości tego procesora, głównie dlatego, że wszystkie procesory Intel nadal będą działać w starszym 16-bitowym trybie zgodności, dla którego został zaprojektowany oryginalny PC-BIOS. Dlatego współczesne systemy operacyjne prawie ignorują / omijają wszystkie funkcje wejścia / wyjścia BIOS-u podobne do CP / M, chyba że na wczesnym etapie rozruchu.
Ostatecznie opracowano ACPI, głównie część systemu BIOS, który wspierał zarządzanie energią i konfigurację rzeczy (często laptopów) specyficznych dla platformy. ACPI obsługuje również końcowy stan przełączania zasilania w stanie hibernacji, uśpienia lub wyłączenia.
Tak więc w dzisiejszych czasach to ACPI i jego następca, EFI, sprawia, że coś w rodzaju BIOS-u jest koniecznością komputera PC Nadrzędna koncepcja polega na tym, że ACPI jest interfejsem między rzeczami specyficznymi dla platformy lub płyty głównej a systemem operacyjnym, więc osobna kompilacja systemu operacyjnego nie muszą być wykonane dla każdego rodzaju płyty głównej.
Problem ten występują na płytach programistycznych zawierających procesory ARM z systemem Linux (a także sprzętem do telefonów komórkowych). Zazwyczaj będą one dostarczane z oprogramowaniem tylko dla bootloadera, takim jak U-boot, ale prawie system operacyjny musi obsługiwać każdą płytę jako oddzielną platformę.
źródło
W pewnym sensie masz rację. BIOS i system operacyjny częściowo robią to samo. Rozdzielenie w systemie BIOS i systemie operacyjnym służy wyłącznie elastyczności.
BIOS jest zwykle tworzony przez producenta sprzętu. Sprzęt musi zapewniać, że dostępna jest podstawowa funkcjonalność, na przykład, że można odczytać stację dysków oraz że wyświetla się podstawowy ekran diagnostyki i błędów. Dlatego nazwa „Basic Input Output System”.
Można to zrobić w pewnym stopniu bez dalszej wiedzy o rzeczywistych komponentach rzeczywiście obecnych w danym systemie, ponieważ wszystkie one muszą obsługiwać pewien mały standard BIOS. Umożliwia to dostawcom tworzenie niestandardowego kompletnego systemu. BIOS musi tylko tyle zrobić, aby uruchomić system operacyjny. Istnieją pewne konwencje, w których znajdują się te punkty początkowe, więc po prostu próbuje jeden po drugim. Umożliwia to także używanie różnych systemów operacyjnych na tym samym sprzęcie. (znowu jest elastyczność)
Gdy system operacyjny (a przynajmniej jego program ładujący) zostanie znaleziony i uruchomiony przez BIOS, sam BIOS staje się w dużej mierze przestarzały. Nowoczesne systemy operacyjne używają bardzo mało lub nic z BIOS-u po załadowaniu.
Jeśli chcesz, aby system operacyjny wykonał całą pracę, musisz umieścić system operacyjny w miejscu, w którym będzie dostępny dla sprzętu bez wstępnej pomocy oprogramowania (ROM). Może to być możliwe w przypadku niektórych systemów zamkniętych, w których elastyczność nie ma znaczenia. Jeśli myślisz o wbudowaniu obsługi sprzętu w inny sprzęt, to po prostu znów budujesz rodzaj BIOS-u ...
Kolejnym problemem jest rozmiar i koszt pamięci. W pełni funkcjonalne systemy operacyjne są duże, a próba zainstalowania wielobajtowego systemu operacyjnego w pamięci ROM jest kosztowna, oprócz dalszych problemów związanych z łataniem i aktualizowaniem.
Więc nie, nie ma powodu technicznego, ale wiele praktycznych, szczególnie dla elastycznej platformy PC.
źródło
Aby uruchomić program na nowoczesnym komputerze, musisz mieć już uruchomiony program, który umie obsługiwać sprzęt i ładować programy do pamięci. Ten problem z kurczakiem i jajkiem został rozwiązany przez wszczepienie podstawowego programu do samego sprzętu.
Ten podstawowy system wejścia / wyjścia (BIOS) jest bardzo mały i ma bardzo ograniczony zakres, ale stanowi wystarczającą podstawę do załadowania i uruchomienia programów ładujących drugiego stopnia, takich jak GRUB lub NTLDR . Te programy ładujące drugiego stopnia są bardziej wyrafinowane niż program BIOS, co pozwala im zapewnić solidniejszą podstawę dla systemu operacyjnego właściwego do ładowania i przejmowania kontroli.
źródło
Jeśli procesor miał możliwość bezpośredniego adresowania dysku twardego, bez polegania na systemie BIOS, EFI lub innym kodzie w pamięci ROM (lub NVRAM lub czymś innym), to teoretycznie taki procesor mógłby załadować system operacyjny z dysku do pamięci RAM i rozpocząć wykonując to.
W rzeczywistości taki procesor może nawet wykonywać instrukcje bez ładowania ich do pamięci RAM. Nie ma teoretycznego powodu, dla którego komputer nie mógłby użyć dysku twardego jako podstawowej pamięci. Ale byłoby to bardzo, bardzo wolne.
Oznaczałoby to posiadanie dodatkowego kodu w procesorze, aby uzyskać dostęp do dysku, i podłączenie pewnych koncepcji dotyczących dysków, takich jak tablice partycji i systemy plików do procesora. Procesory w dzisiejszych czasach są wystarczająco duże, aby to zrobić, ale nie byłoby to zbyt elastyczne ani wydajne podejście do projektowania procesora.
źródło
Nie potrzebuje tego!
To, co często nazywa się BIOS, to zestaw 3 rzeczy.
źródło