IT - Introduction to Computer Science

[IT지식] 커널(Kernel)이란?

개발자하소서 2023. 1. 27. 15:20
728x90
반응형
SMALL

 

📌 컴퓨터 구분

 

- 컴퓨터는 크게  2가지로 구분할 수 있다. 

 

- 물리적으로 만질 수 있는 하드웨어 ( 키보드, 모니터, 본체안의 CPU, 메모리 등) 

 

- 물리적으로 존재하지 않는 소프트웨어 (시스템 소프트웨어, 응용 소프트웨어)

 

📌 소프트웨어 구분

 

- 소프트 웨어는 크게  운영체제(Linux, MacOS, Windows 등) 와 그 위에 설치되는 프로그램인 

  응용 프로그램( Excel, Chrome, PowerPoint 등 ) 으로 다시 나눌 수 있다. 

 

 

📌 운영체제의 구분

 

- 운영체제는 커널(Kernel)시스템 프로그램으로 구분된다.

 

 

📌 커널의 역할 

 

- Kernel 의 사전적인 의미는 "알맹이, 핵심" 이라는 뜻을 가진다.

 

- 커널은 "운영체제의 핵심부로서 컴퓨터 자원(System Resource)들을 관리하는 역할"을 수행한다. 

 

* 컴퓨터 자원(System Resource) : CPU, 메모리, 파일, 네트워크, 입출력 장치 등 

 

- 즉, 커널은 항상 컴퓨터 자원만 바라보고 있기에, 사용자와의 상호작원은 전혀 지원하지 않는다.

 

- 이때, 등장하는 것이 바로 시스템 프로그램인데, 대표적으로 쉘(shell)이 있다.

 

* 쉘(shell) : 사용자가 컴퓨터에게 전달하는 명령을 해석하는 프로그램으로서, 커널과 사용자간 중간 다리 역할을 수행한다.

 

- 사용자는 쉘을 통하여 커널에게 명령을 내릴 수 있다.

 

 

📌 컴퓨터의 구조 세분화 

 

* 컴퓨터(Computer)

 > 하드웨어(Hardware) (예 : 컴퓨터 본체, 모니터, 키보드 등)
 > 소프트웨어(Software)
    -> 응용 프로그램 (예 : MS Office, Chrome, VSCode 등)
    -> 운영 체제(OS, Operating System) (예 : Windows, MacOS, Linux 등)
         --> 시스템 프로그램 (예 : 쉘(Shell) 등)
         --> 커널(Kernel) : 운영체제의 핵심부

 

 

📌 추상화 

 

- 커널은 컴퓨터의 자원을 관리하는 역할을 수행한다.

 

- 그 중 가장 큰 역할은 컴퓨터의 물리적 자원(하드웨어)과 추상화 자원을 관리하는 것이다.

 

- 추상화란, 일반적으로 우리가 컴퓨터를 사용할 때 여러 사용자를 등록하여 사용할 수 있는데, 이렇게 여러 사용자를 등록하여 사용할 때 마치 하나의 하드웨어를 독점하여 활용하는 것처럼 느끼게 된다.

 

- 이처럼 하나인 하드웨어를 마치 여러 개 처럼 보여지도록 하는 기술을 추상화라고 한다. 

 

- 커널을 이를 위해 하나의 하드웨어 자원을 여러 사용자들을 위한 여러개의 추상화된 객체로 관리한다.

 

- 커널이 물리적인 자원을 추상화하면 용어가 달라지는데 매칭하면 아래와 같이 대응된다.

 

물리적 자원 이름 추상화한 자원 용어 
CPU 테스크 (Task)
메모리(Memory) 페이지(Page), 세그먼트(Segment)
디스크(Disk) 파일(File)
네트워크(NetWork) 소켓(Socket)

 

- 커널은 컴퓨터의 물리적인 자원과 추상화 자원을 '관리'한다. 

 

- 따라서 커널은 5가지 관리자들로 구성되어 있다.

 

 

📌 커널의 5가지 관리자 

 

1. 테스크 관리자 : 물리적인 자원인 CPU를 추상자원인 테스크로 제공 

 

2. 메모리 관리자 : 물리적인 자원인 메모리를 추상자원인 페이지세크먼트로 제공 

 

3. 파일 시스템 관리자 : 물리적 자원인 디스크를 추상자원인 파일로 제공 

 

4. 네트워크 관리자 : 물리적 자원인 네트워크 장치를 추상자원인 소켓으로 제공 

 

5. 디바이스 드라이버 관리자 : 각종 외부장치 (프린터, GPU 등) 에 대한 접근을 제공 

 

 

- 커널이 이런 자원들을 관리하는 이유는 " 사용자가 물리적인 하드웨어에 접근하고 사용할 수 있도록 매개하기 위해서" 이다.

 

- 즉, 커널은 사용자가 하드웨어에 접근하고 통신하기 위한 중간 다리 역할을 수행한다고 볼 수 있다.

 

 

 

 

 

728x90
반응형
LIST