2Aug

Co robi mój BIOS po uruchomieniu?

Gdy komputer zakończy proces uruchamiania i jesteś w środku brzęczenia systemu operacyjnego, czy pozostało coś do zrobienia dla BIOS-u?

Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, grupy napędów społecznościowych Q & A.

Pytanie

Czytnik SuperUser Indrek stawia to pytanie związane z BIOSem:

Zawsze zastanawiałem się, czy BIOS( oprócz prowadzenia POST, uruchamiania bootloadera i przekazywania kontroli do systemu operacyjnego po naciśnięciu przycisku zasilania) ma jakiś cel lub funkcję, podczas gdy operującysystem działa?

Czy system operacyjny komunikuje się z BIOS-em podczas uruchamiania, a jeśli tak, to w jaki sposób?

Rzeczywiście? Jaką funkcję ma BIOS poza swoją kluczową rolą przy uruchamianiu komputera?

Odpowiedzi

Dzięki uprzejmości nadzorcy SuperUser Mechaniczny ślimak, przegląd roli, w jakiej zmieniła się rola BIOSu w czasie i co to jest i czego nie robi dzisiaj:

Rola BIOS

W nowoczesnych systemach

praktycznie nie ma .Linus Torvalds powiedział podobno, że jego zadaniem jest "po prostu załadować system operacyjny i wydostać się stąd".

Starsze systemy operacyjne, takie jak MS-DOS, opierały się na BIOSie dla wielu zadań( np. Dostępu do dysku), wywołując przerwania.

W nowoczesnych systemach operacyjnych bootloader szybko przechodzi w tryb 32- lub 64-bitowy i wykonuje jądro systemu operacyjnego. Jądro może rejestrować swoje własne procedury obsługi przerwań, które mogą być wywoływane przez aplikacje przestrzeni użytkownika. Procedury jądra mogą być bardziej przenośne( ponieważ nie zależą od konkretnego sprzętu), bardziej elastyczne( producenci systemów operacyjnych mogą je zmieniać na żądanie, zamiast korzystać z sprzętu), bardziej wyrafinowane( mogą wykonywać dowolnie złożone operacjekod, a nie to, co zostało zaprogramowane w BIOS) i bardziej bezpieczne( ponieważ system operacyjny może kontrolować dostęp do współdzielonych zasobów i uniemożliwiać programom nawzajem się nawzajem wdrażać własne schematy uprawnień).

Aby wchodzić w interakcje z określonym sprzętem, systemy operacyjne mogą ładować i używać własnych sterowników urządzeń.Nie ma więc potrzeby, aby system operacyjny lub aplikacje w ogóle wywoływały większość procedur BIOS.W rzeczywistości ze względów bezpieczeństwa przerwań BIOS są nawet wyłączone. Ponieważ BIOS działa w 16-bitowym trybie rzeczywistym, trudniej jest wywoływać nowoczesne systemy operacyjne.

Podczas gdy korzystanie z BIOS-u jest bardzo ograniczone podczas pracy systemu operacyjnego, jego funkcje są nadal używane peryferyjnie. Na przykład, gdy komputer śpi, system operacyjny nie działa i ostatecznie sprowadza się do oprogramowania układowego, aby ustawić sprzęt na prawidłowy stan, aby wstrzymać i wznowić system operacyjny. Te zastosowania są zwykle ograniczone do ACPIcalls zamiast wywoływania pełnego interfejsu BIOS.ACPI to rozszerzenie systemu BIOS, które "zapewnia zarządzanie energią pod kontrolą systemu operacyjnego( OSPM), w przeciwieństwie do poprzedniego systemu centralnego BIOS-u, który polegał na oprogramowaniu układowym specyficznym dla platformy w celu określenia zasad zarządzania energią i konfiguracji".

Zwróć uwagę, że oficjalnie "BIOS" odnosi się do konkretnego interfejsu oprogramowania układowego, ale termin ten jest powszechnie używany w odniesieniu do oprogramowania układowego komputera. Niektóre z ostatnich komputerów( zwłaszcza Apple) zastąpiły BIOS( sensu strictu) z UEFI, co oczywiście jest tym, co nazywa się implementacją tych funkcji.

Aby uzyskać więcej informacji na temat zmniejszania się roli systemu BIOS w czasie, zobacz Wikipedia.

Kolejny współpracownik SuperUser, Simon Richter, przedstawia nam przegląd rzeczy, które wciąż wykonuje BIOS:

BIOS i zarządzanie energią

BIOS zapewnia szereg usług dla systemów operacyjnych, z których większość związana jest z zarządzaniem energią: modyfikacja

  • zegary procesora i magistrali
  • włączanie / wyłączanie urządzeń
  • kontrola portu rozszerzeń
  • zawieszanie na dysk i zawieszanie na pamięć RAM
  • przywracanie ustawień zdarzeń

Zawieszenie na dysk jest zaimplementowane w systemie operacyjnym przez większość czasu jako system operacyjnymoże przywrócić stan szybciej( tylko stan jądra jest ponownie ładowany, a stan programu zamieniony w razie potrzeby, który jest znacznie szybszy niż ponowne załadowanie całej pamięci RAM), ale funkcja pozostaje w specyfikacji.

Suspend-to-RAM nie może być zaimplementowany przez system operacyjny, ponieważ opiera się na BIOSie pomijając inicjalizację i testowanie pamięci RAM, więc system operacyjny potrzebuje interfejsu API, aby poinformować BIOS, że ma zamiar zostać wznowiony z bieżącą zawartością pamięci RAM.Aby zapewnić tę usługę, BIOS prosi system operacyjny o pozostawienie nienaruszonego obszaru pamięci RAM.

Interfejs systemu operacyjnego dla wszystkich usług BIOS jest fragmentem kodu maszyny wirtualnej, który musi zostać uruchomiony na emulatorze i który generuje niezbędne operacje wejścia / wyjścia w sprzęcie. W przypadku zawieszenia, jest to zazwyczaj realizowane, aby wykonanie jednego z zapisów sprzętowych spowodowało przerwanie, które przekazuje kontrolę do BIOS-u.

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.