728x90
[Kernel 정의]
운영체제(OS)의 핵심적인 부분으로 컴퓨터 하드웨어와 응용프로그램 사이를 연결해 주는 인터페이스
시스템에 존재하는 자원을 효율적으로 관리하기 때문에 사용자와 상호작용은 하지 않고 이를 지원하는 프로그램이 대표적으로 Shell이 있다. Shell 이 궁금하다면? [OS/Linux] - Linux - shell(쉘,셸) 이란 무엇일까?
[Kernel의 기능]
- 프로세서 관리
- 운영체제의 처리속도를 향상시키기 위해 여러 프로세서를 병렬로 연결하여 사용한다. 시스템에서 동작하는 프로세스도 커널에서는 관리해야 할 자원이고, 운영체제의 처리 요구에 맞춰 동작하도록 각 프로세스에 필요한 프로세서를 효율적으로 할당하고 수행하도록 관리한다. - 프로세스(Task) 관리
- 커널은 스케줄러를 이용하여 여러 프로세스가 동작하도록 각 프로세스를 생성하고 제거하며, 외부환경과 프로세스를 연결하고 관리한다. - 메모리 관리
- 각각의 프로세스가 사용할 가상 주소 공간을 제공해준다. 가상메모리를 바탕으로 물리적인 한계를 극복할 수 있는 기능을 제공한다. - 파일 시스템 관리
- 물리적 자원인 디스크를 추상적 자원인 File로 제공해준다. - 디바이스 제어
- 각종 외부 장치를 운영체제에 연결 가능하도록 제어해준다. - 네트워크 관리
- 물리적 자원인 네트워크 장치를 추상적 자원인 Socket으로 제공해준다.
※ 태스크(task)란 컴퓨터가 주어진 일을 수행하는 기본 단위
[Kernel의 역할]
커널은 프로세서와 시스템 메모리에 상주하면서 자원을 관리하고, 스케줄러를 관리하여 다중 프로세스를 구현하고, 시스템에 연결된 입출력을 처리하는 운영체제의 핵심 역할을 수행한다.
[Kernel의 특징]
- 단일형 커널(monolithic kernel)
- 리눅스 커널은 대부분 유닉스 커널과 같은 모놀리식(monolithic)이다. 모놀리식이기 때문에 논리적으로 구분되는 여러 구성요소들이 상호간에 연결되어 동작한다. - 비선점형(커널 2.4)과 선점형(커널2.6)
- 비선점형 커널은 프로세스의 동작 상태가 사용자 모드에서 커널 모드로 진입하면 외부에서 해당 프로세스를 중지시키지 못한다.
반대로 프로세스가 커널 모드로 동작하더라도 스케줄링 정책이나 다른 외부적인 접근을 통해 프로세스를 강제로 중지시킬 수 있는 경우를 선점형이라고 한다. 2.6커널은 선점형과 비선점형을 선택할 수 있다. - 가상 메모리 시스템(VM)
- 리눅스 커널은 다양한 플랫폼에서 동작하는 운영체제이므로 i386에서 동작되던 메모리 관리 시스템을 표준화하여 다양한 MMU 디바이스에 적용할 수 있도록 구성되어있다. - No MMU 지원
- 리눅스 커널은 주로 MMU를 이용한 메모리 관리를 수행하지만 임베디드 시스템에서 사용하는 프로세서의 경우는 MMU디바이스가 없는 경우도 있다. 커널 2.6에서는 MMU가 없는 시스템도 지원한다. - 가상 파일 시스템(VFS)
- 리눅스에서는 ext2를 비롯 다양한 파일 시스템을 사용할 수 있고, 윈도우에서 동작하는 NTFS파일 시스템과 FAT32도 처리할 수 있다. - 모듈을 이용한 커널 확장
- 운영 체제가 동작하는 중에도 커널 코드를 추가하거나 삭제할 수 있다. - 커널 스레드
- 커널 2.4이전에는 매우 제한된 커널 스레드를 지원했지만, 2.6에서부터는 NPTL(Native POSIX Threading Libray)과 NGPT(Next Generation POSIX Threading Package)를 지원한다. - 멀티스레드 지원, 멀티 프로세서 지원, GPL 라이센스
728x90
반응형
'OS > Linux' 카테고리의 다른 글
Linux - 텍스트 편집 명령어(sed) (2) | 2023.02.16 |
---|---|
Linux - mount(마운트) (0) | 2023.02.14 |
Linux - shell(쉘,셸) 이란 무엇일까? (0) | 2023.02.08 |
Linux - 사용자 계정 관리 명령어 (0) | 2023.02.08 |
Linux - 서비스관리 명령어 (systemctl / service / chkconfig) (0) | 2023.02.07 |