새끼 개발자의 Life is egg

[OS] 운영체제의 역사 본문

개발's egg

[OS] 운영체제의 역사

현z 2019. 1. 16. 15:24

 Operating System, 운영체제란?

 운영체제는 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고 지원하는 소프트웨어.



 운영체제의 역할

 운영체제의 역할을 크게 세 가지로 나누자면 다음과 같다.

1. 시스템 자원(System Resource)의 관리

2. 사용자와 컴퓨터간의 커뮤니케이션 지원

3. 컴퓨터 하드웨어와 응용프로그램을 제어 (응용프로그램 = 어플리케이션. 엑셀, ppt 등)



 운영체제의 역사


 1950년대

 1950년대에는 운영체제가 없었다. 응용프로그램이 직접 시스템 자원을 관리하며 실행되었다.


 1960년대 초반

 여러 프로그램을 순차적으로 실행시키기 위한 배치 처리 시스템이 출현하였다.

한번에 하나의 프로그램을 실행할 수 있었기에, 현재 실행 중인 프로그램이 끝난 뒤 바로 다음 프로그램을 실행시키는 시스템이었다.



줄을 서 있다가 순차적으로 실행된다.



 배치시스템은 프로그램이 끝나기를 기다렸다가 다음 프로그램을 실행시켜주지 않아도 바로 다음 프로그램을 실행시킴으로써 사람의 노동력이 줄어들었지만, 앞 프로그램의 실행시간이 많이 필요한 경우 컴퓨터의 응답 시간이 오래 걸릴 수 있었고, CPU가 필요없는 상황임에도 응용프로그램이 CPU를 점유할 수 있었기 때문에 전체적인 실행 시간도 늘어날 수 있다는 단점이 있었다.


 1960년대 후반

 시분할시스템과 멀티태스킹이라는 새로운 개념이 등장했다.

시분할시스템과 멀티태스킹은 보통 동일하게 보는데, 응용 프로그램이 CPU를 사용하는 시간을 쪼개서 여러 개의 응용 프로그램을 동시에 실행하는 기법이다. (사실 동시에 실행시킨다고 보기는 어렵지만 사용자들이 보기에는 여러 응용프로그램들이 동시에 실행되는 것 처럼 보인다.)

또 멀티 프로그래밍 - 시간대비 최대한 CPU의 활용률을 높이려는 시스템 개념이 등장했다.


이 기법들로 컴퓨터의 응답 시간은 물론, 전체적인 응용프로그램 실행 시간을 줄일 수 있었다.


 1970년대

 1970년대에 이르러 운영체제가 등장하기 시작한다.

첫 운영체제는 UNIX OS로, 미국 AT&T 사의 벨 연구소에서 켄 톰슨과 데니스 리치가 개발하였다. 데니스 리치는 C언어의 개발자이기도 하다.

이 C 언어를 기반으로 UNIX가 태어나게 된다.


/*

C언어가 개발되기 전에는 주로 어셈블리어를 사용해 소프트웨어를 개발하였는데, 어셈블리어는 CPU 명령어와 메모리 주소를 직접 입력해줘야 하는 불편함이 있어 다른 종류의 컴퓨터마다 새로 개발해줘야 하는 단점이 있었고, 프로그래밍 복잡도가 높았다.


C언어가 개발된 후에는 컴파일러로 인하여 코드를 다시 작성할 필요가 없어졌고,(컴파일만 다시 하면 되니까) 프로그래밍 복잡도도 낮아졌다.

*/


 유닉스는 현대 운영체제의 기본 기술이 모두 포함된 최초의 운영체제로, 시분할 시스템/멀티태스킹, 멀티 프로그래밍(다중 사용자 지원)이 가능했다.


 1980년대

 1980년대는 Personal Computer, 개인 컴퓨터의 시대였다.

이전까지는 대형 컴퓨터 하나에 여러명이 접속해서 사용했다면(UNIX), 1980년대는 개인용 컴퓨터로 각자 사용하게 된 것이다.


 PC와 더불어 GUI 환경이 등장하기 시작했다. (1958년 Norad사의 SAGE 시스템 또는 1963년 아이번 서덜랜드의 스케치패드를 시초로 본다.)


 GUI 란?

 Graphical User Interface를 말한다. 1980년대 초반까지는 CLI(Command Line Interface, 터미널 환경)를 사용했으나, 80년대부터는 GUI가 뜨기 시작한다. CLI가 검은화면에 키보드로 입력했다면 GUI는 주로 마우스를 이용하게 되었다. 우리가 지금 사용하고 있는 인터페이스가 GUI다.



CLI.  검은 화면의 텍스트 터미널을 통해 컴퓨터와 소통한다. 



제록스의 초기 GUI.  화면을 통해 직관적으로 보고 소통할 수 있게 되었다.



 1990년대

 1990년대는 PC와 GUI에 힘입어 응용프로그램의 시대가 열린다.

엑셀, 워드 프로세서 등 다양한 응용 프로그램이 개발되고, 윈도우즈 운영체제가 대중화된다.



              

윈도우 95 이전에는 MS-DOS로 게임을 실행시켰던 기억이 있다. 그 때 둠 엄청 했는데. (?)



 또, 네크워크 기술이 발전함에 따라 월드와이드웹. 인터넷이 대중화되었다.

처음 인터넷을 접하면서 메일 계정을 만들었던 게 아직도 기억이 난다. 다음에서 한메일 계정을 만들고 야후에서 많이 놀았던 것 같다.



         


전화요금이 무서웠다



 그리고 유닉스를 개발할 당시 기술을 공유하자는 의미에서 소스를 오픈하기 시작했었는데, 이 오픈 소스 운동이 1990년대에 활성화되기 시작하면서 LINUX라는 무료 오픈소스 운영체제가 생겨나기 시작한다.


 2000년대 이후~

 2000년대 이후부터 현재까지는 리눅스OS나, 아파치 웹서버, MySQL... 그리고 안드로이드, 딥러닝, 데이터사이언스, IoT 관련 등 오픈소스의 활성화가 이루어지고 있으며 가상 머신, 대용량 병렬 처리 등이 활성화되고 있다.



'개발's egg' 카테고리의 다른 글

질문모음  (0) 2021.04.25
자료구조 - 연결리스트, 양방향 연결리스트  (0) 2020.02.06
자료구조 개요  (0) 2020.02.06
C 정리 - 파일 입출력, 전처리기  (0) 2020.02.03
C 정리 ( 8. 배열 ~ 16. 구조체 )  (0) 2020.02.02
Comments