Como se puede apreciar en la figura 1. la estructura de UNIX define dos interfaces, una interfaz HW del núcleo y una interfaz de system calls o API (Application Program Interface) para el usuario. Dos sistemas operativos serán compatibles si ambos presentan la misma API o conjunto de system calls aunque los núcleos o kernels de ambos sistemas sean diferentes. Así, un UNIX tipo SYSTEM V sobre una arquitectura RISC será compatible con un UNIX tipo SYSTEM V como LINUX sobre PC porque ambos presentarán el mismo conjunto de system calls (todo esto, en teoría, claro). De hecho, los núcleos de ambos sistemas serán completamente diferentes: uno gestionará intrucciones RISC y el otro, instrucciones CISC. Lo importante es que un mismo programa (en fuentes), funcionará en máquinas tan dispares porque UNIX les presentará la misma máquina virtual.
La máquina virtual UNIX se basa en el concepto de señal. Una señal es una condición que puede surgir durante la ejecución normal de un programa. Se podría considerar un equivalente software a una interrupción o trap hardware.
Reordenando los conceptos expuestos hasta ahora, se puede encontrar un paralelismo entre la máquina real hardware y la máquina virtual UNIX según la figura 2.