Dlaczego systemy operacyjne (zwykle?) Nie mają dostępu do ustawień BIOS-u?

20

Czy płyta główna nie zapewnia magistrali między procesorem a układem BIOS po uruchomieniu? Jeśli tak, dlaczego nie?

Jeśli procesor może kontrolować prędkość wentylatora, nie rozumiem, dlaczego nie powinien być w stanie kontrolować konfiguracji BIOS.

Dmitry
źródło
O ile mi wiadomo, kiedy BIOS wciąga bootloader, przestaje on działać, należy oczekiwać w przypadku IPMI.
Linef4ult
Niektórzy producenci płyt głównych mają do tego narzędzia, ale są one specyficzne dla tej płyty głównej, Windows nie ma jej wbudowanej, ponieważ może to być zła wiadomość, jeśli złośliwe oprogramowanie go użyje lub przeciętny użytkownik bawi się w konfiguracji bios.
Moab
Jak już odpowiedział DavidPostill. Windows (i inne systemy operacyjne) często mają dostęp do BIOS-u. Zależy to jednak od chipsetu i płyty głównej i może nie działać w 100% przed czasem. Jeśli przejdziesz z oprogramowania BIOS do oprogramowania UEFI, zyskasz jednak większą kontrolę.
Hennes,
Minęło trochę czasu, odkąd widziałem komputer z faktycznym systemem BIOS. Jeśli masz na myśli UEFI, jest tam pod /sys/firmware/efiLinuksem.
Dmitrij Grigoryev
Po przekazaniu kontroli do systemu operacyjnego BIOS nie jest używany. Możesz nawet wyjąć układ BIOS, aby zaprogramować inny w przypadku przywracania / ponownego uruchamiania uszkodzonego systemu BIOS.
AStopher

Odpowiedzi:

44

Dlaczego systemy operacyjne (zwykle?) Nie mają dostępu do ustawień BIOS-u?

Na powyższe pytanie nie można odpowiedzieć, ponieważ system operacyjny może uzyskać dostęp do systemu BIOS.

Odpowiem poniżej pytanie, które można było zadać.


W jaki sposób systemy operacyjne mają dostęp do ustawień BIOS?

W systemach Windows i Unix system operacyjny może odczytać BIOS.

Windows

Przykład (użycie wmic):

F:\test>wmic bios /?

BIOS - Basic input/output services (BIOS) management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].

USAGE:

BIOS ASSOC [<format specifier>]
BIOS CREATE <assign list>
BIOS DELETE
BIOS GET [<property list>] [<get switches>]
BIOS LIST [<list format>] [<list switches>]


F:\test>wmic bios list brief
Manufacturer              Name                                        SerialNumber      SMBIOSBIOSVersion  Version
American Megatrends Inc.  BIOS Date: 09/05/11 11:20:58 Ver: 04.06.03  27546064-5001600  R1190V3            Sony - 20110905

System Windows może również zapisywać w systemie BIOS (niektórzy producenci płyt głównych udostępniają aktualizator systemu BIOS dla systemu Windows).

Zobacz na przykład, jak sflashować BIOS w razie potrzeby za pośrednictwem systemu Windows lub BIOS .

Unix

Unix ma podobne polecenia.

  • biosdecode analizuje pamięć BIOS i drukuje informacje o wszystkich strukturach.

  • Możesz wykonywać wywołania BIOS w czasie rzeczywistym od użytkownika root za pomocą aplikacji C, które zawierają wbudowany ASM (kod asemblera).

Źródło Jak zrzucić dane systemu BIOS do pliku


Dalsza lektura

DavidPostill
źródło
5
Chcę dodać, że przed Windows XP można było zrobić - co według mojej najlepszej wiedzy można określić jako - podstępny sposób na uzyskanie dostępu do konfiguracji z debug.com - pamiętaj, że istniała sztuczka, aby usunąć ochronę hasłem niektórych bios modele. Wyszukiwanie w Internecie "debug.com" bios passwordwydaje się przynosić pewne istotne informacje na ten temat.
Theraot,
1
wciąż nie odpowiada na
pytanie
@Zaibis Nie musi odpowiadać na pytanie „dlaczego”. System operacyjny może uzyskać dostęp do systemu BIOS, więc pytanie (i udzielenie odpowiedzi), dlaczego ... niezdolny ... jest bezsensownym pytaniem. Wyjaśniłem trochę odpowiedź.
DavidPostill
1
"Unable" should be replaced by "able" as the OS can access the BIOS.Jeśli chciałeś, aby to była fraza, powinieneś ją usunąć. Skoro podążając za twoją radą, pozostaje to pytanie, na które nawet nie odpowiadasz.
Zaibis,
1
@Zaibis <westchnienie> Wszyscy inni rozumieli odpowiedź (w tym OP, który zaakceptował odpowiedź). Zaktualizowałem go ponownie specjalnie dla Ciebie;)
DavidPostill
19

Mogą, ale nie ma zbyt wiele miejsca na ustandaryzowany interfejs do ustawień tam, szczególnie jeśli masz na myśli właściwe „BIOS” (tj. Przed UEFI).

Niektóre części systemu BIOS podlegają umowom programowym między systemem BIOS a systemem operacyjnym działającym na nim. Dawno temu procedury BIOS-u były używane do wszelkiego rodzaju codziennych zadań, takich jak czytanie i zapisywanie dysków, wyświetlanie rzeczy na ekranie i drukowanie na podłączonej drukarce, stąd nazwa „podstawowy system wejścia / wyjścia”. Jeśli system BIOS został dopasowany do sprzętu, system operacyjny mógłby obsługiwać różne warianty sprzętowe bez konieczności posiadania własnych procedur dla wszystkich tych rzeczy. Ale w miarę jak sprzęt i systemy operacyjne stawały się coraz bardziej skomplikowane i przerastały ograniczony zestaw funkcji BIOS-u, systemy operacyjne zaczęły dostarczać własne sterowniki do prawie wszystkiego, opierając się tylko na BIOSie przy uruchamianiu, zarządzaniu energią i pobieraniu informacji o konfiguracji systemu.

Ale BIOS również stał się bardziej skomplikowany i zyskał wszelkiego rodzaju ustawienia i możliwości, które nie były kontrolowane przez interfejs OS-BIOS, a nawet dla rzeczy, które się tam znajdują, określa tylko wyniki , a nie implementację . Oznacza to, że każdy producent BIOS jest wolny, aby robić rzeczy, jak chcą, że są wolne, aby zmienić ten stan rzeczy, gdy tylko jak tak długo, jak systemy operacyjne biec, a nie będą musieli powiedzieć każdemu dowolny szczegółów. Dostęp do danych przechowywanych przez BIOS to bułka z masłem, ale jeśli masz narzędzie, które może odczytać dane lub może je zmodyfikować w sposób, który BIOS naprawdę zrozumie, prawdopodobnie zostało to zrobione przez Producent BIOS sam w sobie, lub jest to wynik inżynierii odwrotnej.

Hobbs
źródło
Byłoby fajnie, gdybyś mógł opisać część „bułka z masłem” w szczegółach technicznych. Załóżmy na przykład, że wiem, jak wykonać dowolny kod C w trybie jądra; teraz jak mam ręcznie zrzucić BIOS?
Mehrdad,
6
@ Mehrdad Obszar danych BIOS i Rozszerzony obszar danych BIOS są mapowane na adresy pamięci głównej, dzięki czemu można je odczytywać i zapisywać bezpośrednio z odpowiednimi uprawnieniami. (Zwykle nie chcesz tego robić ...) Zobacz na przykład wiki.osdev.org/Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29 i stanislavs.org/helppc/bios_data_area.html i bioscentral.com/misc /bda.htm, aby uzyskać więcej informacji na temat układu BDA (pierwszy zawiera również krótkie wprowadzenie do jednego z wariantów układu EBDA). Dodaj „Obszar danych BIOS” i „Rozszerzony obszar danych BIOS” do swojej ulubionej wyszukiwarki, aby uzyskać więcej.
CVn