마이크로커널 Opera팅 시스템: Archi강의, 장점
⚡ 스마트 요약
마이크로커널은 필수적인 기능(메모리 관리, 프로세스 스케줄링, 프로세스 간 통신)만 커널 공간에 유지하고, 장치 드라이버, 파일 서버 및 기타 서비스는 사용자 공간에서 별도로 실행하는 최소한의 운영 체제 코어입니다.
마이크로커널을 배우기 전에 먼저 다음 사항을 이해해 봅시다.
커널이란 무엇입니까?
커널은 운영체제의 중요한 구성 요소로 시스템 리소스를 관리합니다. 또한 컴퓨터의 소프트웨어와 하드웨어를 연결하는 다리 역할을 합니다. 부트로더 다음으로 컴퓨터 시작 시 가장 먼저 로드되는 프로그램 중 하나입니다. 커널은 다양한 프로그램이 시스템 하드웨어에 안전하게 접근할 수 있도록 지원하는 역할도 담당합니다. 또한 특정 애플리케이션이 특정 하드웨어를 언제, 얼마나 오랫동안 사용할지 결정합니다.
마이크로커널이란 무엇입니까?
마이크로커널은 운영체제를 구현하는 데 필요한 최소한의 기능, 데이터 및 특징을 포함하는 소프트웨어 또는 코드입니다. 운영체제의 가장 기본적인 기능을 실행하는 데 필요한 최소한의 메커니즘을 제공하며, 많은 정책을 부과하지 않기 때문에 운영체제의 다른 부분들이 구현될 수 있도록 해줍니다.
마이크로커널과 그 사용자 환경은 일반적으로 다음과 같이 구현됩니다. C++ or C 프로그래밍 언어 약간의 어셈블리로. 그러나 일부 고급 코딩으로 다른 구현 언어도 가능합니다.
모놀리식 커널이란 무엇입니까?
모놀리식 커널은 다음과 같은 모든 기본 시스템 서비스를 실행합니다. 공정 관리커널 공간에서의 메모리 관리, I/O 통신 및 인터럽트 처리, 파일 시스템 등.
이러한 커널 방식에서는 전체 운영 체제가 커널 모드에서 단일 프로그램으로 실행됩니다. 운영 체제는 여러 프로시저의 모음으로 작성되며, 이 프로시저들은 하나의 큰 실행 가능한 바이너리 프로그램으로 링크됩니다.
마이크로커널 Archi강의
마이크로커널은 운영체제를 올바르게 구현하는 데 있어 가장 중요한 부분입니다. 아래 그림에서 볼 수 있듯이, 마이크로커널은 메모리 관리, 프로세스 스케줄링 메커니즘, 프로세스 간 통신과 같은 기본적인 연산을 수행합니다.
마이크로커널 기반 Opera팅 시스템
마이크로커널은 관리자 권한으로 실행되는 유일한 소프트웨어입니다. 운영체제의 다른 중요한 기능들은 커널 모드에서 분리되어 사용자 모드에서 실행됩니다. 이러한 기능에는 장치 드라이버, 애플리케이션, 파일 서버, 프로세스 간 통신 등이 포함될 수 있습니다.
마이크로커널의 구성요소
마이크로커널은 시스템의 핵심 기능만을 포함합니다. 구성 요소는 시스템 기능에 지장을 줄 경우에만 마이크로커널에 포함됩니다. 필수적이지 않은 모든 구성 요소는 사용자 모드에 배치해야 합니다.
마이크로커널에 필요한 최소 기능은 다음과 같습니다.
- 메모리 관리 주소 공간과 같은 메커니즘은 마이크로커널에 포함되어야 합니다. 또한 메모리 보호 기능도 포함되어야 합니다.
- 프로세서 스케줄링 메커니즘에는 프로세스 및 스레드 스케줄러가 포함되어야 합니다.
- 프로세스 간 통신은 자체 주소 공간을 실행하는 서버를 관리합니다.
마이크로 커널과 모놀리식 커널의 차이점
| 파라미터 | 모놀리식 커널 | 마이크로커널 |
|---|---|---|
| Basic | 이는 단일 주소 공간에서 실행되는 대규모 프로세스입니다. | 이는 서버라는 별도의 프로세스로 나눌 수 있습니다. |
| Code | 모놀리식 커널을 작성하려면 더 적은 코드가 필요합니다. | 마이크로커널을 작성하려면 더 많은 코드가 필요합니다. |
| 보안 | 서비스가 충돌하면 전체 시스템이 모놀리식 커널에서 붕괴됩니다. | 서비스가 충돌하더라도 마이크로커널의 작동에는 영향을 미치지 않습니다. |
| 의사 소통 | 이것은 단일 정적 바이너리 파일입니다. | 서버는 IPC를 통해 통신합니다. |
| 예시 | 리눅스, BSD, Microsoft Windows (95, 98, 나) Solaris, OS-9, AIX, DOS, XTS-400 등 | L4리눅스, QNX, 심비안, K42, 맥 OS X, Integrity등 |
마이크로커널의 장점
마이크로커널 사용의 장점/이점은 다음과 같습니다.
- 마이크로커널 아키텍처는 크기가 작고 격리되어 있어 더 나은 성능을 발휘할 수 있습니다.
- 마이크로커널은 시스템 기능에 지장을 줄 수 있는 구성 요소만 포함하기 때문에 안전합니다.
- 시스템 확장이 더욱 용이해졌으므로 커널을 건드리지 않고도 시스템 애플리케이션에 추가할 수 있습니다.
- 마이크로커널은 모듈식이며, 커널을 건드리지 않고도 다양한 모듈을 교체, 재로드 또는 수정할 수 있습니다.
- 모놀리식 시스템에 비해 시스템 충돌이 적습니다.
- 마이크로커널 인터페이스는 보다 모듈화된 시스템 구조를 구현하는 데 도움이 됩니다.
- 새로운 기능은 재컴파일 없이 추가할 수 있습니다.
- 서버 오류 또한 다른 사용자 프로그램의 오류와 마찬가지로 개별적인 문제입니다.
- 마이크로커널 시스템은 유연하기 때문에 서로 다른 서버에서 구현된 다양한 전략과 API가 시스템 내에서 공존할 수 있습니다.
- 커널 모드에서 실행되는 코드 양이 줄어들면 보안과 안정성이 향상됩니다.
마이크로커널의 단점
마이크로커널 사용의 단점은 다음과 같습니다.
- 마이크로커널 시스템에서 서비스를 제공하는 것은 일반적인 모놀리식 시스템에 비해 비용이 많이 듭니다.
- 드라이버가 프로시저 또는 프로세스로 구현된 경우 각각 컨텍스트 스위치 또는 함수 호출이 필요합니다.
- 마이크로커널 시스템의 성능은 무관심할 수 있으며 일부 문제를 일으킬 수 있습니다.


