운영체제란? 

 

    운영체제는 다른 말로 OS라고 부릅니다. OS 어디서 많이 들어봤는데? 싶을텐데 아이폰을 쓰는 사람은 'ios'가 매우 익숙할 거에요. 컴퓨터에 쓰이는 유명한 운영체제는 Mac OS, Window 두 개가 있습니다. 제일 대중적인 만큼 저또한 현재 window 11, mac monterey를 쓰고 있습니다. 그외의 운영체제는 유닉스, 리눅스 등이 있고 두 개의 운영체제 또한 정말 많이 쓰입니다. 특히 리눅스는 안드로이드의 기반으로 유명합니다.

    운영체제의 정의가 그래서 무어냐 물으신다면 하드웨어를 관리하고 사용자에게 편리함을 주는 컴퓨터 관리자, 수호자 쯤 됩니다. 우리가 컴퓨터를 킬 때마다 검은 배경화면에 쓰여진 곳에 명령어를 외워 쓰는 것보단 아이콘으로 대체된 편리한 인터페이스를 누르며 쓰는게 편할 겁니다. 또, 컴퓨터 자원, 하드웨어hardware는 너무 비싸죠.  컴퓨터의 발전의 역사는 'CPU를 어떻게 하면 잘쓸까? 어떻게 100프로 활용을 할 수 있을까?' 에서부터 시작되었는데, 컴퓨터 자원을 놀게 할 수도 없고 또 너무 막 대할 순 없기 때문에, 운영체제는 사용환경을 쾌적하게 만들고 비싼 컴퓨터 자원들을 효율적으로 관리하기 위해서 존재합니다.

   그럼 어떻게 운영체제가 만들어지고 발전했는 지 살펴보고, 운영 체제의 구성 존재이유에 대해 알아보겠습니다.

 

 

 


(참고) 운영체제는 그럼 하드웨어일까? 소프트웨어일까?

  운영체제 자체는 소프트웨어의 종류입니다. 운영체제의 목표이자  역할은 하드웨어를 조정하고 관리하기 위함입니다. 소프트웨어가 하드웨어를 조종하는 것이 애매한 개념이기 대문에 소프트웨어와 하드웨의 결합형태인 펌웨어firmware라고도 부릅니다.


 

운영체제의 역사

  컴퓨터는 어디서, 언제부터 빠르게 발전된 것일까요? 수학과 과학이 발전하면서 컴퓨터의 존재는 필연적이였을 지 모릅니다. 하지만 확연한 성장은 '전쟁'을 통해서입니다. 전쟁에서의 전략과 싸움은 '수를 계산'하는 것부터 시작되었고, 컴퓨터의 기본 알고리즘 개념의 창시자, 컴퓨터의 조상이라고 불리우는 '앨린튜링'의 튜링머신 또한 2차 세계대전 독일의 비밀 암호를 풀기 위해 만들어졌습니다. 또, 역대급 천재라고 불리우고 컴퓨터의 내부구조를 확립했다고 알려진 폰 노이만도 전쟁을 위해서 수학 이론을 발전 시키죠.

  최초의 컴퓨터인 애니악도 비사일 탄도를 계산하기 위해 존 모클리& 존 에클리가 만들었습니다. 사진을 보면 알 수 있듯이 컴퓨터라 치기엔 너무 큽니다. 애니악은 진공관이라는 소자를 사용해 전선으로 논리회로를 구성해  결과값을 얻었는데, 기존 수학을 푸는 것보다얀 빨랐지만 다른 수식을 사용하기 위해선 전선을 다시 연결하고 구성했었습니다. 너무 번거로웠고 금액, 노동력이 많이 들었기에 더 편리한 방식으로 진화합니다.

 

애니악 컴퓨터의 모습 (출처: 쉽게 배우는 운영체제)

 

  그 다음으로는 IC칩으로 이루어진 컴퓨터가 등장하게 됩니다. 천공카드 리더와 라인프린터로 이루어진 이 컴퓨터는 다른 작업을 하기 위해서 전선을 뽑아 새로 연결했던 애니악과는 다르게 천공카드 리더만 바꾸면 됐습니다. 하지만 작업은 한 개 이상 할 수 없었고 이를 일괄 작업 시스템이라고 부릅니다.

 

 이후에 키보드와 모니터가 발명됩니다. 키보드의 탄생으로 사용자는 컴퓨터에 입력을 할 수 있게 되었고, 컴퓨터는 사용자에게 모니터를 통해 출력을 내보낼 수 있게 됐습니다. 이를 대화형 시스템이라고 하며, 이 때부터 컴퓨터 발전이 급속화 됩니다.

 

 운영체제는 하드웨어를 관리한다고 했죠. 우리가 지금 쓰는 컴퓨터는 사실 동시에 실행되고 있지 않습니다. 동시에 실행되는 것처럼 보이는 거죠. 운영체제는 어떻게 하면 동시에 작업할 수 있을 지 고민했습니다. 수많은 알고리즘을 수행시키면서 발전된 형태가 시분할 시스템입니다. 운영체제는 모든 프로그램에 cpu 사용시간을 잘게 쪼개서 주었고, 이를 매우 빠른 속도로 반복합니다. 잘게 쪼갠 시간을 타임 슬라이스 혹은 타임 퀀텀이라 부릅니다.

 

 이 곳에 다 쓰진 않았지만 컴퓨터는 보완과 실패, 반복이 계속 되면서 현재의 컴퓨터로 발전될 수 있었습니다. 좀 더 나은 환경을 위한 노력의 역사가 지금 인공지능까지 이어졌으니 시도와 반복이 얼마나 중요한 지 여기서도 알 수 있습니다.

 

 


(참고) GUI란?

   Graphic user interface의 약자로, 마우스를 이용해서 누를 수 있는 아이콘이 그 예입니다. 옛날에는 검은 화면에 명령어를 치는 식으로 컴퓨터를 사용했는데, 애플의 스티브 잡스가 맥킨토시 이전에 만든 리사 컴퓨터에서 파일 모양이나 쓰레기통 모양의 GUI를 처음 도입합니다. 대박이난 맥킨토시에는 GUI를 포함한 이런저런 기능을 넣어 애플은 사용자들이 컴퓨터를 더 친화적으로 느끼게 되는 계기와  혁신을 만들어냅니다. 

 

 

 


운영체제의 구성

 

  운영체제는 제어 프로그램 처리 프로그램으로 구성됩니다. 제어프로그램에는 운영체제의 핵심 기능을 모아 놓은 커널이 있는 것이며, 처리 프로그램은 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려주는 인터페이스입니다.

  제어 프로그램인 커널Kernel에서는 CPU관리, 프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 핵심적인 기능이 모아져 있습니다. 고로 커널은 매우 매우 매우 중요합니다. 

 

커널 내부도 시스템 콜 드라이버 두가지로 나뉩니다. 

 

시스템 콜은 운영체제가 사용자와 응용 프로그램이 하드웨어에 직접 접근을 못하게 막으면서 컴퓨터 자원을 보호하며 하드웨어의 자원은 이용할 수 있도록 인터페이스를 제공하는 것입니다. 사용자가 직접 접근해서 관리한다면 쉽게 망가질 수 있고, 프로그램이 직접 접근 한다면 데이터가 지워질 수도 있는 불상사가 생길 수도 있습니다. 그래서 운영체제는 시스템콜을 통해 응용 프로그램은 write()함수로 커널 내부에서 저장되고, read()함수로 불러와지며 GUIgraphic user interface를 통해 사용자를 직접적으로 접근하는 것을 막고 컴퓨터 자원을 관리합니다.

 

 응용프로그램과 커널을 관리했다면 이제 하드웨어의 인터페이스도 관리해야겠죠? 이는 드라이버가 관리합니다. 하드웨어는 회사나 제조사가 다양하기 때문에 운영체제는 드라이버에 맞게 모든 환경을 만들어낼 수 없습니다. 목마른 놈이 우물판다고, 드라이버를 만든 회사에서 드라이버 내에 관련 소프트웨어를 설치합니다. 그래픽카드를 새로 사서 컴퓨터에 조립하면 그래픽카드 드라이버를 설치하는 이유가 이 때문입니다. 

*쉬운 예로 마우스와 키보드도 드라이버입니다. 컴퓨터 뒤쪽에 usb를 꼽아서 키보드 마우스를 사용하지요! 우리가 마우스를 사용할 때 마다 따라 오는 화살표! 이는 사용자가 보기 쉽게끔 나타낸 GUI입니다. 커널은 마우스를 인식하고 사용자에게 화살표를 보여주는, 사용자와 하드웨어의 중간 다리 역할이라 보시면 됩니다. 

 

 

사용자와 운영체제와 컴퓨터자원(하드웨어) 순서 한눈에 보기

 

 

 


운영체제의 역할과 목표

 

운영체제제의 역할

 

  여기까지 보면 알겠지만 운영체제의 가장 중요한 역할은 바로바로 컴퓨터의 자원을 관리하고 보호하는 것입니다. 또 운영체제의 구성에서 알 수 있듯이 하드웨어와 연결 지을 수 있을 인터페이스를 제공하고 사용자에게도 GUI를 통해 컴퓨터를 잘 쓰게끔 하는 역할도 있습니다. 

 

운영체제의 목표

 

  운영체제의 가장 큰 목표는 역할과 연결되어 이어집니다. 자원관리를 위해선 효율성, 보호를 위해선 안정성, 하드웨어 인터페이스 제공을 위해서는 다양한 하드웨어를 설치할 수 있어야 하니 확장성, 사용자 인터페이스를 위해선 편리성 총 4가지를 추구하게 되겠지요.

 

 

  컴퓨터의 발전은 cpu를 어떻게 하면 더 잘쓸까 & 사용자가 어떻게 하면 더 편리하게 쓸 수 있을까(a.k.a 어떻게 하면 매출을 더 올릴까..)로 부터 이어졌습니다. 그러니, 윈도우를 만든 마이크로소프트나 맥os의 애플이나 컴퓨터 자원이 효율적으로 유지되는 것과 사용자의 편리성의 극대화를 추구화하며 운영체제를 발전시켰습니다.

 

 

 

 

 

글 참조 <쉽게 배우는 운영체제, 조성호, 한빛 아카데미>

+ Recent posts