Un sistema operativo proporciona la conexión entre el hardware fundamental, los dispositivos periféricos y los usuarios de una computadora. También crea una plataforma de desarrollo consistente para los programadores. Las computadoras de todos los tamaños, desde teléfonos celulares hasta supercomputadoras, necesitan sistemas operativos para funcionar.
La mayoría de las computadoras tienen un procesador, que realiza cálculos y procesa información, memoria, que contiene información de programas y una unidad de disco para almacenar programas y datos. Estos dispositivos necesitan un sistema operativo para trabajar juntos. La memoria RAM de la computadora, por ejemplo, se basa en el sistema operativo para determinar dónde se guarda la información.
Los sistemas operativos también administran dispositivos externos. Los sistemas operativos normalmente vienen con controladores para tarjetas y chips de gráficos y de sonido, y generalmente admiten teclados, ratones y otros dispositivos de entrada. Otros dispositivos, como impresoras y escáneres, a menudo necesitan controladores de terceros para funcionar. La mayoría de los sistemas operativos proporcionan una interfaz de controlador para facilitar el proceso de desarrollo de controladores de hardware.
Los programadores confían en la abstracción proporcionada por los sistemas operativos para simplificar el desarrollo. En lugar de tener que trabajar directamente con un teclado o mouse, los programadores usan las señales proporcionadas por el sistema operativo. En lugar de tener que crear un sistema de ventanas gráficas para mostrar información, los programadores pueden enviar comandos relativamente simples al sistema operativo, que maneja gran parte del trabajo. Esta abstracción a menudo permite a los desarrolladores apuntar a múltiples sistemas operativos con una sola base de código mientras hacen pequeños ajustes específicos del sistema.