Linux 커널이란?
커널은 시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자이다 .
커널은 시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자로, 그 기능을 간단히 살펴보면
프로세서 관리 - 처리 속도를 향상시키기 위해 여러 프로세서를 병렬로 연결하여 사용한다. 시스템에서 동작하는 프로세스도 커널에서는 관리해야할 자원이고, 운영체제의 처리 요구에 맞춰 동작할수 있도록 각 프로세스에 필요한 프로세서를 효율적으로 할당하고 수행하도록 관리한다.
프로세스 관리 - 운영체제에서는 최소한 하나 이상의 프로세스가 동작한다. 프로세스는 다른말로 태스크라고도 하며, 주어진 일을 수행하는 기본 단위다. 커널은 스케줄러를 이용하여 여러 프로세스가 동작할 수 있도록 각 프로세스를 생성하고 제거하며, 외부환경과 프로세스를 연결하고 관리한다.
메모리 관리 - 각각의 프로세스가 독립적인 공간에서 수행할 수 있도록 가상 주소 공간을 제공한다. 가상메모리를 바탕으로 물리적인 한계를 극복할수 있는 기능을 제공한다.
이외에도 파일 시스템 관리, 디바이스 제어, 네트워크 관리 정도가 있다.
커널 종류
모놀리식 커널?
모놀리식 커널은 하드웨어 위에 고수준의 가상 층을 가지고 있습니다. 고수준의 가상층은 기본 연산 집합과 관리자모드에서 작동하는 프로세스관리, 동시성, 메모리관리 등의 운영체제 서비스 구현을 위한 시스템콜(System Call)로 되어 있습니다.
이러한 연산들을 제공하는 모듈은 같은 주소 공간에서 실행되기 때문에 코드의 집적도는 매우 조밀하고 수정하기 어렵고 한 모듈의 버그는 전체 시스템을 멈추게 할 수도 있습니다. 그러나 구현이 신뢰할 정도로 완성되면 컴포넌트의 내부 집적이 내부의 시스템 이용을 효과적이게 하여 높은 효율을 보입니다.
커널은 시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자로, 그 기능을 간단히 살펴보면
프로세서 관리 - 처리 속도를 향상시키기 위해 여러 프로세서를 병렬로 연결하여 사용한다. 시스템에서 동작하는 프로세스도 커널에서는 관리해야할 자원이고, 운영체제의 처리 요구에 맞춰 동작할수 있도록 각 프로세스에 필요한 프로세서를 효율적으로 할당하고 수행하도록 관리한다.
프로세스 관리 - 운영체제에서는 최소한 하나 이상의 프로세스가 동작한다. 프로세스는 다른말로 태스크라고도 하며, 주어진 일을 수행하는 기본 단위다. 커널은 스케줄러를 이용하여 여러 프로세스가 동작할 수 있도록 각 프로세스를 생성하고 제거하며, 외부환경과 프로세스를 연결하고 관리한다.
메모리 관리 - 각각의 프로세스가 독립적인 공간에서 수행할 수 있도록 가상 주소 공간을 제공한다. 가상메모리를 바탕으로 물리적인 한계를 극복할수 있는 기능을 제공한다.
이외에도 파일 시스템 관리, 디바이스 제어, 네트워크 관리 정도가 있다.
커널 종류
모놀리식 커널?
모놀리식 커널은 하드웨어 위에 고수준의 가상 층을 가지고 있습니다. 고수준의 가상층은 기본 연산 집합과 관리자모드에서 작동하는 프로세스관리, 동시성, 메모리관리 등의 운영체제 서비스 구현을 위한 시스템콜(System Call)로 되어 있습니다.
이러한 연산들을 제공하는 모듈은 같은 주소 공간에서 실행되기 때문에 코드의 집적도는 매우 조밀하고 수정하기 어렵고 한 모듈의 버그는 전체 시스템을 멈추게 할 수도 있습니다. 그러나 구현이 신뢰할 정도로 완성되면 컴포넌트의 내부 집적이 내부의 시스템 이용을 효과적이게 하여 높은 효율을 보입니다.
모놀리식 커널의 지지자들은 코드가 부정확한지 그런 코드가 커널에 포함되어 있는지 확인할 수 있고 그것은 마이크로 커널에 비해 미세한 우위에 있다고 주장합니다.
리눅스, FreeBSD, 솔라리스와 같은 모놀리식커널은 실행 모듈을 실시간으로 읽어들일 수 있습니다. 실시간으로 실행 모듈을 읽는 특징은 커널이 허용하는 범위 내에서 손쉽게 확장 가능하도록 커널 공간의 코드의 양을 최소한으로 유지시켜줍니다.
마이크로소프트 윈도우즈 NT(NT, 2000, XP, 2003 등)는 초창기에는 하이브리드커널이었으나 후기버전은 모놀리식커널로 변경되었습니다. 윈도우즈 NT 시리즈는 상위의 서비스들을 NT executive라는 서버로 구현하였습니다. Win32 특성은 처음에는 사용자 모드의 서버 형태로 구현되었으나, 최근 버전에서는 관리자 주소 영역으로 이동하였습니다. 다양한 서버들이 로컬 프로시저 콜(LPC; Local Procedure Call)이라 불리는 주소 영역간 매커니즘을 통해 통신하며, 성능 최적화를 위해 공유메모리를 이용합니다.
모놀리식 커널을 사용한 운영체제는 다음과 같습니다.
- BSD 커널과 같은 전통적인 유닉스 커널
- 리눅스 커널
- 솔라리스 커널
- 윈도우즈 NT 커널
- 벨로나2 커널
- AIX 커널
- AGINX와 같은 교육용 커널

댓글
댓글 쓰기