W 1956 General Motors współpracując z North American Aviation stworzyło pierwszy system operacyjny, który był użyty w praktyce do prawdziwej pracy, GM-NAA I/0, znów dla maszyny IBM 704.

Wszystkie powyższe systemy były uzupełnieniem bibliotek uruchomieniowych. Ich podstawowym zadaniem było zainicjalizowanie programu użytkownika, uruchomienie go, monitorowanie programu i zasobów, zwolnienie zasobów po zakończeniu pracy programu i automatyczne uruchomienie następnego programu. Dzięki nim zminimalizowano czas bezczynności komputerów, zmniejszono ilość potrzebnego personelu, a także uproszczono sposób uruchamiania programów.

Wczesne systemy operacyjne były bardzo zróżnicowane. Każdy dostawca i każdy klient tworzyli jeden lub więcej systemów operacyjnych odnoszących się do konkretnego mainframe’a. Każdy system operacyjny, nawet od tego samego dostawcy, mógł mieć zupełnie różne modele poleceń, procedur operacyjnych i pomocy przy takich czynnościach jak debugowanie.