운영체제의 역사는 컴퓨터의 역사와 함께한다.
1950년대 : ENIAC (에니악) 개발1
- 당시 에니악은 1개의 응용 프로그램을 실행시키기도 벅찼다.
- 따라서, 운영체제는 당연히 없었고, 컴퓨터 자원의 관리는 1개의 응용프로그램이 스스로 관리하는 구조였다.
1960년대 초기 : 프로그램의 종류, 사용자 모두 증가하는 시기
- 예를 들어, A와 B가 각각 10시간짜리 프로그램, 1시간짜리 프로그램을 실행시킨다고 해보자.
- 당시는 A - B 순서로 프로그램을 돌리던가, B - A 순서로 프로그램을 돌리던가 해야 하는, 한 번에 하나의 프로그램만을 실행시켜야 하는 환경이었다.
- 그런데 B 프로그램은 1시간만에 끝나기 때문에, A프로그램을 먼저 돌리게 된다면 B는 10시간이나 컴퓨터 옆에서 기다려야하지 않겠는가? –> Very inefficient
- 따라서, 어떤 프로그램이 종료되면 그 다음 프로그램이 ‘순차적으로’ 실행되도록 하는 기술이 개발되었는데,
- 이를 배치 처리 시스템(Batch processing system)이라고 한다.
- 그리고, 이 batch 프로그램을 trigger로 하여 운영체제가 출현하기 시작한다.
1960년대 후기 : 새로운 개념들의 출현
1970년대 : 제대로 된 운영체제의 등장!!
- 최초의 운영체제 : UNIX 의 개발
- 미국 AT&T 의 Bell lab이 개발함 : 켄 톰슨, 데니스 리치…(참고로 데니스 리치는 C언어를 개발한 사람이다…)
- 운영체제 개발에 C언어가 필요했던 이유
- 1970년데 이전에는 소프트웨어 개발에 Assembly언어가 사용되었다. 그야말로 생지옥…왜냐하면 메모리 주소를 직접 명시하고 그걸 전부 계산해야 하기 때문이다…
- 그리고 더 최악은, 어셈블리어는 컴퓨터마다 각각 다시 개발해줘야 하는 단점이 존재했다.
- 그런데, 1970년대 C언어가 개발된 이후, 이 생지옥같은 상황이 환상적으로 개선되었다. – 왜냐하면 C언어(High)를 컴파일러가 low레벨 어셈블리어로 번역해주기 때문이다.
- 즉, 한번 C언어로 만든 코드는, 컴퓨터마다 재작성할 필요가 없게 되었다.
- UNIX의 특징
- 현재 운영체제의 기본 기술을 모두 포함한 최초의 운영체제!
- 멀티태스킹, 시분할시스템, 멀티 프로그래밍, 다중 사용자를 지원한다.
1980년대 : Personal Computer 시대!
- 1980년대 이전에는 대형 컴퓨터(UNIX)를 여러명이 접속해서 사용하였으나,
- 1980년대부터는 개인이 컴퓨터를 소유하기 시작하였다.
- 운영체제는 기본적으로 사용자와 컴퓨터의 커뮤니케이션을 도와주는 역할을 하는데, 두 가지 분류로 그 기능을 한다.
- 두 가지 분류 - 용어의 이해
- CLI : Command Line Interface - 터미널 환경 : 키보드로 명령어를 내리는 것.
- GUI : Graphical User Interface -GUI환경 : 마우스 움직임과 클릭을 통해 명령을 내리는 것.
- CLI는 1980년대 초반, GUI환경은 1980년대 후반부터 도입되기 시작했다.
1990년대 : The era of application
- 강력한 GUI환경과 더불어 응용프로그램의 시대가 도래했다.
- Microsoft의 Excel, word 등의 응용프로그램이 발전…사용자가 급증했다.
- 네트워크 및 인터넷이 대중화되었다 (WWW).
- 오픈소스운동이 활성화되었다 : “기술은 공유되어야 한다.” ex) 리눅스
2000년대 이후
- 오픈소스 활성화 : LINUX, Apache, MySQL
- Virtual Machine 개발, 활성화
- 대용량 병렬 처리 활성화 - 다중 코어
위 내용은 ‘패스트캠퍼스’의 컴퓨터공학 강좌 내용을 요약 정리한 것임을 밝힙니다.
(https://www.fastcampus.co.kr/)