Sterownik urządzenia – program lub fragment programu odpowiadający za dane urządzenie i pośredniczący pomiędzy nim a resztą systemu komputerowego. Zwykle uabstrakcyjnia pewne cechy urządzenia, choć może jedynie zajmować się kwestiami uprawnień dostępu i udostępniać urządzenie bez żadnej ingerencji. Wtedy program, który z niego korzysta, też jest w pewnym sensie sterownikiem.
W tradycyjnych systemach operacyjnych (Unix i inne) sterowniki znajdują się w jądrze systemu operacyjnego. W systemach operacyjnych z mikrojądrem, w jądrze znajduje się jedynie kod zajmujący się uprawnieniami, a sam sterownik jest niezależnym programem.
Często sterownik urządzenia jest odpowiedzialny za obsługę urządzeń, które fizycznie nie istnieją. W systemach operacyjnych Linux i Unix znajduje się wiele sterowników urządzeń wirtualnych (abstrakcyjnych). Jako przykłady wymienić można:
- sterownik urządzenia NULL (dostęp przez /dev/null) – abstrakcyjne urządzenie, do którego można zapisywać, co nie przynosi żadnego efektu;
- sterownik urządzenia RANDOM (dostęp przez /dev/random) – dane odczytywane z tego urządzenia są losowe;
- /dev/zero – nieskończone źródło znaków (o kodzie 0x00);
- sterowniki systemów plików – tworzą abstrakcję nad sterownikami dysków, pozwalają na wygodny dostęp do danych bez znajomości sposobu ich zapisu.
W systemach operacyjnych Linux i Unix, urządzenia reprezentowane są przez wirtualne pliki w katalogu /dev. Znajdujące się tam urządzenia dzielimy na blokowe oraz znakowe. To samo fizyczne (albo wirtualne) urządzenie może posiadać oba rodzaje sterowników. Różnica między nimi leży w zbiorze udostępnianych operacji. Do pełnej identyfikacji sterownika w systemie operacyjnym, potrzebne są dwie liczby z zakresu od 0 do 255. Pierwsza z nich nazywana jest liczbą główną i stanowi pozycję w odpowiedniej tablicy sterowników w jądrze systemu operacyjnego. Druga z nich przekazywana jest sterownikowi przy wykonywaniu konkretnych operacji. w przypadku sterownika dysku, może ona na przykład oznaczać numer podłączonego dysku twardego. Aby utworzyć nowy plik urządzenia, można posłużyć się poleceniem mknod. Jako parametry przyjmuje ono ścieżkę do pliku urządzenia, a następnie dane jednoznacznie identyfikujące sterownik, czyli kolejno:
- znak c lub b w zależności czy urządzenie jest blokowe czy znakowe,
- numer główny,
- numer podrzędny.
W automatyce przemysłowej sterownik urządzenia to samodzielny układ (komputerowy, elektryczny, elektroniczny, elektromechaniczny) zajmujący się nadzorowaniem pracy urządzenia elektrycznego. Czasem takie układy elektroniczne nazywa się kontrolerami, aby je odróżnić od programowych sterowników urządzeń w systemie operacyjnym.