Główna » jak » Co robi mój BIOS po uruchomieniu?

    Co robi mój BIOS po uruchomieniu?

    Kiedy twój komputer zakończy proces uruchamiania i jesteś w środku brzęczenia systemu operacyjnego, czy jest cokolwiek do zrobienia BIOS??

    Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - podsekcji Stack Exchange, grupy dyskusyjnej poświęconej tematyce społecznościowej.

    Pytanie

    Czytnik SuperUser Indrek stawia pytanie związane z BIOS-em:

    Zawsze zastanawiałem się, czy BIOS (oprócz prowadzenia testu POST, uruchamiania bootloadera i przekazywania kontroli do systemu operacyjnego po naciśnięciu przycisku zasilania) ma jakiś cel lub funkcję, gdy system operacyjny jest uruchomiony?

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

    W rzeczy samej? Jaką funkcję ma BIOS poza kluczową rolą przy uruchamianiu komputera?

    Odpowiedzi

    Dzięki uprzejmości Mechanical Feedera firmy SuperUser, przegląd tego, jak zmieniła się rola systemu BIOS w czasie i co to jest i czego nie robi dzisiaj: 

    Rola BIOS-u

    Z nowoczesnymi systemami operacyjnymi, praktycznie żaden. 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ń (na przykład dostępu do dysku), wywołując przerwania.

    Dzięki nowoczesnym systemom operacyjnym bootloader szybko przechodzi w tryb 32- lub 64-bitowy i wykonuje jądro systemu operacyjnego. Jądro może rejestrować 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 operacje kod, 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 nawijanie się nawzajem, wdrażając własne schematy uprawnień).

    Aby współdziałać 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 działania systemu operacyjnego, jego funkcje są nadal używane peryferyjnie. Na przykład, gdy komputer śpi, system operacyjny nie działa, a 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 opierał się na oprogramowaniu sprzętowym specyficznym dla platformy w celu określenia zasad zarządzania energią i konfiguracji".

    Zauważ, że oficjalnie "BIOS" odnosi się do konkretnego interfejsu oprogramowania układowego, ale termin ten jest powszechnie używany w odniesieniu do oprogramowania komputerowego w ogóle. Niektóre najnowsze komputery (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.

    Inny współpracownik SuperUser, Simon Richter, daje nam przegląd rzeczy, które wciąż robi 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ą:

    • modyfikowanie zegarów procesora i magistrali
    • włączanie / wyłączanie urządzeń płyty głównej
    • kontrola mocy portu rozszerzenia
    • suspend-to-disk i suspend-to-RAM
    • wznów ustawienia zdarzeń

    Suspend-to-disk jest zaimplementowany w systemie operacyjnym przez większość czasu, ponieważ system operacyjny może przywrócić jego stan szybciej (tylko stan jądra jest ponownie ładowany, a stan programu zamieniony, gdy jest wymagany, który jest znacznie szybszy niż ponowne ładowanie całej pamięci RAM), ale funkcja pozostaje w specyfikacji.

    W systemie operacyjnym nie można zaimplementować funkcji Suspend-to-RAM, ponieważ polega ona na pominięciu przez system BIOS inicjalizacji i testowania pamięci RAM, dlatego system operacyjny potrzebuje interfejsu API, aby poinformować system 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.

    Interfejsem systemu operacyjnego dla wszystkich usług BIOS jest fragment 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 zaimplementowane, 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.