컴퓨터 과학에서는 커널은 운영 체제의 핵심 또는 핵심인 컴퓨터 프로그램입니다. 커널을 자세히 논의하기 전에 먼저 커널의 기본, 즉 컴퓨터의 운영체제에 대해 이해해 봅시다.
운영 체제
운영 체제 또는 OS는 하드웨어 구성 요소와 최종 사용자 간의 인터페이스로 작동하는 시스템 소프트웨어입니다. 다른 프로그램을 실행할 수 있게 해줍니다. 데스크톱, 노트북, 태블릿, 스마트폰 등 각 컴퓨터 시스템에는 장치에 기본 기능을 제공하는 OS가 있어야 합니다. 널리 사용되는 일부 운영 체제는 다음과 같습니다. 윈도우 , 리눅스 , MacOS, Android, iOS 등
운영 체제에서 커널이란 무엇입니까?
- 위에서 설명한 것처럼 커널은 OS(운영 체제)의 핵심 부분입니다. 따라서 시스템의 모든 것을 완전히 제어할 수 있습니다. 하드웨어와 소프트웨어의 각 작업은 커널에 의해 관리되고 관리됩니다.
- 이는 하드웨어 수준에서 수행되는 애플리케이션과 데이터 처리 사이의 브리지 역할을 합니다. OS의 핵심 구성 요소입니다.
- 항상 컴퓨터 메모리에 상주하며 소프트웨어와 하드웨어 구성 요소 간의 통신을 가능하게 하는 OS의 일부입니다.
- 시스템 시작 시(부트로더 이후) 처음 로드되는 컴퓨터 프로그램입니다. 로드되면 나머지 스타트업을 관리합니다. 또한 소프트웨어의 메모리, 주변 장치 및 I/O 요청을 관리합니다. 또한 모든 I/O 요청을 CPU에 대한 데이터 처리 명령으로 변환합니다. 다음과 같은 다른 작업도 관리합니다. 메모리 관리, 작업 관리, 디스크 관리 등 .
- 커널은 유지되며 일반적으로 다음과 같은 별도의 메모리 공간에 로드됩니다. 보호된 커널 공간. 응용 프로그램이나 OS의 덜 중요한 부분에 의해 접근되지 않도록 보호됩니다.
- 브라우저, 워드 프로세서, 오디오 및 비디오 플레이어와 같은 기타 응용 프로그램은 별도의 메모리 공간을 사용합니다. 사용자 공간.
- 이 두 개의 별도 공간으로 인해 사용자 데이터와 커널 데이터는 서로 간섭하지 않으며 불안정성과 속도 저하를 유발하지 않습니다.
커널의 기능
OS의 커널은 다양한 기능을 수행하고 시스템을 제어하는 역할을 합니다. 커널의 주요 책임은 다음과 같습니다.
다양한 작업을 수행하려면 프로세스에서 컴퓨터에 연결된 마우스, 키보드 등과 같은 주변 장치에 액세스해야 합니다. 커널은 장치 드라이버를 사용하여 이러한 장치를 제어하는 일을 담당합니다. 여기에 장치 드라이버 OS가 모든 하드웨어 장치와 통신할 수 있도록 돕거나 활성화하는 컴퓨터 프로그램입니다.
커널은 사용 가능한 모든 장치 목록을 유지 관리하며 이 목록은 이미 알려져 있거나 사용자가 구성하거나 런타임 시 OS에서 감지할 수 있습니다.
커널은 컴퓨터 메모리 액세스에 대한 모든 권한을 가집니다. 각 프로세스가 작동하려면 약간의 메모리가 필요하며 커널은 프로세스가 메모리에 안전하게 액세스할 수 있도록 합니다. 메모리를 할당하기 위한 첫 번째 단계는 다음과 같습니다. 가상 주소 지정, 이는 페이징 또는 분할을 통해 수행됩니다. 가상 주소 지정 프로세스에 가상 주소 공간을 제공하는 프로세스입니다. 이렇게 하면 애플리케이션이 서로 충돌하는 것을 방지할 수 있습니다.
커널의 중요한 기능 중 하나는 다양한 프로세스 간에 리소스를 공유하는 것입니다. 각 프로세스가 리소스에 균일하게 액세스하는 방식으로 리소스를 공유해야 합니다.
커널은 또한 동기화 및 프로세스 간 통신(IPC). 프로세스 간의 컨텍스트 전환을 담당합니다.
커널은 RAM 및 I/O 장치와 같은 컴퓨터 리소스에 액세스하는 역할을 담당합니다. RAM 또는 랜덤 액세스 메모리 데이터와 명령어를 모두 포함하는 데 사용됩니다. 각 프로그램은 실행을 위해 메모리에 액세스해야 하며 대부분 사용 가능한 것보다 더 많은 메모리를 원합니다. 이러한 경우 커널은 자신의 역할을 수행하고 각 프로세스가 사용할 메모리와 필요한 메모리를 사용할 수 없는 경우 수행할 작업을 결정합니다.
커널은 또한 키보드, 마이크, 프린터 등과 같은 I/O 장치를 사용하기 위해 애플리케이션의 요청을 할당합니다.
커널 유형
커널에는 주로 다섯 가지 유형이 있으며 다음과 같습니다.
1. 모놀리식 커널
모놀리식 커널에서는 사용자 서비스와 커널 서비스를 구현하는 데 동일한 메모리 공간이 사용됩니다.
이는 이러한 유형의 커널에서는 사용자 서비스와 커널 서비스에 사용되는 메모리가 다르지 않음을 의미합니다.
동일한 메모리 공간을 사용하므로 커널의 크기가 커지므로 OS의 전체 크기가 늘어납니다.
별도의 사용자 공간과 커널 공간을 사용하지 않기 때문에 프로세스 실행도 다른 커널 유형보다 빠릅니다.
예 모놀리식 커널의 유닉스, 리눅스, 오픈 VMS, XTS-400 등
장점:
- 별도의 사용자 공간과 커널 공간이 없고 관련 소프트웨어가 적기 때문에 프로세스 실행 속도도 더 빠릅니다.
- 따라서 단일 소프트웨어이므로 소스와 컴파일된 형식이 모두 더 작습니다.
단점:
- 어떤 서비스에서 오류가 발생하면 전체 시스템이 다운될 수 있습니다.
- 이러한 커널은 이식성이 없으므로 새로운 아키텍처마다 다시 작성해야 합니다.
- 크기가 커서 관리하기가 어렵습니다.
- 새로운 서비스를 추가하려면 전체 운영 체제를 수정해야 합니다.
2. 마이크로커널
마이크로커널은 마이크로커널이라고도 불린다. MK 이며 전통적인 커널이나 모놀리식 커널과 다릅니다. 이에, 사용자 서비스와 커널 서비스는 사용자 공간과 커널 공간이라는 두 가지 다른 주소 공간으로 구현됩니다. . 두 서비스에 대해 서로 다른 공간을 사용하므로 마이크로커널 크기가 줄어들고 OS 크기도 줄어듭니다.
마이크로커널은 모놀리식 커널에 비해 관리 및 유지 관리가 더 쉽습니다. 그러나 시스템 호출 및 컨텍스트 전환 수가 많아지면 시스템 속도가 느려져 성능이 저하될 수 있습니다.
이러한 커널은 한 서버에서 다른 서버로의 요청을 처리하기 위해 메시지 전달 시스템을 사용합니다.
마이크로커널은 메모리 주소 공간 정의, IPC(프로세스 간 통신), 프로세스 관리 등 일부 필수 서비스만 제공합니다. 네트워킹과 같은 다른 서비스는 커널에서 제공되지 않으며 다음과 같은 사용자 공간 프로그램에 의해 처리됩니다. 서버 .
커널의 오류로 인해 전체 시스템이 충돌할 수 있다는 모놀리식 커널의 주요 단점 중 하나는 마이크로커널에서 제거할 수 있습니다. 마이크로커널에서와 마찬가지로 커널 프로세스가 충돌하더라도 오류가 발생한 서비스를 다시 시작하면 전체 시스템의 충돌을 방지할 수 있습니다.
넘피 메쉬그리드
예 마이크로커널의 L4, 아미가OS, 미닉스, K42 , 등.
장점
- 마이크로커널은 쉽게 관리할 수 있습니다.
- 전체 OS를 수정하지 않고도 새로운 서비스를 쉽게 추가할 수 있습니다.
- 마이크로커널에서는 커널 프로세스가 충돌하더라도 전체 시스템이 충돌하는 것을 방지하는 것이 여전히 가능합니다.
단점
- 인터페이스를 위한 소프트웨어 요구 사항이 많아져 시스템 성능이 저하됩니다.
- 프로세스 관리는 매우 복잡합니다.
- 메시징 버그는 수정하기 어렵습니다.
3. 하이브리드 커널
하이브리드 커널은 다음과 같이 알려져 있습니다. 모듈식 커널 , 이는 모놀리식과 마이크로커널의 조합입니다. 이는 모놀리식 커널의 속도와 마이크로커널의 모듈성을 활용합니다.
하이브리드 커널은 모놀리식 커널의 추가 속성을 갖춘 마이크로커널의 확장 버전으로 이해될 수 있습니다. 이러한 커널은 다양한 버전의 MS Windows와 같은 상용 OS에서 널리 사용됩니다.
이는 마이크로커널과 매우 유사하지만 시스템 성능을 향상시키기 위해 커널 공간에 일부 추가 코드도 포함합니다.
하이브리드 커널을 사용하면 다음과 같은 일부 서비스를 실행할 수 있습니다. 커널 공간의 네트워크 스택 기존 마이크로커널에 비해 성능이 떨어지지만 여전히 사용자 공간에서 커널 코드(예: 장치 드라이버)를 서버로 실행할 수 있습니다.
하이브리드 커널의 예로는 Windows NT, Netware, BeOS 등이 있습니다.
장점:
- 테스트를 위해 재부팅할 필요는 없습니다.
- 타사 기술을 신속하게 통합할 수 있습니다.
단점:
- 더 많은 인터페이스를 통과하면 더 많은 버그가 발생할 가능성이 있습니다.
- 특히 기호 차이와 같은 문제를 처리할 때 일부 관리자에게는 모듈을 유지 관리하는 것이 혼란스러운 작업이 될 수 있습니다.
4. 나노커널
이름에서 알 수 있듯이, Nanokernel에서는 커널의 전체 코드가 매우 작습니다. 이는 하드웨어의 특권 모드에서 실행되는 코드가 매우 작다는 것을 의미합니다. . 여기서 나노라는 용어는 나노초 클럭 분해능을 지원하는 커널을 정의합니다.
나노커널의 예 EROS 등이 있습니다.
장점
- 매우 작은 크기에서도 하드웨어 추상화를 제공합니다.
단점
- 나노커널에는 시스템 서비스가 부족합니다.
5. 엑소커널
Exokernel은 아직 개발 중이며 OS 설계를 위한 실험적인 접근 방식입니다.
이 유형의 커널은 다음과 같이 다른 커널과 다릅니다. 리소스 보호는 관리와 분리되어 유지되므로 애플리케이션별 사용자 정의를 수행할 수 있습니다.
장점:
- 엑소커널 기반 시스템은 여러 라이브러리 운영 체제를 통합할 수 있습니다. 각 라이브러리는 서로 다른 API를 내보냅니다. 예를 들어 하나는 고급 UI 개발에 사용할 수 있고 다른 하나는 실시간 제어에 사용할 수 있습니다. .
단점:
- 엑소커널의 디자인은 매우 복잡합니다.
커널 패닉이란 무엇입니까?
이미 논의한 것처럼 커널은 전체 컴퓨터 시스템을 제어합니다. 따라서 충돌이 발생하면 전체 시스템이 다운될 수 있습니다. MacOS 및 Linux에서는 이러한 바람직하지 않은 이벤트를 ' 커널 패닉.' 커널 패닉을 복구하려면 시스템을 다시 시작해야 합니다.
일반적으로 이러한 커널 패닉은 하드웨어 통신 문제로 인해 발생합니다. 따라서 커널 패닉이 반복적으로 발생하는 경우 덜 필요하거나 불필요한 장치를 분리하고 문제가 해결되었는지 확인하십시오.