컴퓨터시스템 및 구조

기본적인 컴퓨터 체계와 운영체제(Operating System)에 대해서

JayJeon 2021. 1. 19. 20:02

안녕하세요 JayJeon 입니다.

WSL2를 컴퓨터에 설치해보면서, Linux kernel에 대한 개념을 알아보고 싶어서

찾아보니, 너무나도 비어 있는 개념이 많더군요.

그래서 오늘은 기본적인 컴퓨터 체계와 운영체제(Operating System)에 구조에 대해서 정리해보려고 해요.

 

우선 기본적인 컴퓨터 구조에 대해서 정리해볼게요.

우선 컴퓨터는 크게 하드웨어와 소프트웨어로 나누어져있죠.

하드웨어와 소프트웨어의 정의에 대해서는 생략하겠습니다. 

[컴퓨터의 기본적인 구조]

하드웨어는 컴퓨터와 연결되어 있는 여러 물리적인 장치들이 있겠고,

그렇다면 소프트웨어는 어떻게 구성되어져 있을까요?

[소프트웨어의 구조]

소프트웨어는 다시 시스템 / 응용 소프트웨어로 나누어집니다.

 

응용 소프트웨어

 

응용소프트웨어는 흔히 우리가 확인할 수 있는 운영체제 위에 설치되는 프로그램들을 의미하는데요.

예를들어, MS OFFICE, 웹브라우저 그리고 게임 같은 것들이 있을 수 있겠네요.

 

시스템 소프트웨어

 

시스템소프트웨어는 위의 프로그램들을 실행하려고 할 때, 이런 사용자들의 지시를 하드웨어와의 소통을 이루어 냄으로써 수행하는 프로그램입니다. 우리는 이런 소프트웨어를 (OS : Operating System) 즉, 운영체제 라고 부르죠.

[운영 체제의 역할 도식도]

조금만 더 깊게 들어가볼게요!

 

컴퓨터의 꽃, 운영체제(OS) 그것은 무엇이고, 어떤 역할을 하는 것일까?

 

운영체제 

하드웨어 자원을 관리할 뿐 아니라 응용 소프트웨어를 효율적으로 활용하기 위해 만들어진 시스템 소프트웨어

 

운영체제의 역할

 

운영체제의 첫번째 역할인, 응용소프트웨어를 실행시키기 위해 하드웨어와 소통 입니다.

간단한 계산기 기능을 하는 컴퓨터를 만들어보아요. 우리는 더하기, 빼기, 곱하기 그리고 나누기를 모두 시행시킬 수 있어만 할껍니다. 두수를 입력하고 한가지의 숫자가 출력 되겠죠. 더하기를 할 때도 빼기를 할 때도 계속 우리는 컴퓨터에 두수를 입력하고 한가지의 숫자를 출력하는 프로그램을 매번 넣어야 할까요? 아뇨, 절대 그렇지 않습니다. 수학적 개념을 잠깐 넣어 설명하면 A(B+C)로 예를 들 수 있겠군요. AB+AC를 한가지 공통과정 A로 묶어서 기본 프로그램으로 내장시켜 놓은 것. 그것을 운영체제라고 보면 됩니다. 하드웨어와의 소통을 간결화하고, 공통 시스템 서비스를 제공합니다.

 

운영체제의 두번째 역할은, 하드웨어의 관리 입니다.

가끔, 컴퓨터를 부팅하려고할 때, 운영체제가 깨졌다? 라는 말 많이 들어보셨을 겁니다. 검은 바탕화면 혹은 파란색 바탕화면이 보여지면서, 컴퓨터가 돌아가는것 같긴한데, 정상적으로 켜지지 않죠? 운영체제는 하드웨어의 자원들을 제어하는 역할을 합니다. 그리고 그 제어하는 자원들을 다양한 방식으로 처리하는 역할들을 하죠. 사용자로부터 새로운 명령이 들어왔을 때,  컴퓨터가 알아들을 수 있는 언어로 바꾸어 주어 하드웨어가 처리할 수 있게 도와주는 것 이런 역할도 운영체제가 하는 일이랍니다. 이런 운영체제가 제 역할을 하지 못한다면, 컴퓨터의 하드웨어가 시동이 켜져도, 그 안에 있는 자원들을 제어할 수도 문제를 해결할 수도 없는 겁니다. 

 

 

 

이러한 운영체제의 간단한 구조는 아래와 같습니다.

운영체제는 크게 커널 공간과 사용자 공간으로 나누어서 구성되어져 있습니다.

[운영체제 공간 구조]

운영체제의 반을 갈라 본다고 생각해봅시다. 사용자가 응용소프트웨어(ex. 웹브라우저)를 실행시킨다고 하면, 사용자가 응용 소프트웨어를 실행시키기위한 공간이 있어야할테고, 하드웨어가 그 명령을 수행하기 위한 공간이 있어야할 겁니다.

 

사용자 공간

사용자 공간은 컴퓨터를 사용하는 유저가 응용 소프트웨어(어플리케이션)을 이용하기 위해 마련되어지는 공간입니다. 컴퓨터를 부팅시켰을 때, 보여지는 윈도우 화면이 그 예가 될 수 있겠네요. 

 

커널(kernel)

커널은 시스템의 모든 것을 통제하는 컴퓨터의 이면이라고 보는게 편할 것 같네요. 사용자가 볼 수 없는 응용소프트웨어와 하드웨어 사이에서 이루어지고 있는 작업들을 수행하는 공간입니다. 

 

그렇다면, 사용자가 하드웨어에게 명령을 내리거나 소통할 수 있는 방법이 없는걸까요? 그렇지 않습니다. 분리되어져 있는 커널공간과 사용자 공간을 소통시켜주는 것이 바로 "Shell(쉘)" 입니다. 

 

 

 

운영체제를 구성하고 있는 공간에 대한 구성도를 대략적으로 그려보자면 이렇게 되겠네요.

 

 

오늘은 기본적인 컴퓨터 체계와  운영체제(Operating System)에 대해서 알아보았습니다.