What is an OS Kernel (Baeldung 번역)

Jay Jang·2022년 8월 2일
0

OS

목록 보기
1/1
post-thumbnail

https://www.baeldung.com/cs/os-kernel

What is an OS Kernel | Baeldung의 What is an OS Kernel을 번역한 것입니다.

모든 저작권은 Baeldung에 있습니다. All copyrights are in Baeldung.


Introduction


OS(운영체제) Kernel(커널)은 컴퓨터 공학에서 어려운 주제 중 하나이다.

이 튜토리얼에서는 OS Kerenel이 무엇인지 간단히 정의하고 그 목적에 대해 알아볼 것이다.


Definition


Kernel 커널은 운영 체제의 가장 핵심적인 부분이다. 이는 하드웨어와 컴퓨터 프로세스 사이의 주요한 인터페이스이다.

커널은 자원을 최대한 효율적으로 사용하기 위해 하드웨어와 프로세스 사이를 연결한다.

커널이 커널(핵심, 알맹이)로 불리는 이유는 딱딱한 껍질(shell) 내부의 종자(seed)처럼
OS 내부에서 작동하기 때문이다. (OS에서 shell은 또한 쉘 스크립트, 시스템 프로그래밍을 의미하기도 한다.)

아래 그림은 OS에서 커널의 위치를 보여준다. 태블릿, 데스크톱, 서버 또는 다른 종류의 장치 등 하드웨어의 모든 주요 기능을 제어한다.

커널은 부트 로더 이전에 메모리에 로드된 초기 프로그램 중 하나이다.
부트 로더는 CPU에 대한 명령어를 해석하는 역할을 한다.
키보드와 모니터 등 주변기기는 물론 메모리까지 관리한다.


Purpose of the Kernel


커널은 프로세스 및 메모리 관리, 디스크 저장소, low-level 네트워킹과 같은 몇 가지 중요한 작업을 한다. 커널의 목적을 다음과 같이 요악할 수 있다.

  • CPU(central process unit)의 다음 프로세스, 시기 및 기간을 결정한다.
  • 어디에 어떤 메모리를 저장하기 위해 얼마나 많은 메모리를 사용하고 있는지 모니터링한다.
  • 하드웨어와 프로세스 사이에서 인터프리터 역할을 수행한다.
  • 시스템 호출을 통해 프로세스로부터 서비스 요청을 받는다.

개발자가 커널을 적절히 구현하면, 사용자는 커널에 대해 더 이상 신경쓰지 않아도 된다.

커널은 kernel space라고 하는 자체 영역에서 동작하며, 메모리를 할당하고 kernel space에서 모든 것이 저장되는 공간을 모니터링한다.

user space는 사용자가 파일과 웹 브라우저를 보는 환경이다.
이러한 프로그램들은 시스템 호출 인터페이스를 사용하여 커널과 통신한다


Where is the Kernel?


커널이 장치에서 위상, 위치를 시각화 한다면, 세 개의 계층(레이어)으로 나뉘어진 장치를 생각해 볼 수 있다.

User process: user process는 실제로 사용자 공간을 만든다. 그러나 이러한 프로세스는 커널이 제어하는 애플리케이션이다. 커널은 또한 이러한 프로세스들이 서로 통신할 수 있게 하며, 통신을 위해 IPC(inter-process communication 프로세스간 통신) 매커니즘을 사용한다.

Kernel: 보이는 것과 같이, 레이어 중심에 있다. OS의 핵심이다.

Hardware: 물리적 장치, 즉 시스템 기반이다. 메모리, CPU(또는 프로세서), 그래픽, 스토리지, 네트워킹과 같은 입출력(I/O) 장치로 구성된다. CPU는 계산을 실행하고 메모리에 읽고 쓴다.

CPU에서 시스템에 의해 실행되는 코드에는 user mode 사용자 모드kernel mode 커널 모드, 두 가지 모드가 있다.

코드가 커널 모드에서 실행되는 동안 하드웨어에 무제한으로 액세스할 수 있다. 그러나 코드가 사용자 모드에서 실행되면 CPU와 메모리에 대한 액세스가 제한된다.

이 두 가지 모드는 몇 가지 매우 중요하고 복잡한 작업을 제공한다. 예를 들어, 보안을 위한 권한 분리에 도움을 준다. 실제로, 사용자 모드에서 프로세스가 실패하면 커널 모드가 오류를 최소화하고 프로세스를 복구할 수 있다는 것을 의미한다.

monolithic kernel, microkernel, exokernel, hybrid kernel, 그리고 nano kernel과 같은 많은 커널 타입이 있다. monolithic kernel과 microkernel의 주요한 차이는 그들의 시스템 호출, kernel space와 관련이 있다.

예를 들어, 대부분의 유닉스 커널은 monolithic이다. 각각의 커널 계층은 전체 커널 프로그램에 통합되어 커널 모드에서 실행된다.
반면에 microkernel OS들은 IPC 매커니즘과 기본 스케쥴러와 같은 소수의 kernel 기능만 필요로 한다.


Conclusion


이 문서를 통해 OS의 커널에 대한 정의를 알아보았다.

그리고 커널의 목적에 대한 정보를 간략하게 이야기했다.
그 후, 커널이 장치에서 어디에 위치하는지 시각화하고, 커널 유형 중 일부를 나열하였다.

REFERENCE


https://www.baeldung.com/cs/os-kernel

profile
그때는맞고지금은틀리다

0개의 댓글