Snow Leopardの技術解説

Snow Leopardについて、Ars Technicaに情報が出ていた。相変わらず凄い情報量なので、ざっと全体を眺めてみる。ユーザーインターフェースの変更箇所については国内のニュース系サイトにも載るけれど、技術的にコアな情報を入手するためにはやっぱり海外のサイトをチェックするしかない。

Page.1 Mac OS X 10.6 Snow Leopard; the Ars Technica review
Snow Leopardの概要、MacOS Xの歴史など。

Version 10.1 had a similar no-frills focus but took a heck of a lot less time to arrive.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica

なんて軽く書かれているけど、最近のMacユーザは、そもそも10.1がリリースされた当時のことを知らない人が多いのではないだろうか。新宿高島屋のパブリックベータは遠くになりけり。

Page.2 The price of entry
$29という価格設定について。
Page.3 Installation
インストールについて。Snow Leopardでは、ハードディスクの容量が少なくて済む。その理由の一つはもちろんPowerPC用コードの削除だけど、他にもファイル圧縮処理が行われていると言う。ここは面白そうなので、また別途取り上げてみたい。

In Snow Leopard, other kinds of files climb on board the compression bandwagon. To give just one example, ninety-seven percent of the executable files in Snow Leopard are compressed.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.4 Snow Leopard's new looks
GUIデザインの変更について。デスクトップピクチャ、ドックのメニュー、歴代のCD/DVDのレーベルなど。
Page.5 Warning
internals ahead:64bit対応について。Tiger, Leopard, Snow Leopardの各バージョンで、カーネル、ドライバ、フレームワークのどこまでが64bit化されて来たのか一目で分かる。

Despite Leopard's seemingly impressive 64-bit bona fides, there are a few more steps before Mac OS X can reach complete 64-bit nirvana. The diagrams below illustrate.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.6 QuickTime X
QuickTime Xについて。ムービーの再生処理にはGPUの支援が入っている。

QuickTime X also supports GPU-accelerated playback of H.264, but, in this initial release, only on Macs equipped with an NVIDIA 9400M GPU (i.e., some 2009 iMacs and several models of MacBooks from 2008 and 2009).

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.7 File system API unification
ファイルシステムAPIについて。やたらとたくさん有ったファイル処理用APIが整理された。

In Snow Leopard, Apple has created a new, unified, comprehensive set of file system APIs built around a single data type: URL

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.8 Doing more with more
ムーアの法則を引き合いにだして、CPUの性能向上を生かし切れていない現状を説明。次ページ以降、これに関連した内容の説明が始まる。
Page.9 LLVM and Clang
LLVMとClangについて。いずれGCCではなく、Clangがメインのコンパイラになるらしい。

GCC 4.2 is still the default compiler in Snow Leopard, but this is a transitional phase. Clang is the recommended compiler, and the focus of all of Apple's future efforts.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.10 Blocks
新しく導入されたBlocksについて。C言語の拡張という位置付けなので、Objective-C/C++でもclosures、anonymous functionsが使える。

Apple has introduced a C language extension called "blocks." Blocks add closures and anonymous functions to C and the C-derived languages C++, Objective-C, and Objective C++.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.11 Concurrency in the real world; a prelude
Concurrency(並行処理)について。BeOSという懐かしい名前も出てくる。(未だにBeOSの亡霊から逃れられないのか)

BeOS created instant converts out of hundreds of technology enthusiasts, many of whom maintain that today's desktop computing experience still doesn't match the responsiveness of BeOS. This is certainly true emotionally, if not necessarily literally.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.12 Grand Central Dispatch
Grand Central Dispatch (GCD) の仕組み、原理について。C言語由来の機能という位置付けなので、結果的にObjective-C/C++C++でも同じように使える。

There's no need to link in a new library to use GCD in your program. Just #include and you're off to the races. The fact that GCD is a C library means that it can be used from all of the C-derived languages supported on Mac OS X: Objective-C, C++, and Objective-C++.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.13 Asynchronicity
Asynchronicity(同期性)について。ボタンアクションに結びつけられた「ドキュメント解析処理」において、2行追加するだけでGCD対応になる例が説明されている。メインスレッドで処理しなければならないGUIと、別スレッドで処理したい他の処理(ドキュメント解析等)との連携は、一般に面倒なものだけど、その辺の橋渡しを簡単にやってくれるのがGCDのメリット。だから、こんな結論になる。

Simple, elegant, and effective. And for developers, no more excuses.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.14 OpenCL
OpenCLについて。確かにCUDAに良く似た構成になっている。

OpenCL is a lot like CUDA. It uses a C-like language with the vector extensions, it has a similar model of memory hierarchy, and so on.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.15 The OpenCL difference
OpenCLの続き。OpenCLの位置付けは、複数CoreのCPUやGPUをまとめて扱うためのもの。CPUで実行されるかGPUで実行されるか、動作環境に応じて適切にリソースが配分される。また、SSEやCUDAとの関係も説明されている。

Apple's key decision in the design of OpenCL was to allow OpenCL programs to run not just on GPUs, but on CPUs as well. An OpenCL program can query the hardware it's running on and enumerate all eligible OpenCL devices, categorized as CPUs, GPUs, or dedicated OpenCL accelerators (the IBM Cell Blade server―yes, that Cell―is apparently one such device).

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica
Page.16 QuickTime Player
QuickTime Playerについて。インストーラのオプションで選択できるのは"QuickTime Player 7"であり、"QuickTime 7"自体は必ずインストールされる。
Page.17 The Dock
Dockについて。(主にGUI面での機能、ユーザーインターフェース等)
Page.18 The Finder
Finderについて。コラムビューでも並び替え順序の変更が可能になった。
Page.19 Exchange
Exchangeサポートについて。(この対応はiPhoneの方が先行していた)
Page.20 Performance
パフォーマンスについて。
Page.21 Grab bag
その他の情報。「開く/保存」ダイアログのでの表示項目追加、スキャナサポートの改善、32bitプラグインを開けないシステム環境設定、Safariプラグイン、解像度非依存表示(悪くなった)、Terminalの画面分割、システム環境設定でのアイコン配置(また変わった)、Core location(iPhoneから持ってきた)、キーボードマジック(テキストの置換)
Page.22 The sleeping Mac dilemma
Wake up機能、ハック(Input Managers, SIMBL)、ZFS(結局入らなかった)
Page.23 The future soon
MacOS Xの将来について。いわゆるインテルの"tick-tock"型リリースと同様に、大きな機能変更が入る10.7と、それを洗練させる10.8(今回のSnow Leopardのような形)が続くのではないかと予想している。

As for the future, it's tempting to view Snow Leopard as the "tick" in a new Intel-style "tick-tock" release strategy for Mac OS X: radical new features in version 10.7 followed by more Snow-Leopard-style refinements in 10.8, and so on, alternating between "feature" and "refinement" releases. Apple has not even hinted that they're considering this type of plan, but I think there's a lot to recommend it.

Mac OS X 10.6 Snow Leopard: the Ars Technica review | Ars Technica