View Single Post
2006-05-22, 10:11 PM   #3
casaubon
Moderator
 
casaubon's Avatar
 
Registered: Sep 2001
My Mac: iMac 24" 3.06GHz
Posts: 2,401
오프라인


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

What is Linux?
기술적으로, 리눅스는 실제로는 완전한 운영체제가 아닌, 팻 커널일 뿐이다. 그때문에 리눅스는 곧바로 BSD 커널이나 NeXT-애플마흐BSD 하이브리드 커널인 XNU, 상상에 그친 HURD 프로젝트와 비교할 수 있다. 리눅스를 작성한 곳은 AT&T의 상용 유닉스에 대한 무료 대안을 제공하려는 대규모 커뮤니티였다.

부분적으로나마 리눅스가 필요했던 이유는 AT&T가 BSDi를 들쑤셨기 때문이었다. AT&T는 소송을 통해 유일하게 남아있던 완전한 무료 유닉스 대안인 BSD의 미래를 의심스럽게 만들어놓았다. 소송이 해결됐던 당시, 리눅스는 자기 자신을 세 번째 메이저 대안으로 자리매김하였다.

GNU의 HURD 커널이 실패됐기 때문에, GNU 프로젝트로 완성된 유저랜드 소프트웨어는 리눅스 커널과 쌍을 이루었다. 대부분의 하드코어 컴광들은 전체 페키지를 GNU/리눅스로 부르기를 선호한다. 그러나 다른 모든 이들은 그저 Linux라 불렀다.


유닉스-기반 환경용으로 디자인된 유저랜드 소프트웨어는 포팅성이 매우 높기 때문에, 리눅스용 소프트웨어도 커널 디자인에 있을 수 있는 차이점과 상관 없이 일반적으로는 BSD나 솔라리스, 맥 오에스 텐, 혹은 다른 유닉스-류 시스템용으로 포팅하기가 꽤 수월하다. 애플의 Darwin은 일반적인 리눅스 배포본에서 발견되는 수많은 유저랜드 소프트웨어가 탑재된 XNU 커널과 쌍을 이룬다.

그러나 디바이스 드라이버와 같은 커널 전용 컴퍼넌트의 포팅성은 별다른 이야기이다. 리눅스와 BSD, 그리고 애플의 XNU는 모두 매우 다른 방식으로 드라이버를 구현시키기 때문에 맥 오에스 텐 상에서 리눅스용 SCSI 드라이버를 사용할 수는 없다.

Why is Apple Still Using the Mach Kernel After Mach failed?
사실 마흐 커널은 실패하지 않았다. 실패한 것은 마흐 마이크로커널이었으며, NeXT나 애플 중 누구도 마흐를 마이크로커널로 사용하지 않았다.

NeXTSTEP에서 마흐를 채용하기로 했을 때를 돌이켜보라. 마흐는 원래부터가 마이크로커널로 개발되지 않았다. 오히려 마흐 2.5는 단순히 마이크로커널이 기존의 팻 커널 공간에서 돌아가는 새로운 방법을 투사했을 뿐이었다.

마흐 2.5는 마흐 3.0이 그랬던 것처럼 퍼포먼스에 심각한 문제가 있는 마이크로커널이 아닌, 팻 커널이었다.

리눅스의 창시자(그리고 팻 커널 지지자)인 토발즈(Linus Torvalds)Minix 마이크로커널의 창시자인 태넨바움(Andrew Tanenbaum)간에 벌이는 모든 사상 논쟁은 맥 오에스 텐에서 쓰이는 마흐와는 전혀 관계가 없다.

More Nails in the Coffin
확인컨데 다시 말하자면, 맥 오에스 텐은 마이크로커널 아키텍쳐에 기반을 두지 않으며, 결코 마흐를 마이크로커널로 사용한 적이 없다. 애플의 XNU 커널은 다수의 모노리딕 커널보다 더 거대하며, 마흐 마이크로커널 연구에서 불거져 나온 퍼포먼스 문제를 경험하지 않았다.

애플이 마흐 3.0 개발로 만들어진 개선점들을 받아들이기는 했지만 바뀐 것은 없었다. 맥 오에스 텐은 여전히 마이크로커널 아키텍쳐를 갖고 있지 않는다. 애플의 XNU 커널 또한 마이크로커널로 구현된 것이 아니다. 애플은 마이크로커널로서 마흐를 사용하지 않는다.

XNU는 BSD나 리눅스와 같은 전통적인 팻 커널과는 구별되는 수많은 기술을 채용하였다. 마이크로커널 미신은 마흐와 관련된 아무거나 집어내어서 마흐 마이크로커널 프로젝트의 실패와 결부짓는 데에서 발생한다. 마흐의 맥 오에스 텐 버전은 완전한 BSD이며, 그런 잘못된 결부는 엔지니어링에 대한 무식, 혹은 FUD(둘 다일 수도 있겠다)때문에 미신으로 발전한다.

이제 아셨을 것이다. 맥 오에스 텐 마이크로커널의 미신은 정말 미신이다. 맥 오에스 텐에는 마이크로커널이 없기 때문이다.

Does Mac OS X Need a Linux Kernel?
맥 오에스 텐이 마이크로커널을 갖고 있으며, 좀 더 기민한 커널로 교체해야 할 필요성이 절실하다는 생각은 XNU를 리눅스로 교체시켜야 한다는 미신으로 현재 발생하고 있다.

  • Linux is so buzzworthy
  • Linux is apparently so much faster
  • Linux has so much more support as a standard

이 문제는 앞으로 더 다룰 것이다.

Unraveling The Copy/Paste Development Myth
Unraveling The Mac OS X Needs a Linux Kernel Myth






__________________
  Reply With Quote