Un sistema operativo (SO) es un conjunto de programas que facilita la comunicación entre usuarios, hardware y software. Un SO maneja recursos como procesos, memoria, dispositivos de entrada/salida y archivos. Los SO se clasifican por su estructura (monolítica, jerárquica, cliente-servidor, máquina virtual), los servicios que ofrecen y cómo ofrecen esos servicios. Un SO debe satisfacer los requisitos tanto de los usuarios (facilidad de uso, seguridad) como del software (mantenimiento, operación de recursos, flexibilidad