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.