Un sistema operativo embebido,[1] embarcado o empotrado (integrado, incrustado) es un sistema operativo para sistemas embebidos. Este tipo de sistema operativo generalmente está diseñado para ser confiable y eficiente en el uso de recursos. La eficiencia de los recursos tiene el costo de perder alguna funcionalidad o granularidad que proporcionan los sistemas operativos de computadoras más grandes, incluidas las funciones que pueden no ser utilizadas por las aplicaciones especializadas que ejecutan. Según el método utilizado para la multitarea, este tipo de sistema operativo se considera con frecuencia un sistema operativo en tiempo real o RTOS por sus iniciales en inglés.
El hardware que ejecuta un sistema operativo embebido puede ser muy limitado en recursos como en RAM y ROM, por lo tanto, el diseño embebido de estos sistemas operativos puede tener un alcance limitado adaptado a una aplicación específica para lograr la operación deseada bajo estas restricciones. Para aprovechar mejor la potencia de procesamiento de la CPU, los desarrolladores de software pueden escribir código crítico directamente en el ensamblador. Este lenguaje de máquina eficiente puede potencialmente resultar en ganancias en velocidad y determinismo a costa de portabilidad y mantenibilidad. A menudo, los sistemas operativos embebidos se escriben completamente en lenguajes más portátiles, como C.
Una diferencia importante entre la mayoría de los sistemas operativos embebidos y los sistemas operativos de escritorio es que la aplicación, incluido el sistema operativo, suele estar vinculada estáticamente en una única imagen ejecutable. A diferencia de un sistema operativo de escritorio, el sistema operativo embebido no carga ni ejecuta aplicaciones.[2] Esto significa que el sistema solo puede ejecutar una única aplicación.