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[1]. 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.
BIOS był jedyną zastrzeżoną częścią otwartej architektury IBM PC. Sklonowanie go, dzięki inżynierii wstecznej przez firmę Compaq, umożliwiło powstanie wielu klonów IBM PC oraz powstanie nowego rynku komputerów osobistych[2].
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[3], 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[4].
Każdy producent płyt głównych dba o ich zabezpieczenie, za pomocą hasła[5]. Blokady tego typu umożliwiają zabezpieczenie komputera przed uruchomieniem przez niepowołane osoby, bądź uniemożliwienie im dokonywania zmian w konfiguracji np. bootowania z nośników DVD / CD / USB itp. Najbardziej popularnym hasłem jest hasło power ON[6], czyli hasło, które od razu po uruchomieniu komputera, musi zostać wpisane przez użytkownika. Innym rodzajem blokady jest, blokada dostępu do bios, czyli tzw. hasło bios - ma ona na celu uniemożliwienie wprowadzenia zmian w ustawieniach bios. Aby dokonać zmian, należy wprowadzić hasło dostępowe do bios. Zabezpieczenia tego typu najczęściej stosowane są w firmach przez Administratorów Systemu.
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.
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 podanego w rejestrach 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ż
Przypisy
- ↑ Metzger i Jełowicki 1998 ↓, s. 96.
- ↑ Triumph of the Nerds (mini serial). Internet Archive.
- ↑ 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.).
- ↑ Dual BIOS. [w:] Cechy BIOSu GIGABYTE X58 [on-line]. Gigabyte.pl. [dostęp 2013-08-19]. (pol.).
- ↑ Metzger i Jełowicki 1998 ↓, s. 675-676.
- ↑ Jak skutecznie zabezpieczyć laptopa i utrudnić dostęp do niego w przypadku jego utraty. [online], 14 lipca 2021 [dostęp 2023-11-20] (pol.).
Bibliografia
- Piotr Metzger , Adam Jełowicki , Anatomia PC, Wyd. 4 popr. i uzup, Gliwice: "Helion", 1998, ISBN 978-83-7197-082-5 [dostęp 2023-11-20] .
Linki zewnętrzne
- BiosCentral.com (ang.)
- BIOS Optimization Guide (ang.)