Published on

운영체제 개요

Authors

운영체제 개요

운영체제, 줄여서 OS(Operation System) 라고도 불리우는 프로그램은 컴퓨터의 전원을 켜면 가장 먼저 만나는 소프트웨어이다. 컴퓨터 뿐 아니라 다양한 스마트 기기가 등장한 현대에는 기기의 사양에 맞추어 각각의 임베디드 운영체제(Embedded OS)가 심어져 있다. 이처럼 일상 속 깊숙히 침투해 있는 운영체제란 프로그램은 무엇인지에 대하여 자세히 알아보자

운영체제의 필요성

대부분의 기계 뿐 아니라, 초기의 컴퓨터 조차도 정해진 연산만을 수행하였기 때문에 특별한 사용규칙은 없었다. 그러나 메모리, CPU등의 성능이 향상되고, 여러 작업을 동시 수행할 수 있는 컴퓨팅 환경이 조성되면서 컴퓨터 사용 규칙이 필요해졌다. 복잡한 환경에 효율적이고 안전한 작업 처리를 위해 운영체제가 필요해 졌다.

에니악(ENIAC)은 "프로그래밍이 가능하다"(programmable)는 관점에서 최초의 컴퓨터로 인정받고 있다. 여기서 얘기한 "programmable"에서 부터 운영체제의 필요성이 시작되었다고도 볼 수 있다. 프로그래밍이 가능하다는 점은, 다양한 방법으로 연산을 처리해 갈 수 있고, 그 중에는 컴퓨터를 손상시키거나 컴퓨터의 성능을 제대로 활용하지도 못할 수도 있다. 다양한 방법으로 연산처리가 가능해진 환경에서 다양한 사용자들의 욕구를 적절하게 해소하기 위해 필요한 기본 환경에 대한 목소리가 생기면서 운영체제가 시작되었다고 볼 수 있는 것이다.

연산을 처리하기 위해 하드웨어인 컴퓨터를 조작하는 방법에 대한 공통 규칙이 생겼다는 관점에서, 운영체제는 펌웨어라고 볼 수 있다.

펌웨어(Firmware) 특정 하드웨어의 low-level control을 제공하는 소프트웨어를 지칭하는 단어이다. 운영체제는 컴퓨터에 있는 하드웨어(자원)을 조정하고 관리하기 위해 존재하고, 하드웨어의 도움 없이 작동하기 힘들기 때문에 하드웨어와 소프트웨어의 결합 형태인 펌웨어(firmware)라고 부르기도 한다.

운영체제의 정의

위에서 설명한 필요성을 충족시키기 위해 탄생하게된 운영체제는 다음과 같이 정의할 수 있다.

운영체제는 컴퓨터의 자원을 독점적으로 관리하는 소프트웨어.

컴퓨터 시스템에 대한 접근과 사용을 쉽게 할 수 있도록 도와주며 (인터페이스), 동시에 시스템 훼손을 유발하는 접근 차단이나 복잡한 연산을 효율적으로 수행하기 위하여 컴퓨터 자원들에 대한 보호와 관리가 이루어진다.

그림으로 요약하자면 다음과 같다.

![그림]

운영체제의 역할

운영체제의 대표적인 역할은 크게 나누면 다음과 같다.

  1. 하드웨어와 유저의 가교 역할
  2. 시스템 자원 관리와 보호

세상에는 다양한 사양의 컴퓨터 부품들이 있고 다양한 목적으로 컴퓨터를 활용하는 유저가 있다. 다양한 사양의 컴퓨터 부품들은 서로 간의 결합과 동작이 가능하게 하여야하고, 동시에 다양한 유저들의 목적에 부합하게 동작할 수 있도록 하드웨어들이 작동하여야 한다. 양쪽 모두의 필요를 충족시키기에는 너무 다양한양쪽 모두의 필요를 충족시키기 위해 운영체제를 매개체로 소통한다고 생각하면 편할 것이다. 앞서 정의에서 살펴본 바와 같이 운영체제는 컴퓨터 자원에 독점적으로 접근하고 관리할 수 있는 프로그램이다.

컴퓨터 내부에는 다양한 자원들이 내장되어 있다. 정의에서 살펴본 바와 같이 운영체제는 컴퓨터 자원을 독점적으로 접근하고 관리할 수 있는 프로그램이다. 운영체제는 유저나 응용 프로그램들의 요청에 대하여 CPU, Memory 등의 연산 장치들을 활용하여 자원의 낭비를 최대한 줄이고 작업을 최대한 빠르게 처리해야한다. 최대한 효율적이고 안정적으로 작업을 처리하기 위해 운영체제의 핵심적인 몇몇 기능들을 나열하면 다음과 같다.

  • CPU/Process 관리
  • 메모리 관리
  • 파일 시스템 관리

운영체제의 목표

위에서 살펴본 운영체제의 역할을 바탕으로 운영체제의 핵심가치와 목표를 추론해볼 수 있다.

먼저, 시스템 자원 관리와 보호의 역할을 생각해 보았을 때, 신속 정확한 작업 수행을 목표로 시스템 자원을 관리하기 때문에 효율성이라는 목표가 있다. 외부의 접근에 대해 시스템에 대하여 선별적 접근을 원칙으로 하므로 안정성

운영체제의 구조

커널과 인터페이스

시스템 호출과 디바이스 드라이버

커널의 구성

가상머신

대표적인 운영체제의 종류

유닉스와 리눅스

매킨토시와 MacOS

윈도우 운영체제

모바일 운영체제