La característica definitoria de los sistemas operativos es la conexión que proporciona entre el hardware, el software y, en algunos casos, la interfaz de usuario. Las computadoras requieren un sistema operativo para poder utilizarse.
Todas las computadoras modernas requieren algún software para controlar, y el sistema operativo es el software más básico disponible. Si bien los sistemas operativos utilizados en dispositivos pequeños pueden ser relativamente pequeños y simples, los sistemas operativos populares como Windows, OSX y Linux proporcionan controladores para una amplia gama de dispositivos y una interfaz de usuario.
La parte central de un sistema operativo es su kernel. Hoy en día, los núcleos monolíticos son los más populares. Estos núcleos proporcionan una manera para que diferentes procesos informáticos se envíen mensajes entre sí, y administran la RAM que almacena la información del programa. La mayoría de los kernels también proporcionan controladores de dispositivos para controlar monitores, dispositivos de entrada, unidades de disco y otros periféricos.
En el pasado, el software solo podía apuntar a un sistema operativo específico, y los programas debían ajustarse y compilarse para ejecutarse en diferentes plataformas. Sin embargo, los programas modernos están diseñados para ejecutarse en una variedad de plataformas compatibles. Java es, en gran medida, la acreditación como punto de partida de esta tendencia, pero Python, Ruby y otras plataformas de programación de alto nivel simplifican el transporte de programas a nuevos sistemas.