728x90
반응형
커널 (Kernel)
커널은 운영체제의 핵심 구성 요소로, 메모리에 상주하며 시스템 자원 관리 및 하드웨어와 소프트웨어 간의 중재를 담당합니다.
운영체제 (Operating System, OS) : 커널을 포함하여 사용자 인터페이스, 시스템 유틸리티 등을 포괄하는 개념으로, 컴퓨터 자원을 관리하고 사용자와 하드웨어 간의 인터페이스를 제공합니다.
커널 시작
- 부팅 과정에서, 컴퓨터가 처음 켜지면 하드웨어는 부트로더 (bootloader) 를 메모리에 로드합니다. 부트로더는 하드웨어의 초기화 작업을 수행한 후, 운영체제의 커널을 디스크에서 메모리로 로드합니다.
- 커널은 메모리에 로드된 후 초기화 과정을 거치며 시스템의 하드웨어 자원들을 설정합니다. 이 과정에서 드라이버를 로드하고, 시스템 호출 인터페이스를 설정하며, 프로세스 관리, 메모리 관리, 장치 관리 등의 작업을 준비합니다.
- 초기화 작업이 모두 완료되면 커널은 시스템이 재부팅되거나 종료될 때까지 메모리에 상주하며 하드웨어 자원과 사용자 프로그램 간의 상호작용을 조정하며, 자원 관리, 프로세스 관리, 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 |