Charakterystyczną cechą systemów operacyjnych jest połączenie między sprzętem, oprogramowaniem i, w niektórych przypadkach, interfejsem użytkownika. Komputery wymagają systemu operacyjnego do użytku.
Wszystkie nowoczesne komputery wymagają oprogramowania do kontroli, a system operacyjny jest najbardziej podstawowym dostępnym oprogramowaniem. Podczas gdy systemy operacyjne używane na małych urządzeniach mogą być względnie małe i proste, popularne systemy operacyjne, takie jak Windows, OSX i Linux, zapewniają sterowniki dla szerokiej gamy urządzeń i interfejsu użytkownika.
Podstawową częścią systemu operacyjnego jest jego jądro. Obecnie najpopularniejsze są jądra monolityczne. Jądra te umożliwiają różnym procesom komputerowym wysyłanie komunikatów między sobą i zarządzają pamięcią RAM, która przechowuje informacje o programie. Większość jądra zawiera także sterowniki urządzeń do sterowania monitorami, urządzeniami wejściowymi, dyskami i innymi urządzeniami peryferyjnymi.
W przeszłości oprogramowanie mogło być kierowane tylko na określony system operacyjny, a programy musiały być dostosowywane i kompilowane do działania na różnych platformach. Jednak nowoczesne programy są zaprojektowane do działania na wielu obsługiwanych platformach. Java jest w dużej mierze zasługą tego trendu, ale Python, Ruby i inne platformy programowania wysokiego poziomu ułatwiają przenoszenie programów do nowych systemów.