Czy sterowniki są częścią systemów operacyjnych?

15

Mam trudności ze zrozumieniem, co zawiera system operacyjny, a co nie. Czy sterownik urządzenia, taki jak sterownik drukarki lub sterownik graficzny, jest częścią systemu operacyjnego? Myśląc o definicji systemu operacyjnego, uważam, że sterowniki są częścią systemów operacyjnych.

Ognista Mrówka
źródło
6
Tak i nie. Są częścią systemu operacyjnego, ponieważ działają na niskim poziomie i mają dostęp do wewnętrznych interfejsów. I wiele z nich ma kluczowe znaczenie dla działania systemu operacyjnego. Są to jednak na ogół oddzielne części „wymienne” i często budowane przez inną firmę niż system operacyjny. Zależy od twojej definicji „systemu operacyjnego” i nie ma jednej firmy.
Daniel R Hicks,
Proszę zdefiniować „włączone”. Czy na pewno znajdziesz się na dysku DVD systemu Windows w celu instalacji na nowym dysku? Lub koncepcyjnie część systemu operacyjnego?
trociny

Odpowiedzi:

13

Tak, sterowniki są częścią systemu operacyjnego. Działają na tym samym poziomie uprawnień co jądro systemu operacyjnego. Aby napisać sterownik, musisz wiedzieć sporo o wewnętrznych elementach systemu operacyjnego. Rolą sterowników jest zapewnienie abstrakcji sprzętu, aby aplikacje mogły go używać za pośrednictwem interfejsu API systemu operacyjnego (interfejsu programowania aplikacji) zamiast znać jego szczegółowe informacje. W wielu przypadkach pozwala także na współdzielenie tego samego sprzętu między wieloma aplikacjami jednocześnie.

Coś, co wprowadza użytkowników w błąd, myśląc, że sterowniki mogą nie być częścią systemu operacyjnego, polega na tym, że wielu dostawców dostarcza sterowniki do sprzętu, który produkują niezależnie od systemu operacyjnego. Rzeczywiście wiele sterowników jest prezentowanych jako moduły ładowalne, które można ładować, a następnie dynamicznie brać udział w systemie operacyjnym. Gdy nie będą już używane, można je „odłączyć” od systemu operacyjnego i nadal działa normalnie.

Sterowniki, które można załadować lub nie, są zawsze specyficzne dla urządzeń, które powinny udostępnić systemowi, więc chociaż czasami są „opcjonalnymi” częściami systemu operacyjnego, biorą w nim udział podczas działania.

Claudio
źródło
1
Nie zgadzam się (ale wstrzymam się od głosu), po prostu z powodu tego, jak to powiedziałeś, sterowniki NIE są zawsze uwzględnione lub używane. System operacyjny to jądro. Kropka. Eksplorator Windows nie jest częścią systemu operacyjnego, chociaż jest z nim dostarczany. Jądro jest faktyczną częścią przetwarzania, więc uważam, że system operacyjny. Inne uwzględnione elementy nie są częścią systemu operacyjnego
Kanadyjczyk Łukasz
Ponadto możesz uruchamiać sterowniki na poziomie użytkownika, więc nie musisz uruchamiać ich na poziomie jądra, chociaż większość z nich jest.
Matt.
Widzę twój punkt, Luke. Istnieje wiele opcjonalnych urządzeń, które nie są potrzebne do działania systemu, więc mogę zgodzić się, że ich sterowniki nie są częścią systemu operacyjnego w tym sensie . Jak powiedział @Matt, niektóre sterowniki mogą nawet być sterownikami trybu użytkownika (wiele sterowników drukarek jest), ale mam na myśli większość sterowników, szczególnie strukturalnych (wideo, kontrolery dysków itp.) Są sterownikami trybu jądra i jako takie są lub po załadowaniu stają się prawdziwą częścią działającego jądra. Ponieważ jądro nie jest w stanie zrobić nic pożytecznego samodzielnie, myślę, że wystarczy, aby powiedzieć, że sterowniki są (lub stają się) częścią systemu operacyjnego.
Claudio,
1
To naprawdę pytanie tak / nie. Chociaż technicznie sterowniki nie są dołączone do systemu operacyjnego, będziesz ich potrzebować do komunikacji z różnymi urządzeniami. Na przykład wideo. Złożysz żądanie do jądra, a następnie jądro prześle żądanie do sterownika ekranu, a następnie z powrotem informacje, abyś mógł coś zobaczyć.
Matt
3
@Luke - Najwyraźniej przyznajesz, że jądro jest częścią systemu operacyjnego, jeśli nie całego systemu. Czy widziałeś kiedyś kod źródłowy systemu operacyjnego lub jądra? O ile nie pracujesz dla MS lub nie podpiszesz NDA, nigdy nie zobaczymy kodu jądra systemu Windows. Ale jądro Linuksa jest oprogramowaniem typu open source, a wszystkie (niezastrzeżone) sterowniki Linuksa są częścią kodu źródłowego jądra. Kod źródłowy jądra Linux nie jest podzielony na część jądra i część sterownika; drzewo źródłowe zawiera wszystkie moduły rdzenia i sterownika. Spodziewałbym się, że MS w podobny sposób będzie obsługiwać swój kod źródłowy dla Windows.
trociny
5

Termin „OS” może oznaczać wiele rzeczy.

Chociaż w większości systemów operacyjnych jądro jest kawałkiem kodu, który zarządza i „uruchamia” wszystko, i arbitrażuje dostęp do sprzętu, zwykle nie jest w stanie samodzielnie zrobić nic interesującego - jego zadaniem jest zapewnienie środowiska do uruchamiania aplikacji ” na górze ”, jeśli to. Definicja systemu operacyjnego dla wielu osób obejmuje narzędzia, powłoki i programy, które tworzą znane, znormalizowane środowisko.

Sterowniki zależą od jądra i prawdopodobnie najbardziej poprawne jest stwierdzenie, że „rozszerzają” go, podobnie jak wtyczki. Linux obsługuje pojęcie „ładowalnych modułów jądra” - a wszystkie sterowniki urządzeń mogą być ładowalnymi modułami jądra. Możliwe jest również zbudowanie jądra, w którym jeden lub więcej z tych modułów jest „wbudowanych” i nie jest oddzielnych od jądra. Tak więc naprawdę można zbudować jądro „bez modułów” pod Linuksem i nie będzie on w stanie obsługiwać żadnego sprzętu innego niż wbudowane moduły.

Nie znam się dobrze na systemie Windows, ale uważam, że oprócz kilku „miniportów” wszystkie sterowniki są plikami zewnętrznymi, które są ładowane przy starcie systemu. Jeśli trochę zagłębisz się w tworzenie usług w systemie Windows, wydaje się, że sterowniki to tak naprawdę tylko specjalne formy usług w systemie Windows. Niektóre programy instalują sterowniki w celu uzyskania dostępu do sprzętu na niskim poziomie, ale niekoniecznie w celu kierowania urządzeniem, zazwyczaj są to sterowniki „niezgodne z Plug and Play” w Menedżerze urządzeń. W ten sposób wydaje się również, że sterowniki pełnią tę samą funkcję koncepcyjnie, co moduły jądra z możliwością ładowania w systemie Linux.

Dla uproszczenia powiedziałbym, że są one częścią systemu operacyjnego, ponieważ tak naprawdę nie można ich używać bez systemu operacyjnego i nie są użyteczne, dopóki system operacyjny nie zostanie uruchomiony, ale narysowana linia jest w każdym razie dowolna.

LawrenceC
źródło
1

Żadne sterowniki nie są częścią systemu operacyjnego. Można powiedzieć, że sterowniki pomagają systemowi OS komunikować się z urządzeniem lub sprzętem. System operacyjny nie zawiera domyślnie wszystkich sterowników, jak w Windows XP i Vista, ale w Windows 7 zawiera większość niezbędnych sterowników, więc nie mylcie, że nie są częścią systemu operacyjnego.

Deb
źródło
To, że mówisz, że drviery nie są częścią systemów operacyjnych, dowodzi, że nie wiesz, co robisz. Windows XP zawiera wiele tych samych sterowników, które zawierają Windows Vista i Windows 7. Microsoft dołożył wiele starań, aby uwzględnić jeszcze więcej ogólnych sterowników urządzeń dla tych wydań.
Ramhound,
tak. bez sterownika nie możemy korzystać z żadnego urządzenia. Możemy więc powiedzieć, że sterownik pomaga systemowi OS komunikować się z urządzeniem, a jeśli chodzi o pytanie, powiem, że niektóre są częścią systemu operacyjnego, a niektóre nie. Istnieje wiele sterowników, które nie są dostarczane z systemem operacyjnym.
Deb
Technicznie nawet jeśli sterownik nie jest dostarczany z systemem operacyjnym, jest on częścią systemu operacyjnego podczas instalacji i korzystania z niego. Dowodem na to jest to, że źle napisany sterownik może zablokować cały system, ponieważ nie jest to zwykła aplikacja, która może zostać zabita przez system operacyjny, ale jego część.
Claudio,