od 2025-11 → zaktualizować na podstawie najświeższych informacji, od 2025-01 →dodać przypisy do treści niemających odnośników do źródeł. Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się wdyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon{{Dopracować}} z tego artykułu.
BIOS (akronimang.Basic Input/Output System – podstawowy system wejścia-wyjścia) – zapisany wpamięci stałej zestaw podstawowych procedur pośredniczących pomiędzysystemem operacyjnym asprzę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ęciROMpłyty głównej oraz innychkart rozszerzeń takich, jak np.karta graficzna. Oryginalny BIOS firmy IBM wyróżnia zawarcie w nim języka programowaniaROM Basic.
BIOS był jedyną zastrzeżoną częścią otwartej architekturyIBMPC. Sklonowanie go, dziękiinż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 przezUEFI, większość BIOS-ów umieszczano w pamięciach typuflash, co umożliwiało ich późniejszą aktualizację. Przerwanie procesu aktualizacji BIOS, np. przez zanik zasilania, może spowodować, że komputer przestanie się uruchamiać. Nowoczesne płyty główne posiadają mechanizmy odzyskiwania BIOS, takie jak Dual BIOS lub funkcje aktualizacji BIOS bez uruchamiania systemu[3].
Za pomocą wbudowanego w BIOSinterfejsu[4], nazywanegoBIOS 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ęciRAM), 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 ipamięci RAM, jednak nie jest to zalecane, ponieważ może doprowadzić do przeciążenia urządzenia, a nawet jego uszkodzenia.
Niektórepłyty główne zawierają dodatkowy moduł pamięci flash, która stanowi zabezpieczenie dla podstawowego BIOS-u, gdy ten zostanie np. uszkodzony/zniszczony przezwirus 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 firmaGigabyte Technology nazywaDual BIOS[5].
Każdy producent płyt głównych dba o ich zabezpieczenie, za pomocąhasła[6]. 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 jesthasło power ON[7], 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.
Lista przykładowych funkcji dla przykładowego systemu BIOS, dostępnych dla programistów w językach programowaniadrugiej itrzeciej generacji, operujących wsystemach operacyjnych z rodzinyDOS oraz innych systemach zjądrem hybrydowym.
Lista zawiera wybrane instrukcje systemów BIOS powszechnie stosowanych pod koniec XX wieku w komputerach klasyXT/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 kilkasektorów zdysku 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łymibajtami 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 512bajtó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ę.