»
S
I
D
E
B
A
R
«
OS X Snow Leopard (in-depth review)
September 4th, 2009 by Wegra Lee

Mac OS X 10.6 Snow Leopard: the Ars Technica review (Click Here)

지난달 말 공개된 Snow Leopard 에 대한 심층 분석 글이다. 일부는 AppleInsider 의 글들을 통해 이미 알고 있었지만, 잘 모르던 멋진 기술들도 알기 쉽게 설명해주고 있고, 무엇보다 하나의 아티클에 모여 있다는 점에서 마음에 든다.

여기서 다루는 주요 기술들은 하나같이 Apple 의 철학을 보여주는 듯 하다. 플랫폼을 만드는 사람들이라면 꼭 본받아야 하는 장인 정신이 아닐런지.. 우리 조직은 아키텍트 라는 타이틀을 달고도 노가다성 일을 하고 있고, 빠른 출시만을 위해 너무도 비효율적인 레거시 설계를 뜯어 고칠 엄두를 못내고 있으니.. 참으로 안타깝다.

위 아티클에 기반해 Snow Leopard 에서 선보인 기술들을 아주 간략히 정리해본 이렇다.

  • 데이터 압축 기술: Snow Leopard 를 설치하면 기존 Leopard 볼륨에서 무려 6GB 정도의 추가 용량이 확보된다. PowerPC 아키텍처 지원을 중지한 것도 있지만, 실행파일/데이터 등을 압축해 저장하는 기술 때문이다. 압축하고 푸는 오버헤드보다 큰 용량의 데이터를 디스크로 읽어오는 latency 가 훨씬 크기 때문에 속도 면에서도 훨씬 이득이다.
  • 64비트 커널: OS X 는 기존부터 64 비트 운영체제였지만 완벽하지 않았다. 이제 가장 밑바닥의 커널/드라이버부터 어플리케이션들까지 명실상부한 64 비트 운영체제로 거듭나게 되었다.
    OS X 의 재미난 특성 중 32비트 커널에서 64비트 어플리케이션을 돌리고, 64비트 커널에서 역시 32 비트 어플리케이션을 자유롭게 돌릴 수 있다는 것이다. 32비트 XP 에서 64비트  어플을 못돌리고, 64비트 XP 에서 32비트 호환 모드로 어플을 돌리는 MS 계열과는 다른 모습이다.
  • QuickTime X: QuickTime 의 기반 코드가 무려 18년 전에 만들어졌다고 한다. 이번에 이 기술을 완전히 교채할 목적으로 훨씬 효율적인 QuickTime X 를 발표했는데.. 아직 기존 QuickTime 대비 지원되지 않는 기능이 많다. 위 기사를 읽어보면 레거시에서 신기술로 전환하는 과정에서 애플이 선택한 정말 멋진 아키텍처적 전략을 엿볼 수 있다.
  • File system API 통합: 파일시스템은 역사가 아주 깊으니만큼 시대에 따라 그 표현 양식도 아주 다양하게 변화해왔다. Plain path string 부터 전용 데이터 타입(FSRef), URL 등.. API 마다 받아들이는 인자가 달라져 수많은 변환 과정을 동반한다. 이번에 URL 기반의 통합 API 를 재정비하였다. 중요한 것은 단지 입력 타입을 URL 이란 것이 아니란 거다. 캐싱가 매타데이터 프리패칭 등으로 성능을 향상시켰고, Bookmark 기능 등등.. 전통적인 시스템에서 할 수 없는 다양하고 유용한 기능들을 제공한다.
  • LLVM and Clang: 애플이 GCC 를 대체하기 위해 전략적으로 투자중인 야심작이다. GCC 보다 3배 빠른 컴파일 속도, 5~25% 빠른 실행 파일.. 거기에 더해 훨씬 정확한 에러 리포팅, 자유로운 라이선스 정책 등등 장점은 이루 말할 수 없다. 아직은 C++을 완벽 지원하지 않는 등 한계가 있지만, XCode의 recommended tool chain 으로 성장했을 정도로 많은 발전을 이루었다.
  • Blocks (C extension) – C 언어를 확장하여 Block 이라는 개념을 도입히다. Function pointer 의 runtime 버전이라고 볼 수도 있는데, 그 동안 dynamic programming language 의 전유물이었던 anonymous function 기능을 C/C++/Objective-C 에서 활용 가능하다. 이 장점은 뒤에 나올 GCD 등 애플의 새 API 곳곳에서 십분 활용하고 있다.
  • Grand Central Dispatch (GCD): 6월 애플 이벤트 때 설명해준 정도로는 ‘저게 뭘까? OS 최적화를 열심히 했나보네’ 정도로 생각했었는데.. 이건 완전히 mind blowing 기술이다. 여타의 훌륭한 기술들 중에서도 단연 으뜸이라 생각한다. 간단히 얘기하면 플랫폼의 밑단을 신경쓰지 않고 멀티 코어/GPGPU 등 환경에 최적화된 코드를 만들어준다. 시퀀셜하게 작성된 레거시 코드도 한 두 라인 수정해서 금새 멀티 코어를 십분 활용하는 코드로 변화시킬 수 있다. 위 아티클에는 동작 메커니즘 동영상과 코드 예제까지 나와 있으니 꼭 읽어보도록 하자. 이 부분은 너무 감동적이라 따로 정리를 해볼까 하는 마음도 굴뚝같다. Parallel Programming 을 공부해보려고 틈틈히 자료를 모으고 있는데.. 그냥 OS X 로 넘어가는 것만으로도 머리 아픈 복잡한 문제들의 대부분이 해결되버린다.
  • OpenCL: 비교적 잘 알려진 기술이 아닐까한다. OpenGL-like C API 로 보통의 그래픽이 아닌 일반 어플리케이션에서 막강한 GPU 의 성능을 활용할 수 있는 기술이다. nVidia의 CUDA 등 다른 GPGPU 기술과 달리, 한 번 컴파일한 바이너리로 GPU 뿐 아니라 멀티코어 CPU 나 전용 가속 칩에서도 동작할 수 있으니, 어플리케이션 개발자 입장에서는 사용하지 않을 이유가 없다. Snow Leopard 의 경우, 어떤 H/W 로 가속할 지, 몇 개의 thread 를 만들 지 등을 앞서 설명한 GCD 를 통해 알아서 결정해준다.

이 외에는 주로 사용자 관점의 리뷰들이라 이 정도에서 마무리를..

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • PDF
  • RSS
  • Twitter

3 Responses  
[iPhone] 스노우 레오파드 !! Snow Leopard (Mac OS X 10.6) 간단 설치 후기 (Xcode, Spaces, Expose) | Alones world writes:
September 8th, 2009 at 9:52 am

[...] Ref 3. OS X Snow Leopard (in-depth review) [...]

정의의소 writes:
September 8th, 2009 at 10:48 am

한글로 번역해서 올라왔네요. ^^;

http://www.albireo.net/forum/showthread.php?t=10293

Wegra Lee writes:
September 8th, 2009 at 10:28 pm

값진 글이라 그런지 노가다를 마다 않는군요 ㅎ 그런데 아직 번역중인가봐요. 앞쪽 페이지만 보이네요.

Leave a Reply

»  Substance: WordPress   »  Style: Ahren Ahimsa