[Linux] Kernel이란?

2024. 11. 3. 11:55·SERVER/리눅스

커널은 사용자가 system call을 통해 컴퓨터 자원을 사용할 수 있게 해주는 자원 관리자

  • 커널의 자원 관리자는 사용자 요청에 맞게 알맞는 하드웨어에 사용자 명령을 전달하고 작업을 수행

  • 컴퓨터는 크게 하드웨어와 소프트웨어로 구분
  • 소프트웨어는 운영체제와 그 위에 설치되는 프로그램인 응용 프로그램으로 나뉨
  • 운영체제는 커널과 시스템 프로그램으로 구분

커널

  • 운영체제의 핵심 부분
  • 디바이스 관리, 프로세스 관리, 메모리 관리, 시스템 콜 제공 같은 기능을 관리
  • 항상 컴퓨터 자원들만 바라보고 있어 사용자와 직접적인 상호작용은 하지 않음

→ 사용자와 상호작용을 하기 위해 필요한 것 : 시스템 프로그램 (Shell)

커널의 역할

  • 컴퓨터의 물리적(하드웨어) 자원과 추상화 자원을 관리하는 것
  • 추상화란?
    • 물리적으로 하나 뿐인 하드웨어를 여러 사용자들이 번갈아 사용할 수 있도록 마치 여러 개처럼 보이게 하는 기술

커널의 자원 관리

  • 태스크 관리자
    • 물리적 자원인 CPU를 추상화 자원인 Task로 제공
  • 메모리 관리자
    • 물리적 자원인 메모리를 추상적 자원인 Page 또는 Segement로 제공
  • 파일 시스템 관리자
    • 물리적 자원인 디스크를 추상적 자원인 File로 제공
  • 네트워크 관리자
    • 물리적 자원인 네트워크 장치를 추상적 자원인 Socket으로 제공
  • 디바이스 드라이버 관리자
    • 각종 외부 장치에 대한 접근
  • Interrupt Handling
    • 인터럽트 핸들러
  • I/O Communication
    • 입출력 통신 관리

커널의 자원 관리 이유

  • 물리적 자원을 추상화하여 사용자가 물리적인 하드웨어에 보다 쉽게 접근하기 위해
  • 컴퓨터 구성 요소들은 컴퓨터만의 언어와 규칙으로 하드웨어에 접근하고 통신해야 하는데, 커널이 이를 중간에서 돕는 역할

참고

https://hstory0208.tistory.com/entry/kernel-이란-쉽게-알아보자

저작자표시 비영리 변경금지 (새창열림)

'SERVER > 리눅스' 카테고리의 다른 글

[Linux] 프록시(Proxy)란?  (0) 2024.11.03
[Linux] 데몬 & xinetd이란?  (0) 2024.11.03
[Linux] Shell이란?  (0) 2024.11.03
[Linux] 리눅스란?  (1) 2024.10.23
우분투 20.04 LTS 한글 입력기 설치  (0) 2022.12.12
'SERVER/리눅스' 카테고리의 다른 글
  • [Linux] 프록시(Proxy)란?
  • [Linux] 데몬 & xinetd이란?
  • [Linux] Shell이란?
  • [Linux] 리눅스란?
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    Linux
    Oracle
    pcce 기출문제
    programmers
    Java
    스프링부트
    데이터베이스
    backjoon
    스프링
    postgresql
    시큐리티
    DB
    자바
    백준
    baekjoon
    프로그래머스
    python
    스프링 부트 쇼핑몰 프로젝트 with JPA
    Spring Security
    spring
    데이터
    JPA
    Flutter
    리눅스마스터 1급
    CS
    CS지식
    리눅스
    springboot
    플러터
    리눅스마스터
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[Linux] Kernel이란?
상단으로

티스토리툴바