프로그램의 종류, 사용자도 늘어나다보니 여러 개의 프로그램을 돌릴 수 없는 컴퓨터의 한계가 큰 단점으로 부각되었습니다. 이는 누군가는 자신의 프로그램을 실행하기 위해 계속 기다리거나 다른 일을 할 수 없도록 만들었습니다. 이를 해결하기 위해 여러 응용 프로그램을 등록시켜 놓으면 순차적으로 실행하는 배치 처리 시스템이 생겨났습니다.
배치처리 시스템으로 순차적으로 앱을 실행할 수 있어 누군가가 다음 프로그램을 실행시키기 위해 지켜봐야 하는 수고로움은 덜었습니다. 그러나, 단순히 순차적으로 실행하기 때문에 선행된 어플리케이션의 시간이 길다면 뒤에 어플리케이션은 간단한 것임에도 한참을 기다려야 했습니다. 또, cpu도 한 번에 하나의 어플리케이션만 실행하므로 cpu의 유휴시간이 늘어나 비생산적이었습니다.
따라서 이때에는 시분할 시스템과 멀티태스킹 개념이 제안되었지만 운영체제에 반영되지는 못했습니다.
1970년대 이전에는 어셈블리어로 소프트웨어를 개발하다보니 컴퓨터 제조사마다 다른 명령어로 개발을 해야했고 본 목적을 하기 위해 제어해야 할 것이 너무 많아 프로그래밍 복잡도가 높았습니다. 그러다 1970년대에 C언어가 개발되어 컴퓨터 출신 의존도가 없어지고 프로그래밍 복잡도가 낮아졌습니다. 이에 힘입어 UNIX OS가 탄생하였습니다.
UNIX OS
사용자와 컴퓨터를 연결하는 인터페이스의 종류
CLI(Command Line Interface) : 터미널 환경
GUI(Graphical User Interface) : GUI 환경