BIOS

Z Wikipedii, wolnej encyklopedii
(Przekierowano z BIOS setup)
Skocz do: nawigacja, szukaj
Nowoczesny układ BIOS

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. Posiada on własną pamięć, w której znajdują się informacje dotyczące daty, czasu oraz danych na temat wszystkich urządzeń zainstalowanych na naszym komputerze. Jest to program zapisany w pamięci ROM płyty głównej oraz innych kart rozszerzeń takich jak np. karta graficzna.

Obecnie[od kiedy?] większość BIOS-ów zapisywana jest w pamięciach typu EEPROM, co umożliwia ich późniejszą aktualizację.

Działanie[edytuj | edytuj kod]

W wypadku płyty głównej BIOS testuje sprzęt po włączeniu komputera, przeprowadza POST, zajmuje się wstępną obsługą urządzeń wejścia/wyjścia, kontroluje transfer danych pomiędzy komponentami takimi jak dysk twardy, procesor czy napęd CD-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ść testowania 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órzy producenci[kto?] sprzętu komputerowego umieszczają na płytach głównych 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[edytuj | edytuj kod]

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

Lista przykładowych funkcji[edytuj | edytuj kod]

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 linii 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 tez być niedostępne dla programistów pracujących w innych, niż wymienione wyżej, systemach operacyjnych.

Funkcja Opis
00h Sprowadza wewnętrzne rejestry kontrolera do ściśle określonego stanu początkowego. Operacja, która wykonywana jest aktualnie zostaje przerwana.
01h Zostaje 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.
02h Jeden 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.
03h Funkcja 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 ES: BX) nawet wtedy, gdy nie posiadają one wyłącznie danych, które zostały umieszczone tam przez programistę.
04h Funkcja przeprowadzając czytanie próbne, sprawdza poprawność kodów ECC.
05h Sektory ś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.
07h Zostaje 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.
08h Funkcja informacyjna. Dostarcza informacje na temat parametrów geometrycznych napędu.
09h Nastę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.

0Ah Zostają 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.
0Bh Sektory 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.
0Ch Zostaje aktywowana określona głowica i ustawiana nad żądanym cylindrem.
0Dh Następuje reset napędu.
0Eh Do wskazanego obszaru pamięci operacyjnej zostaje przesłana aktualna zawartość 512-bajtowego bufora kontrolera. Nie są czytane żadne dane z dysku.
0Fh Do bufora kontrolera (ze wskazanego obszaru pamięci) transmitowane jest 512 bajtów. Nie są zapisywane żadne dane na dysk.
10h Funkcja ta służy do sprawdzania gotowości dysku do wykonywania poleceń.
11h Następuje kalibracja czyli funkcja ustawia głowicę nad ścieżką zerową.
12h Zostaje sprawdzona pamięć RAM kontrolera dysku twardego. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
13h Zostaje 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ę.
19h Funkcja 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.
41h Funkcja sprawdza, czy dysk jest zgodny ze specyfikacją EIDE. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
48h Następuje odczytanie parametrów dysku twardego EIDE. Nie każda wersja BIOS-u ma opracowaną tę funkcję.

Zobacz też[edytuj | edytuj kod]

WiktionaryPl nodesc.svg
Zobacz hasło BIOS w Wikisłowniku

Przypisy

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

Bibliografia[edytuj | edytuj kod]

  • Anatomia PC Wydawnictwa Helion, wydanie 4.

Linki zewnętrzne[edytuj | edytuj kod]