Korisnički interfejs predstavlja način na koji program (u ovom slučaju operativni sistem) komunicira sa korisnikom. Ako je korisnički interfejs jednostavan za korisnika, kaže se da je „prijateljski“ (user-friendly). Postoje dva osnovna tipa korisničkog interfejsa:
- tekstualni i
- grafički.
Tekstualni korisnički interfejs se danas retko sreće (eventualno na računarima specijalne namene). U ovakvom sistemu korisnik je morao da komunicira sa računarom zadajući mu naredbe preko komandne linije (command prompt). Korisnici su morali da znaju makar nekoliko osnovnih naredbi i njihovu sintaksu kako bi mogli da pronalaze i pokreću programe sa diska.
Operativni sistem MS-DOS, koji je bio jedan od najkorišćenijih na PC računarima, imao je tekstualni korisnički interfejs. Na slici se vidi primer komande DIR koja služi za listanje sadržaja direktorijuma.
Ova aplikacija (zovemo je još i „DOS prozor“) ne predstavlja „silaženje“ u DOS – i dalje radimo normalno u Windows sistemu, s tim što možemo kucati komande i videti njihov (tekstualni) rezultat. Isto važi i za raznolike Linux sisteme, gde se ovakav prozor naziva Terminal.
Grafički korisnički interfejs (GUI – Graphical User Interface) koristi vizuelne elemente tipa prozora, menija, dugmića, ikona i sl. Kao primarni ulazni uređaji za zadavanje komandi koriste se miš i tastatura. Sa napretkom hardvera, napreduju i korisnički interfejsi koji postaju sve lepše dizajnirani, uvode animacije i specijalne efekte (transparencija, zamućivanje) i koriste prednosti tehnologije – prilagođavaju se radu sa dodirnim ekranima (touchscreen).
Linux sistemi obično dolaze instalirani sa jednim od dva korisnička okruženja – Gnome ili KDE, mada nije retkost da čak i ista distribucija ima dve varijante. Izuzetak je Ubuntu koji ima svoj „originalni“ GUI Unity (što ne znači da ne postoje Gnome i KDE verzije Ubuntu-a). Iako su ova dva okruženja drugačija, teško je izabrati bolje, pogotovo što se oba konstantno razvijaju.
Zahvaljujući API-ju operativnog sistema, svaka aplikacija može kreirati sopstveni korisnički interfejs bez velikog napora programera. Na ovaj način operativni sistem obezbeđuje komunikaciju korisnika i aplikacije, ali i „uniformnost“ u izgledu programa.