ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 커널(Kernel)
    Computer Science 2020. 12. 9. 23:41

    커널은 컴퓨터의 운영체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을 완전히 통제한다.

    운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가지 서비스를 제공한다.

     

    소프트웨어와 하드웨어간의 커뮤니케이션을 관리하는 프로그램

    운영체제의 핵심 구성요소로서 입출력을 관리하고 소프트웨어로부터의 요청을 컴퓨터에 있는 하드웨어(CPU, 메모리, 저장장치등)가 처리 할 수 있도록 요청을 변환하는 역할을 한다.

    이렇게 하드웨어를 관리하고 필요한 프로세스를 나눠주는 등 여러 시스템 자원을 제어하고, 컴퓨터 부팅시 부트로더에 의해 로드되어 항상 메모리에 상주하게 됩니다.

     

    커널이 응용 소프트웨어를 컴퓨터 하드웨어에 연결하고 있다.

    커널의 역할

    • 보안
      • 커널은 컴퓨터 하드웨어와 프로세스 보안을 책임진다.
    • 자원 관리
      • 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다.
      • 특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다.
    • 추상화
      • 같은 종류의 부품에 대해 다양한 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 문제를 매우 복잡하게 만들 수 있다. 일반적으로 커널은 운영체제의 복잡한 내부를 감추고 깔끔하고 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화들로 구현된다.

     

    리눅스 커널이란?

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

    두 가지 관리 리소스 사이에서 효과적으로 통신한다.

    커널이라는 이름은 단단한 껍질 안의 씨앗처럼, OS 내에 위치하고 전화기, 노트북, 서버 또는 컴퓨터 유형에 관계없이

    하드웨어의 모든 주요 기능을 제어하기 때문에 붙은 이름이다.

     

    커널의 기능

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

     

    비유

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

     

     

    사용자가 입력한 명령어는 일련의 과정을 거쳐 하드웨어를 제어하게 됩니다.

    사용자가 명령어를 작성하고 조작하기까지 이 사이에는 몇 가지의 과정을 거치게 됩니다.

    1. 사용자가 명령어를 입력하면
    2. 컴퓨터 내부에는 Shell이 이를 받아들이고, 명령어를 해석하여
    3. 커널(Kernel)을 통해 하드웨어를 조작합니다.

    즉, 제일 하단에는 하드웨어가 있고, 그 위에는 커널 커널위에는 쉘, 그리고 쉘 위에는 사용자가 존재합니다.

     

     

    시스템콜

    시스템 호출 또는 시스템 콜(system call), 간단히 시스(syscall)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.

    시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다. 

    'Computer Science' 카테고리의 다른 글

    JVM 이해  (0) 2020.12.19
    의존성 주입(Dependecy Injection) 이란?  (0) 2020.12.17
    Garbage Collector 이해  (0) 2020.12.01
    PNG와 JPG 파일 차이  (0) 2020.11.30
    메모리 영역  (0) 2020.09.24
Designed by Tistory.