마이크로커널



" 마이크로커널"은 운용체계(OS)와 마이크로 프로세서와의 독립성을 보장함으로써 OS 의 이식성(portability)을 강조한 IBM의 독자적인 기술이다. 이식성이란 OS가 특정 마이크로 프로세서에서만 실행할 수 있는 성질을 탈피 일정요건만 갖추면 어떤 환경 에서도 실행할 수 있도록 하는 것을 말한다. "마이크로커널"의 특징은 마이크로 프로세서로 부터의 종속성을 탈피 이식성을 강조 하기 위해 최소한의 코드로만 구성된다는 점이다. 실제 핵심기능으로만 구성된 마이 크로커널의 코드규모는 2만~8만줄(line)에 불과 50만~1백만줄에 이르는 다른 OS와 비 교되고 있다. "마이크로커널"은 또 OS기능 가운데 하드웨어를 제어하는 하위 레벨과 고유OS 기능을 제공하는 상위 레벨로 완전 분리 모듈화함으로써 확장성을 강조한것 도 주요 특징으로 꼽힌다


운영체제를 설계하는 방식은 크게 모놀리딕 커널과 마이크로 커널
두가지로 나뉘어 집니다.

[열기]

모놀리딕 커널은 전통적인 운영체제 설계 방법으로, 프로세스 관리, 메모리
관리, 파일시스템 같은 커널의 모든 기능들이 하나의 커널에 들어가 있고,
모두 커널 모드에서 실행되는 것을 말합니다.
여기서는 각 구성요소들이 서로의 자료구조를 공유하며 서로의 기능을 자유
롭게 활용하므로 요소들 사이에 많은 의존성을 가지게 됩니다.
이 방식은 효율성을 극대화시킬 수 있지만, 모두 같은 메모리 상에서 실행
되므로 한부분에서 발생한 문제 때문에 시스템 전체가 망가질 수 있죠. 또한
각 구성요소들이 서로의 자료구조를 공유하기 때문에 규모가 커질수록 개발
과 디버깅이 어려워집니다.
이러한 설계의 대표적인 예로는 유닉스가 있습니다.


이에 반해 마이크로 커널에서는 운영체제의 기능을 프로세스 관리 서비스,
메모리 관리 서비스, 파일시스템 서비스 같이 여러개의 서버 프로세스로
분할하고 각 프로세스가 일련의 서비스를 제공하도록 합니다.
이들 서버는 사용자 모드에서 실행되고 다른 서버 프로세스나 사용자
프로세스에게 서비스를 제공합니다.
커널 모드에서는 메시지 전송과 하드웨어를 직접적으로 다루는 부분을
비롯한 최소한의 기능만 동작하며, 이렇게 최소화된 커널을 마이크로 커널
이라고 합니다. 서비스는 마이크로 커널에 구현된 메시지 전송 기능을
통하여 서비스를 요청하고 결과를 돌려받음으로써 이루어집니다.
이 방식의 장점은 운영체제의 대부분의 기능이 사용자 모드에서 동작하기
때문에 한 부분에서 발생한 문제가 시스템 전체를 망가뜨리지 않으며,
해당 서버만을 교체함으로써 시스템 복구가 가능합니다. 또한 하드웨어에
의존하는 부분을 최소화하여 이식성이 높습니다.
마이크로 커널은 안정적인 시스템이지만, 서비스를 사용하는 과정에서 여러번의
메시지 전송과 컨텍스트 스위칭(context switching)이 발생하기 때문에 실용
적인 면에서는 속도가 느리다는 단점이 있어 실제로 마이크로 커널 방식만으로
구현되는 시스템은 많지 않습니다.
이러한 설계의 대표적인 예로 카네기 멜론 대학에서 만든 마크(Mach)가 있으며,
리눅스가 등장하기 전에 GNU에서 개발하던 허드(Hurd)도 마이크로 커널 방식을
따릅니다.



리눅스는 모놀리딕 커널 방식입니다.
리누스 토발즈가 리눅스를 제작하던 당시에는 마이크로 커널 방식이 이식성이
뛰어나다는게 일반적인 견해였습니다. 그러나 실용적인 측면에서 마이크로 커널은
실험적이고, 모놀리딕 커널 방식보다 복잡하고 느렸으며, 모놀리딕 커널 방식
으로도 이식성이 뛰어난 커널을 제작할 수 있다고 판단했기 때문에 리누스 토발즈
는 모놀리딕 커널 방식으로 커널을 제작하기로 하였습니다.
이와 관련하여 리누스 토발즈와 앤드류 탄넨바움 사이에서 벌어진 유명한
모놀리딕 커널과 마이크로 커널 논쟁이 있었습니다.
이 논쟁은 1992년 초반 comp.os.minix 뉴스그룹에서 벌어졌으며, <오픈소스
(Open Source)> 책의 부록에도 글의 일부가 실려있습니다.

http://blog.naver.com/ilove0383/100006698552

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by narumee | 2007/12/17 09:42 | └Inclusion | 트랙백 | 덧글(0)

트랙백 주소 : http://octet.egloos.com/tb/1149348
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶