El Sistema Operativo es el software más importante de un equipo de cómputo. Es el que administra los recursos de hardware y provee servicios a las demás aplicaciones. También realiza diferentes funciones de vital importancia para poder usar el equipo.

Los sistemas operativos pueden estar presentes no solo en computadoras. También los podemos encontrar en dispositivos móviles como tabletas, teléfonos o relojes inteligentes, también en enrutadores, switchs, puntos de acceso wifi, televisores, equipos de reproducción de multimedia, equipos médicos, cajeros electrónicos, coches inteligentes, y en un sin fin de dispositivos de los que usamos muy a menudo en nuestra vida diaria. En casi todos los equipos que incluyan microprocesadores de una forma u otra contaremos con sistemas operativos.
El sistema operativo provee funciones a las aplicaciones de usuario para interactuar con el mismo, con otras aplicaciones o con el hardware, a estas funciones se les conoce como “Llamadas al sistema” o “System Calls” y estas son propias de casa sistema operativo.
De forma general los sistemas operativos trabajan en dos modos, modo usuario y modo privilegiado. En el modo usuario o modo restringido el microprocesador puede ejecutar un conjunto reducido de instrucciones y en modo privilegiado o modo kernel esta disponible todo el conjunto de instrucciones del microprocesador. Las aplicaciones se ejecutan en modo restringido y cuando necesitan acceder a alguna función priviligiada se efectúa una llamada al sistema y se produce un cambio de contexto el núcleo pasa a ejecutarse en modo privilegiado resuelve la solicitud de la llamada al sistema y conmuta nuevamente al modo restringido y devuelve el resultado a la aplicación. Este proceso puede ocurrir cientos de veces por segundo.
Componentes generales de un sistema operativo
- Cargador de arranque, Programa que carga el SO, Ejemplos: GRUB, NTLDR, Lilo
- Núcleo (Kernel), Parte principal del sistema operativo Ejemplos: Kernel Linux, ntoskrnl.exe
- Controladores de Hardware (Drivers)
- Librerías o bibliotecas de funciones
- Shell o Lanzador de aplicaciones (aplicación especial que sirve de interfaz para interactuar con el sistema puede ser en modo texto o modo gráfico)
- Aplicaciones del sistema (programas específicos para el sistema operativo, software de configuración, etc.)
- Utilidades incluidas (programas de utilidades para el usuario ejemplo: editores, calculadora, reproductores, etc. )
Según la arquitectura del núcleo (kernel) se clasifican en:
- Microkernel (se caracteriza por un kernel muy pequeño con solo las funciones primitivas y llamadas al sistema para servicios básicos de espacios de direcciones, comunicación entre procesos y planificación básica)

- Kernel Monolítico: Todo está incluido en un mismo espacio lógico o programa en el que se entrelazan todas las funciones o subrutinas.

- Kernel Híbrido (Microkernel modificado que incluye más funcionalidades y las inserta dentro del kernel)

- Kernel Jerárquicos, Multicapas o en anillos (Hay diferentes capas o anillos en función de los componentes del kernel y cada uno tiene un nivel jerárquico siendo los más externos los de menores privilegios)

- Kernel Distribuido (Separa sus componentes en servidores que se distribuyen en uno o varios nodos y el reducido kernel se encarga simplemente de la comunicación de los componentes)