View Single Post
2007-02-20, 10:00 AM   #6
casaubon
Moderator
 
casaubon's Avatar
 
Registered: Sep 2001
My Mac: iMac 24" 3.06GHz
Posts: 2,397
오프라인
MacOS X Server의 오픈소스

Open Source in Mac OS X Server

Tuesday, February 20, 2007

90년대 중반, 서버 시장 진입에 실패한 이후, 애플은 오픈소스를 활용하여 빠르게 새 서버 사업을 개발하고 있다.

애플은 원래 1999년에, 그리고 2000년에 데스크톱용 맥오에스텐을 선보이려 했었다. 하지만 랩소디와 관련된 여러가지 문제 때문에 그 때 내놓을 수 없었다.

  • 써드파티 상용 코드에 대한 의존도를 줄일 필요가 있었다. 특히 어도비의 디스플레이 포스트스크립트가 그러하다.
  • 전체 디스플레이 시스템을 다소 새로운 것으로 교체해야 했다.
  • 기존 클래식 맥오에스 개발을 네이티브로 지원해야 했다.
  • 넥스트스텝의 유닉스 기반도 업데이트 해 주어야 했다. 1995년 이후로는 정규 개발 업데이트가 없었다.

Darwin: 2000
랩소디에서 맥오에스텐으로의 이주작업 덕분에 애플은 커널과 코어 OS를 오픈소스로 공개할 수 있었다. 애플 고유의 부분은 빼고서 말이다.

랩소디는 2000년 2월, 맥오에스텐 서버 1.2로 조용하게 마지막 버전을 보인다. 그리고 4월달에 애플은 다윈 1.0을 내놓는다. 다윈은 핵심 운영체제의 오픈 소스코드였으며, 랩소디와는 상당히 달랐다.

PC 운영체제로서의 맥오에스텐이 죽은 대신, 다윈은 PowerPC 맥과 인텔 PC 양자용으로 제공됐고, 이론적으로는 다른 플랫폼 포팅도 가능했다. 그러나 다윈의 주안점은 리눅스의 라이벌화가 아니라, 맥 개발자들에게 내부 구조를 보다 잘 보여주기 위함이었다.

애플은 또한 다윈스트리밍서버라는 이름으로 퀵타임 스트리밍 서버를 오픈소스화시키기도 하였다. 첫 번째 오픈소스이자, 표준에 기반한 무료 인터넷 스트리밍 서버가 이것이다. FreeBSD와 솔라리스, 리눅스, 윈도 NT 상에서 돌아갈 수 있었다.

Criticism of Darwin
다윈 공개는 간단하지 않았다. 맥오에스텐상에서 애플은 복잡하고, 공개문서화가 안 되어있는 내부 개발 시스템, XBS를 사용한다. 애플 외부 누구도 이 시스템에 접근할 수 없으며, 소스코드로부터 맥오에스텐에 필적할만한 운영체제를 만들기란 매우 어렵다.

개발 시스템을 충분히 공개하지 않는다면서 불평하는 외부 개발자들이 있지만, 사실 다윈 프로젝트에서 의미 있는 기여를 하기란 매우 어렵다.

더구나 애플은 의도적으로 상용 버전에 앞서서 코드 변화를 시키지 않는다. 기능을 비밀로 지키는 것 외에도, 출하할 때까지의 안정성을 지키기 위한 목적도 있다. 그 시간동안 애플은 다음 버전 작업을 계속하면서, 외부 개발자들과의 접촉을 순간 끊는다.

애플의 오픈소스 전략에 대한 비판은 상용 프로젝트 개방의 어려움을 역으로 증명한다. 선도 솔라리스를 OpenSolaris로, 스타오피스를 OpenOffice.org로 개방하는 데에 있어서 비슷한 문제를 겪었다. 한 번 프로젝트를 공개하면, 오픈소스 버전과 상용 버전과의 차이 문제를 야기할 수 있다.

Darwin is not GNU
다윈의 경우, 애플은 커뮤니티를 조성하여, 개발자들에게 나름의 운영체제 제작권을 주는 대신, 내부코드에 접근권을 가진 써드파티 개발자들에게 다윈을 제공하는 데에 더 관심을 갖고 있다.


1996년부터 1998년 당시 애플이 호스팅했던 오픈소스 리눅스 프로젝트, MkLinux의 경험을 보면, 애플은 "오픈소스 커뮤니티"에 대한 환상을 갖고 있지 않다.

GNU/리눅스, 혹은 다른 상용 오픈소스 프로젝트와 유사하지 않다고 하여 다윈을 실패작이라 단정지으면, 리눅스와 GNU가 수 만 명의 엔지니어들의 노력과 수 천만 명의 소비자들을 거느리고 있지 않다는 사실을 무시한 처사다.

애플이 오픈소스 노력을 극적으로 바꿀 유일한 방법은 다윈을 완전히 독립적인 프로젝트로 분리시키는 것이지만, 이 경우 애플도, 개발자들도 혜택을 못 얻는다. 다윈이 상용 맥오에스텐의 내부에 접근권을 부여하는 한, 마찰과 불만은 언제나 존재할 것이다.

Darwin Version Numbers
2000년 5월, WWDC에서 애플은 맥오에스텐 개발자 프리뷰 4를 선보이고, 그 해 하순에 퍼블릭 베타가 나오리라고 발표한다. 그리고 2001년 1월, 정식 버전 1.0을 약속하였다. 이 2001년 버전은 후에 10.0으로 숫자가 주어진다. 기존의 맥오에스 버전을 계승하는 의미였다.

다윈은 내부적으로 나름의 버전 숫자를 지닌다. 퍼블릭 베타 때에는 1.2.1이었다가, 10.0 정식 버전 때에는 1.3.1이었다. 그리고 그 후에는 맥오에스텐이 바뀔 때마다 다윈의 버전도 바뀌었다.

맥오에스텐 10.1.1에서 다윈의 버전은 5.1로 뛰어 넘는다. 맥오에스텐으로서는 0.0.1이 올라가는 마이너 업데이트였지만, 넥스트스텝으로서는 다섯 번째 메이저 업데이트였기 때문이다.

오늘날 다윈은 8.8이다. 우연히도 맥오에스텐의 10.4.8과 일치한다. 다윈이 넥스트스텝의 여덟 번째 버전이고, 맥오에스는 10번째이며, 맥오에스텐으로서는 네 번째, 마이너 리비전으로서는 여덟번 째라는 의미다. 맥오에스텐의 빌드 버전은 다윈 8.8의 메이저 버전을 반영하기도 한다. 10.4.8 빌드는 8L127 (넥스트스텝 8.8!)이다.

Mac OS X Server 10.0, 10.1: 2001
애플이 내부적으로 인텔 하드웨어상으로도 맥오에스텐을 꾸준히 돌려오면서, 운영체제는 이제 OpenStep 사양을 벗어나게 된다. 맥오에스텐 10.0은 넥스트스텝의 새로운 혈통이 되었다.

맥오에스텐 10.0 서버 버전과 무상 업데이트로 된 10.1 버전은 랩소디-기반의 서버 1.0에 있던 서버용 애플리케이션 기능 대부분을 그대로 흡수하였다.

애플은 맥오에스텐 데스크톱용을 준비하는데에 집중하였다. 데스크톱이 없다면 대중시장에 다가설 수 없었기 때문이다.

Quartz vs X Window
데스크톱에서 애플이 집중한 부분은 랩소디에 있던 코플랜드 맥오에스 8의 형식을 완전히 새로운 아쿠아로 바꾸는 것이었다. 아쿠아는 디스플레이 포스트스크립트를 교체한 새로운 그래픽 렌더링/컴포지팅 엔진, 쿼츠의 투명성을 선보인 그래픽 체제였다.


오픈소스 코드를 확장시켜서 사용하는 애플의 행태를 고려하면, 리눅스나 유닉스 류의 시스템이 사용하는 기존의 공개된 X 윈도 사양을 사용하지 않고, 어째서 애플 고유의 기술을 개발했는지 의문을 품을 법 하다.

답변이 있다. 애플이 오픈소스를 쓸 때는 쓰지만, 고유의 새 기술을 개발하기도 한다. 기존 소프트웨어가 언제나 최고는 아니다.

Transition to a Modern OS
맥오에스텐 10.0과 10.1은 윈도 2000처럼 이주의 문제를 겪는다. 마이크로소프트는 DOS 기반의 윈도 제품군을 NT 커널로 이주시키는 데에 큰 어려움을 겪었다. 윈도 2000(NT 5.0)으로도 역부족이었다. 그 다음에 나온 윈도 XP(NT 5.1)이 나와서야 윈도 기반을 DOS에서 NT로 옮길 수 있었다.

맥오에스텐 10.2에서도 유사했다. 클래식 맥오에스 9는 유닉스-기반의 맥오에스텐이 제공하지 못하는 기능을 여전히 제공하고 있었다. 2002년이 되어서야 애플은 마침내 클래식 맥오에스의 장례식을 선포할 수 있었다.

마이크로소프트의 DOS, NT 이주와 애플 간의 차이점은 무엇일까? 마이크로소프트는 보다 폐쇄적이고 닫힌 운영체제로 이주하였다. MS-DOS 역시 공개된 운영체제는 아니었지만, 내부에 대한 이해는 광범위했다. DOS는 원래 마이크로소프트가 개선을 위한 기반으로 사용했던 CP/M에 기반을 두고 있었다. 반면, NT는 처음부터 다시 만들었다.

애플은 반대 방향으로 움직였다. 완전히 비밀이었던 맥오에스에서, 유닉스 기반으로 이주하였다. 다른 유닉스 시스템과 구조적 유사성과 함께 애플리케이션 수준의 호환성도 주면서 말이다.

그 결과, 마이크로소프트는 운영체제나 서버 기술의 외부 발전에서 완전히 격리된 채, 고립되어왔다. 반면, 애플은 NetBSD나, FreeBSD, OpenBSD, GNU, 그 외 다른 오픈소스 프로젝트로부터 상당한 참여와 혜택을 받아왔다.

Mac OS X Server 10.2 Jaguar: 2002
맥오에스텐의 빠른 진전은 재규어 때부터였다. 재규어는 데스크톱 사용자를 겨냥한 최초의 주류 맥오에스텐이었다. 재규어 서버 10.2에는 다음이 포함되어 있었다.

  • JHFS+: 맥 파일시스템의 저널링 버전
  • Open Directory: LDAP 기반의 디렉토리 서버, PowerTalk 시절의 Open Directory가 되살아났다.
  • 개선된 퀵타임 스트리밍 서버 4, 퀵타임 브로드캐스터
  • CUPS(Common UNIX Printing System)을 기반으로 만들어진 표준형 출력 아키텍쳐
  • AIX-기반의 애플 네트워크서버 이후 최초로 애플이 디자인한 서버 하드웨어인 엑스서브의 등장
  • SNMP에 기반한 서버 Status 원격 관리 툴


위의 기능은 애플이 오픈소스와 공개표준의 혜택을 상당히 받는다는 점을 시사한다. 반면 애플은 새로운 코드를 개발하여 일부는 공개하기도 한다. 스트리밍 서버나 HFS의 경우가 그러하다.

애플은 재규어의 소매판매도 시작한다. 상당한 판매량을 올린 최초의 운영체제 판매였다. 이 판매 덕분ㅇ네 애플은 맥오에스텐 프레임웍의 개선에 더 큰 투자를 할 수 있게 된다.

Mac OS X Panther Server 10.3: 2003
그 해, Panther는 새로이 사파리 웹브라우저와 다시 만든 파인더, 엑스포제, 빠른 사용자 스위칭을 소개한다.

서버 측면에서 보면, 애플은 더 많은 오픈소스 프로젝트를 시스템 안으로 넣고 업데이트시켰다. 삼바 3를 사용하는 Panther Server는 윈도 도메인 컨트롤러처럼 작동할 수 있다. 애플은 또한 웹개발을 위한 MySQL과 PHP를 넣고, 디렉토리 서버나 메일서버와 같은 다른 서비스도 업데이트시키고 개선시켰다.

Mac OS X Tiger Server 10.4: 2005
타이거 서버 또한 고유의 애플리케이션은 물론 애플이 디자인한 사용자 인터페이스에 오픈소스 소프트웨어의 혼합도 소개시킨다. 어떤 기능은 윈도 기능을 보조하기도 하였다.

가령, 애플은 Access Control Lists 지원을 추가시킨다. 이 ACL 지원은 보다 복잡한 파일 퍼미션용 메커니즘을 제공하고, 윈도에서 사용하는 파일 퍼미션과의 호환성을 허용한다.

타이거는 또한 Portable Home Directories를 소개한다. 이 기능은 서버로 데스크톱 클라이언트를 접속시켜서, 사용자 프로파일을 다운로드받게 한 다음, 서버와의 싱크를 유지시킨다. 이는 윈도에서 사용하는 싱크 셰어와 프로파일 로밍과 유사하다.

데스크톱 사용자가 원래의 사용자 프로파일을 서버와 싱크시킨다는 의미는, 데스크톱 아이템이나 다른 파일, 그 외 설정 사항을 여러 대의 머신과 싱크시킨다는 뜻이다. "Xserve를 넘어서: Xserve mini"는 애플이 가정 사용자에게 제공할 뭔가의 개념을 소개하였다. 현재는 타이거 서버에서만 가능한 일이다.

애플이 개발한 다른 기술로는 Xgrid 분산 프로세싱과 64-비트 애플리케이션 지원이 있다. 애플은 또한 웹오브젝트를 타이거 서버에 통합시키기도 한다. 원래는 5만 달러 어치의 라이센스였다.

아이챗 인스턴트 메신저 서버도 공개된 Jabber XMPP를 기반으로 하여 만들었다. 이 변화는 아이챗 클라이언트에서 나타났다. 폐쇄형인 AOL IM 시스템과도 운용성을 갖추면서, 아이챗은 이제 Jabber 시스템을 이용하여 구글톡과 같은 다른 시스템과도 대화할 수 있게 되었다.

타이거 서버에는 Blojsom도 번들시켰다. Blojsom은 Blossom 웹서버의 자바 버전으로서, 애플이 이 서버의 스킨을 제작하여, 간단한 블로그 설정을 쉽게 할 수 있도록 해 놓았다. 하지만 그 서비스가 좀 허술하기는 하다. 호스팅된 블로그에 상당한 변화를 주기가 극도로 어렵기 때문이다.

올해 하반기가 되면 나올 레퍼드 서버는 타이거 서버를 개선시킨 버전이 될 터이지만, 완전히 새로운 웍그룹과 협동 서비스도 포함하게 된다. 이 중에는 이미 무료 오픈소스 프로젝트로 나와있는 iCal 서버도 포함된다. 다음 기사에서 한 번 알아보도록 하자.


What do you think? I really like to hear from readers. Leave a comment or email me with your ideas.

http://www.roughlydrafted.com/RD/RDM...E587D21DF.html
__________________
  Reply With Quote