Los primeros sistemas computacionales no tenían sistemas operativos y requerían lenguaje de máquina, mientras que los sistemas de los años 50 introdujeron procesamiento por lotes para mejorar la eficiencia. En generaciones posteriores, se desarrollaron sistemas compartidos con multiprogramación y multiprocesamiento para aumentar el rendimiento, y los sistemas como el IBM System/360 se volvieron sistemas de propósito general más complejos.