View Single Post
2006-05-22, 10:10 PM   #1
casaubon
Moderator
 
casaubon's Avatar
 
Registered: Sep 2001
My Mac: iMac 24" 3.06GHz
Posts: 2,401
오프라인
Mac OS X 마이크로커널의 미신을 벗긴다 1-3



Unraveling the Mac OS X Microkernel Myth : May 19, 2006
According to proponents of this myth, Mac OS X is in grave danger because it has a microkernel and Linux doesn't. They're wrong; here's why.
http://www.roughlydrafted.com/image
Why the Myth was Woven
이 미신은 맥 오에스 텐은 리눅스 커널이 필요하다가 주된 내용이다. 레고방식 개발 미신도 깨치기는 쉽다. 우선은 마흐와 리눅스 문제부터 다뤄보겠다!

The Myth Weavers
이 미신은 잘못된 정보보다는 현실에서의 괴리때문에 만들어진 측면이 더 크다. 하지만 FUD를 넘나드는 오타쿠들이 이 미신을 차용하기도 한다.

그 어느 것도 리눅스의 순수한 천재성에 비견할 바가 없다는 리눅스 옹호자들의 주장이 있다. 즉, 모두가 리눅스를 채택해야 한다는 의미이다. 한 없이 돌아가는 비치볼 때문에 뭔가 악마가 들어가버렸다고 우려하는 맥 오에스 텐 사용자들도 있다. 이들은 그 주범을 마이크로커널로 지목한다. 마이크로커널을 리눅스의 커널(무지개빛 원반이 없다!)로 바꾸면 해답이 되지 않을까?

Unraveled with Extreme Prejudice
이 미신을 잘 파해치기 위해서는 다음의 질문에 대한 답변을 해야한다.
  1. What is a Kernel?
  2. 마이크로커널이란 무엇인가?
  3. 마흐(Mach)란 무엇인가?
  4. 마흐 마이크로커널의 눈부신(!) 실패는 왜 일어났는가?
  5. What is Linux?
  6. 그러한 실패 이후에도 애플은 왜 계속 마흐 커널을 채용하고 있는가?
  7. 맥 오에스 텐도 리눅스 커널이 필요한가?


What is a Kernel?
유닉스 커널(Kernel)은 다른 모든 프로그램을 지배하고 하드웨어 접근을 조정하며, 파일시스템과 보안모델을 관리하는 마스터 콘트롤 프로그램이다. 네임 커널은 특별한 권한을 가진 루트프로세스를 돌리는 코어 시스템과, 사용자 계정에 따라 제한적인 다른 모든 것을 구분지어준다. 커널 외부에 있는 다른 모든 것은 userland라 부른다.

유닉스의 자연스러운 발전 속에서, 커널은 급속히 자라나기 시작하였다. 가령 유명한 사례인Berkeley의기여는 완전히 작동하는 TCP/IP네트워킹 스택이었다. 그 외에도 코어 커널 공간의 새 기능에 대한 빠른 유입은 현대적인 유닉스의 개발이라는 결과를 낳았다. (본질적으로는 유닉스를 깔끔하게 재작성한 리눅스도 포함된다.) 이에 따라 커널 자신만 2~300백만 라인의 코드를 갖게 되었다.
What is a Microkernel?
마이크로커널은 표준 유닉스 커널을 모노리딕 코드 더미로 확장시키는 데에 대한 반응으로 시작된 시스템 디자인을 가리킨다.

유닉스에서는 펑션을 몇 가지 컴퍼넌트로 깨뜨림으로써 시스템 복잡성을 관리한다. 각 컴포넌트는 매우 복잡한 임무를 수행하기 위해, 논리적인 방법으로 함께 연결시킬 수 있다. 이로써 개별 컴퍼넌트는 관리가 가능한 방식으로 개선된다.

마이크로커널 개발은 유저랜드 기능에 일반적인, 유닉스 디자인 모델을 커널 자신에 적용하는 것으로 비추어졌다. 80년대 중반 동안 대학 기관들도 마이크로커널 개발에 뛰어들었는데, 제일 유명한 프로젝트는 카네기멜론(CMU)의 마흐(Mach) 프로젝트였다.









__________________
  Reply With Quote