카테고리 없음

Linux 커널이란?

chaenii 2021. 8. 7. 16:58

Linux 커널은 Linux 운영 체제의 주요 구성 요소이며, 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스이다.

커널이라는 이름은 단단한 껍질안의 씨앗처럼 OS내에 위치하고 전화기, 노트북, 서버 또는 컴퓨터 유형에 관계없이 하드웨어의 주요 기능을 제어하기 때문에 붙은 이름이다.


커널의 기능

커널은 다음과 같은 4가지 기능을 수행한다.

  1. 메모리 관리 : 메모리가 어디에서 무엇을 저장하는 데 얼마나 사용되는지를 추적한다.
  2. 프로세스 관리: 어느 프로세스가 중앙 처리 장치(CPU)를 언제 얼마나 오랫동안 사용할지를 결정한다.
  3. 장치 드라이버: 하드웨어와 프로세스 사이에서 중재자/인터프리터의 역할을 수행한다.
  4. 시스템 호출 및 보안: 프로세스의 서비스 요청을 수신한다.

 

커널은 사용자가 볼 수 없으며 커널 공간이라는 자신만의 작은 작업 공간에서 메모리를 할당하고 저장되는 모든 항목을 추적한다. 웹 브라우저 및 파일과 같은 사용자가 볼 수 있는 것을 사용자 공간이라고 한다. 이러한 애플리케이션은 시스템 호출 인터페이스(SCI)를 통해 커널과 통신한다.

 

커널은 강력한 경영진(하드웨어)를 위해 일하는 바쁜 비서라고 할 수 있다. 비서의 할 일은 직원 및 대중(사용자)로 부터 수신되는 메시지 및 요청(프로세스)을 경영진에게 전달하고, 어디에 무엇이 저장되어 있는지 기억(메모리)하고, 특정한 시간에 누가 경영진을 얼마 동안 만날 수 있는지 결정하는 것이다.


OS내에서 커널의 위치

커널과 관련하여 Linux 시스템은 다음과 같은 3개의 레이어로 구성되어 있다고 볼 수 있다.

  1. 하드웨어: 시스템의 토대가 되는 물리적 머신으로, 메모리(RAM)와 프로세서 또는 중앙 처리 장치(CPU) 그리고 입출력(I/O) 장치(예: 스토리지, 네트웨킹, 그래픽)으로 구성된다.
  2. Linux 커널: OS의 핵심이다. 메모리에 상주하며 CPU에 명령을 내리는 소프트웨어이다.
  3. 사용자의 프로세스: 실행 중인 프로그램으로, 커널이 관리한다. 사용자의 프로세스가 모여 사용자 공간을 구성한다. 커널은 이러한 프로세스 및 서버가 서로 통신(프로세스 간 통신 또는 IPC라고 함)할 수 있도록 해준다.

시스템에서 실행되는 코드는 커널 모드 또는 사용자 모드라는 두 가지 모드 중 하나로 CPU에서 실행된다.

커널 모드에서 실행 중인 코드는 하드웨어에 무제한 엑세스가 가능한 반면, 사용자 모드에서는 CPU 및 메모리가 SCI를 통해 엑세스 하는 것을 제한한다. 메모리도 이와 유사하게 구분 된다. 이러한 두 가지 작은 세부 사항이 보안, 컨테이너 구축 및 가상 머신을 위한 권한 구분과 같은 복잡한 작은의 토대가 된다.


참고 자료 

https://www.redhat.com/ko/topics/linux/what-is-the-linux-kernel

 

Linux 커널이란 무엇일까요?

Linux 커널은 Linux 운영 체제(OS)의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스입니다.

www.redhat.com

 

반응형