리눅스, 모놀리틱 커널이라 더 강하다!!
인터넷을 뒤지다 우연히 몇몇 운영체제들간의 Posix 퍼먼스를
측정한 문서를 찾았습니다.
http://www.ecst.csuchico.edu/~walkerg/posixperf/paper/contents.html
이 문서가 쓰여진 년도가 1999년도이나까.. 오늘날에는 어떤 결과가
나올지 몰라도... 리눅스가 Posix의 기능수행이라는 면에서는 상당히
그 성능이 떨어지는 결과를 얻었습니다.
하지만... 그결과에서 재미있는 점은 테스트 내용중 하드웨어를
경유하는 경우(이를 테면, 통신메커니즘이 포함된 경우)
리눅스가 아주 강세를 보였다는 점입니다.
문서를 작성한 이의 설명을 빌리자면, 그 현상은 리눅스의 모노리틱 커널
설계의 특성에서 기인한다고 합니다.
즉 하드웨어 억세스에서 상대적으로 작은 오버해드를 갖기 때문에 마이크로커널을 가진 다른 운영체제(여기선 VxWorks,Neutrino,LynxOS)에 비해 좋은 결과가 나온다는 겁니다.
요즘 병령컴퓨팅에 리눅스를 많이 활용하는 것에 대해 단순히
오픈 소스운영체제이고 널리 쓰이기 때문이라는 생각만 했는데...
네트워크상에서 많은 데이터를 주고 받는 하드웨어 의존도가 큰 병렬컴퓨티에서
상대적으로 작은 오버해드를 같는 모놀리틱 커널이라는 점이 리눅스를 선택하게 하는 이유도 될수 있구나라는 생각을 했습니다.
요즘은 2.6에서는 향상된 Posix라이브러리를 비롯하여...
Soft Real Time 기능이 강화되었더는 뉴스를 접했을 때...
멀티미디어 환경이나, 병렬컴퓨팅환경에 더욱 적합한 운영체제로
거듭나고 있다는 생각이 드네요....
하여튼 모놀리틱/마이크로 커널에 대해 많은 논쟁이 있었지만...
리눅스가 모놀리틱이라는 점이 이러한 장점이 갖는다는 것은 이글을
보고 처음 느꼈습니다.
그리고.. 이건 여담인데...
윈도우 운영체제가 쓰레드생성에 강한 반면.. 프로세스 생성에 약하고..
반면... Unix시스템은 프로세스 생성에 강한 반면... 쓰레드에서는 상대적으로 약한면을 보인다는 글을 마이크로소프트의 MSDN에서 읽은 적이 있습니다.
덭붙여 그 글에는 윈도우에서는 쓰레드 생성에 비해 프로세스 생성에 대한 코스트는 매우 비싸지만... 유닉스에서는 특히 모놀리틱 커널에서는 그 비용이
상대적으로 저렴하다라는 내용도 있었습니다.
M:N의 알고리듬 구현이 필요한 이유도 이러한 이유에서 겠지요.
저도 읽어보고, 공감이 많이 갑니다.서버용 사용하는것은 모노로딕이
저도 읽어보고, 공감이 많이 갑니다.
서버용 사용하는것은 모노로딕이 장점이 많은것 같습니다.
개인용이라면 마이크로커널이 더 나은것 같습니다..
유연성면에서 뛰어나죠..
모노로딕커널의 단점을 보완한게, 모듈방식인데.. 역시 유연성은 마이크로커널이 나은듯 싶습니다.
아무튼, GNU 에서 허드(마이크로커널방식) 를 개발중이니, 그것도 기대가 됩니다.
아바타 제작기간~~ 무려 5초!!!
ㅋㅋㅋ
모듈 전혀 안쓰는 모노 커널로 만들면
요즘 돌아다니는 커널모듈형 루트킷을 아예 못쓰게 되죠.
보안상 이점 있습니다.
Written By the Black Knight of Destruction