BIOS

© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Układ scalony z BIOS-em American Megatrends
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Nowoczesny układ BIOS
Program konfiguracyjny BIOS Award Software

BIOS (akronim ang. Basic Input/Output System – podstawowy system wejścia-wyjścia) – zapisany w pamięci stałej zestaw podstawowych procedur pośredniczących pomiędzy systemem operacyjnym a sprzętem. Jest wyposażony w pamięć konfiguracji, w której znajdują się informacje dotyczące daty, czasu oraz danych na temat wszystkich urządzeń zainstalowanych w komputerze. Jest to program zapisany w pamięci ROM płyty głównej oraz innych kart rozszerzeń takich, jak np. karta graficzna. Oryginalny BIOS firmy IBM wyróżnia zawarcie w nim języka programowania ROM Basic.

Od połowy lat 90. XX w. aż do zastąpienia tego typu układów przez UEFI, większość BIOS-ów umieszczano w pamięciach typu flash, co umożliwiało ich późniejszą aktualizację.

Działanie

W wypadku płyty głównej BIOS przeprowadza POST, zajmuje się wstępną obsługą urządzeń wejścia/wyjścia, kontroluje transfer danych pomiędzy komponentami takimi jak dysk twardy, stacja dyskietek, procesor czy napęd CD-ROM/DVD-ROM. Inicjuje program rozruchowy. BIOS potrzebny jest w komputerach osobistych ze względu na architekturę płyt głównych, gdzie dzięki ACPI kontroluje zasilanie, jak również monitoruje temperaturę itp.

Za pomocą wbudowanego w BIOS interfejsu[1], nazywanego BIOS setup, można zmieniać ustawienia BIOS-u, np. parametry podłączonych dysków twardych lub zachowanie się komputera po jego włączeniu (np. szybkość taktowania pamięci RAM), a także włączać/wyłączać niektóre elementy płyty głównej, np. porty komunikacyjne. Za pomocą niektórych BIOS-ów można też przetaktowywać procesor i pamięci RAM, jednak nie jest to zalecane, ponieważ może doprowadzić do przeciążenia urządzenia, a nawet jego uszkodzenia.

Niektóre płyty główne zawierają dodatkowy moduł pamięci flash, która stanowi zabezpieczenie dla podstawowego BIOS-u, gdy ten zostanie np. uszkodzony/zniszczony przez wirus komputerowy lub w niewłaściwy sposób zaktualizowany. W takim przypadku zawartość zapasowego układu przepisywana jest do pierwszego, podstawowego modułu pamięci flash. Mechanizm ten firma Gigabyte Technology nazywa Dual BIOS[2].

Producenci

W komputerach osobistych klasy PC najczęściej stosowane są BIOS-y następujących producentów:

  • American Megatrends Incorporated (AMI)
  • Award Software International / Phoenix Technologies (Phoenix BIOS) (firmy połączyły się w 1998 roku)
  • General Software (General Software)
  • Insyde Software (Insyde)
  • MicroID Research (MRBIOS)

Lista przykładowych funkcji

Lista przykładowych funkcji dla przykładowego systemu BIOS, dostępnych dla programistów w językach programowania drugiej i trzeciej generacji, operujących w systemach operacyjnych z rodziny DOS oraz innych systemach z jądrem hybrydowym.

Lista zawiera wybrane instrukcje systemów BIOS powszechnie stosowanych pod koniec XX wieku w komputerach klasy XT/AT. Późniejsze systemy BIOS mogą zawierać zupełnie inną listę funkcji, mogą one też być niedostępne dla programistów pracujących w innych, niż wymienione wyżej, systemach operacyjnych.

FunkcjaOpis
00hSprowadza wewnętrzne rejestry kontrolera do ściśle określonego stanu początkowego. Operacja, która wykonywana jest aktualnie zostaje przerwana.
01hZostaje odczytany status ostatniej operacji. Funkcja odtwarza w rejestrze AH bajt statusu taki sam jak po ostatnio przeprowadzonej operacji bez względu na to jak dawno się zakończyła.
02hJeden lub kilka sektorów z dysku zostaje odczytanych przez funkcję 02h. W pamięci umiejscawiane są wszystkie przeczytane sektory, zaczynając od adresu podanego w ES:BX, ewentualnie zamazując inne dane. Do obowiązku programisty należy zarezerwowanie odpowiedniej ilości wolnego miejsca.
03hFunkcja ta jest odpowiednikiem funkcji 02h. Różnica polega na tym, że jako sektor zapisywane są zawsze pełne 512-bajtowe bloki pamięci (zaczynając od adresu podanego w rejestrach ES:BX) nawet wtedy, gdy nie posiadają one wyłącznie danych, które zostały umieszczone tam przez programistę.
04hFunkcja przeprowadzając czytanie próbne, sprawdza poprawność kodów ECC.
05hSektory ścieżki lub cylindra zostają sformatowane. Dla każdego sektora oddzielnie w pamięci należy przygotować odpowiednie, czterobajtowe bloki danych. Funkcja ta nie może być stosowana w dyskach posiadających własny zintegrowany kontroler np. IDE lub posługujących się tłumaczeniem.
06hŚcieżka posiadająca uszkodzony sektor (więcej niż jeden) jest znakowana jako zła. Uniemożliwia to zapis jakichkolwiek danych. Funkcja obsługuje prawidłowo jedynie kontroler dysku twardego modelu XT. Funkcja ta nie może być stosowana w dyskach posiadających własny zintegrowany kontroler np. IDE lub posługujących się tłumaczeniem.
07hZostaje sformatowany cały dysk zaczynając od podanego cylindra. Funkcja obsługuje prawidłowo jedynie kontroler dysku twardego modelu XT. Funkcja ta nie może być stosowana w dyskach posiadających własny zintegrowany kontroler np. IDE lub posługujących się tłumaczeniem.
08hFunkcja informacyjna. Dostarcza informacje na temat parametrów geometrycznych napędu.
09hNastępuje dopasowanie geometrycznych parametrów napędu. Jeżeli parametry geometryczne dysku twardego nie odpowiadają żadnemu z modeli „umieszczonych” na stałe w programie setup, zazwyczaj jest możliwość wyboru typu dodatkowego, zazwyczaj 47. Pozwala to na swobodne określenie geometrii napędu. Do dwóch 16 – bitowych tablic (oddzielnie dla pierwszego i drugiego dysku systemowego) przesyłane są informacje, które wprowadził użytkownik.

Nieco inaczej od reszty traktowane są pozycje 41h i 46h tablicy wektorów przerwań, ponieważ nie wskazują na żadną z procedur obsługi przerwań. Ustawiane są na początkowe adresy tych tablic z parametrami dysków. Budowa tych tablic jest taka sama jak zwracana przez funkcję 08h. Funkcja 09h działa więc na zasadzie odnalezienia (przy pomocy wskaźników INT41h oraz INT46h) tablic z parametrami geometrycznymi i pokazanie zawartości do „dyspozycji” BIOS-u.

0AhZostają odczytane sektory (od jednego do 127) i umieszczone w pamięci operacyjnej (w określonym buforze). System ECC kontrolera nie przeprowadza żadnych korekcji. Dane ze wszystkich sektorów przesyłane są w niezmienionym stanie.
0BhSektory od jednego do 127 zostają zapisane (razem z bajtami ECC). Sektory pobierane są z określonego bufora w pamięci operacyjnej. System ECC kontrolera nie przeprowadza żadnych korekcji. Dane ze wszystkich sektorów przesyłane są w niezmienionym stanie. Funkcja ta daje możliwość sprawdzenia działania układów ECC. Aby to sprawdzić należy celowo zapisać sektor wraz ze złymi bajtami kontrolnymi. Potem należy poddać sektor próbie odczytu.
0ChZostaje aktywowana określona głowica i ustawiana nad żądanym cylindrem.
0DhNastępuje reset napędu.
0EhDo wskazanego obszaru pamięci operacyjnej zostaje przesłana aktualna zawartość 512-bajtowego bufora kontrolera. Nie są czytane żadne dane z dysku.
0FhDo bufora kontrolera (ze wskazanego obszaru pamięci) transmitowane jest 512 bajtów. Nie są zapisywane żadne dane na dysk.
10hFunkcja ta służy do sprawdzania gotowości dysku do wykonywania poleceń.
11hNastępuje kalibracja, czyli funkcja ustawia głowicę nad ścieżką zerową.
12hZostaje sprawdzona pamięć RAM kontrolera dysku twardego. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
13hZostaje przeprowadzony obszerny test napędu przez kontroler i zwrócenie błędu jeżeli wystąpi ewentualny błąd. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
19hFunkcja ta przydatna jest w razie konieczności transportu napędu, który (dysk) nie jest wyposażony w odpowiedni mechanizm, który to po wyłączeniu zasilania samoczynnie „parkuje” głowicę. Funkcja 19h przesuwa głowice nad cylinder. Ma to za zadanie chronić głowice, jak również powierzchnię magnetyczną przed ewentualnymi uszkodzeniami spowodowanymi wstrząsami.
41hFunkcja sprawdza, czy dysk jest zgodny ze specyfikacją EIDE. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
48hNastępuje odczytanie parametrów dysku twardego EIDE. Nie każda wersja BIOS-u ma opracowaną tę funkcję.

Zobacz też

Przypisy

  1. Mateusz Ryndak: Jak wejść do BIOS’u – laptop, komputer pc. [w:] Sprzęt [on-line]. pclive.pl, 2011-04-11. [dostęp 2013-08-19]. [zarchiwizowane z tego adresu (2013-08-06)]. (pol.).
  2. Dual BIOS. [w:] Cechy BIOSu GIGABYTE X58 [on-line]. Gigabyte.pl. [dostęp 2013-08-19]. (pol.).

Bibliografia

  • Anatomia PC Wydawnictwa Helion, wydanie 4.

Linki zewnętrzne

Media użyte na tej stronie

Elitegroup 755-A2 - Phoenix Bios D686-6679.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Elitegroup 755-A2 - Phoenix Bios D686
Elitegroup 761GX-M754 - AMIBIOS (American Megatrends) in a Winbond W39V040APZ-5491.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Elitegroup 761GX-M754 - AMIBIOS (American Megatrends) in a Winbond W39V040APZ - Flash memory
Award BIOS setup utility.png
A depiction of the Award BIOS setup utility.