CS/OS

커널 (Kernel)

dragonhyeon 2024. 9. 24. 18:38
728x90
반응형

커널 (Kernel)

커널은 운영체제의 핵심 구성 요소로, 메모리에 상주하며 시스템 자원 관리 및 하드웨어와 소프트웨어 간의 중재를 담당합니다.

운영체제 (Operating System, OS) : 커널을 포함하여 사용자 인터페이스, 시스템 유틸리티 등을 포괄하는 개념으로, 컴퓨터 자원을 관리하고 사용자와 하드웨어 간의 인터페이스를 제공합니다.

커널 시작

  1. 부팅 과정에서, 컴퓨터가 처음 켜지면 하드웨어는 부트로더 (bootloader) 를 메모리에 로드합니다. 부트로더는 하드웨어의 초기화 작업을 수행한 후, 운영체제의 커널을 디스크에서 메모리로 로드합니다.
  2. 커널은 메모리에 로드된 후 초기화 과정을 거치며 시스템의 하드웨어 자원들을 설정합니다. 이 과정에서 드라이버를 로드하고, 시스템 호출 인터페이스를 설정하며, 프로세스 관리, 메모리 관리, 장치 관리 등의 작업을 준비합니다.
  3. 초기화 작업이 모두 완료되면 커널은 시스템이 재부팅되거나 종료될 때까지 메모리에 상주하며 하드웨어 자원과 사용자 프로그램 간의 상호작용을 조정하며, 자원 관리, 프로세스 관리, I/O 처리 등 다양한 역할을 수행합니다.
부트로더가 커널을 메모리에 로드한 후, 커널은 시스템이 종료될 때까지 메모리에 상주하며 계속 실행됩니다.

커널 실행

커널의 주요 작업은 시스템 호출 (System Call) 과 인터럽트 (Interrupt) 에 의해 트리거 됩니다.

  • 시스템 호출 (System Call) :
    • 프로세스가 요청하는 작업을 처리합니다.
    • 예: 파일 읽기/쓰기, 프로세스 생성 및 종료, 메모리 할당,  네트워크 통신, 장치 접근 등.
  • 인터럽트 (Interrupt) :
    • 하드웨어 또는 타이머와 같은 외부 이벤트에 대응합니다.
    • 예: 키보드 입력, 네트워크 패킷 수신, 타이머에 따른 프로세스 스케줄링 등.

커널의 주요 역할

커널은 다음과 같은 역할을 합니다.

  • 프로세스 관리 (Process Management) :
    • 프로세스 생성 및 종료: 새로운 프로세스를 생성하고 종료를 관리.
    • 프로세스 스케줄링: CPU 자원을 효율적으로 사용하기 위해 여러 프로세스를 스케줄링하여 실행.
    • 프로세스 간 통신 (IPC) : 프로세스 간의 데이터 교환과 동기화를 지원.
    • 프로세스 상태 관리: 실행, 대기, 종료 등 프로세스의 상태를 관리.
  • 메모리 관리 (Memory Management) :
    • 메모리 할당 및 해제: 프로세스에 필요한 메모리를 할당하고, 사용이 끝난 메모리를 해제.
    • 가상 메모리: 실제 메모리 크기를 초과하는 메모리를 사용할 수 있도록 가상 메모리를 제공.
    • 메모리 보호: 프로세스들이 서로의 메모리에 접근하지 못하도록 보호.
  • 파일 시스템 관리 (File System Management) :
    • 파일 및 디렉터리 관리: 파일과 디렉터리를 생성, 삭제, 읽기, 쓰기 등의 작업을 관리.
    • 파일 권한 관리: 사용자의 접근 권한을 설정하고 확인.
    • 입출력 (I/O) 관리: 하드디스크, SSD 등의 저장 장치와 데이터를 주고받는 작업을 관리.
  • 장치 관리 (Device Management) :
    • 장치 드라이버 관리: 다양한 하드웨어 장치들과의 상호작용을 위한 드라이버를 관리.
    • 장치 간 통신: 네트워크, 입력 장치, 출력 장치 등과 데이터를 교환.
    • 플러그 앤 플레이: 장치 연결 및 제거를 동적으로 처리.
  • 시스템 호출 관리 (System Call Handling) :
    • 사용자 모드와 커널 모드 간의 인터페이스 제공: 사용자 애플리케이션이 커널 기능을 사용할 수 있도록 시스템 호출 인터페이스 제공.
    • 보호된 실행 환경: 프로세스가 커널 기능을 사용할 때 발생할 수 있는 오류나 보안 위협을 방지.
  • 보안 및 권한 관리 (Security and Access Control) :
    • 사용자 인증 및 권한 관리: 사용자와 그룹에 대한 인증, 접근 권한 설정 및 관리.
    • 보호된 메모리 접근: 프로세스가 다른 프로세스의 메모리 영역에 접근하지 못하도록 보호.
  • 네트워크 관리 (Network Management) :
    • 데이터 패킷 전송 및 라우팅: 네트워크 프로토콜을 통해 데이터 전송.
    • 네트워크 인터페이스 관리: 네트워크 장치와의 상호작용 관리.
728x90
반응형

'CS > OS' 카테고리의 다른 글

프로세스 (Process) vs 쓰레드 (Thread)  (2) 2024.10.10
메모리 (Memory)  (5) 2024.10.05
표준 스트림 stdin, stdout, stderr  (3) 2024.09.30
프로그램 vs 프로세스  (2) 2024.09.23
CLI 환경의 이해  (6) 2024.09.16