OS Xがメジャーバージョンアップされるたびに書いているような気がするが、「OSで機能を提供する」ことはメンテナンスの義務が発生することと同義で、同時にコストも発生する。このコストとは、一義的にはOSベンダーの開発費およびサポート費用だが、システムの肥大化と機能の煩雑化も伴うため、実はユーザにとってのコストでもある。だからレガシーな機能は早い時期に取り除かれるべきだが、動作の一貫性/互換性という悩ましい問題が付きまとい、大胆に削ぎ落とすことが難しい部分だ。

その点Appleは、思い切りよくレガシーな機能を捨ててきた実績がある。AppleTalk然り、NetInfo然り。PowerPCからIntelへのプラットフォーム転換では、しばらくPPCバイナリを温存したあとこれを捨てた。64bitアーキテクチャへの移行も同様、まだフレームワークなどにバイナリコードが残ってはいるものの、時間の問題と見ていいだろう。

先日リリースされたOS X Yosemiteでも、レガシーな機能がいくつか姿を消している。GUIやアプリケーションのレイヤーは他の方にお任せするとして、当コラムではTerminalで確認できる機能を中心にピックアップしてみよう。

YosemiteのTerminalで実行した「hostinfo」コマンド。よく見ると、CPUの表記が以前より詳細になっていることがわかる

「SystemStarter」が姿を消した

各種サービス/デーモンの起動や停止を管理する「スーパーサーバ」は、OS Xでは数度の変遷を経ている。当初はUNIX系OS伝統のinetdやxinetd、そしてOS X独自の「SystemStarter」が利用されていたが、OS X 10.4(Tiger)のときから「launchd」への移行を開始し、レガシーなものは随時消し去られてきた……SystemStarterを除いては。

SystemStarterも長らく「deprecated(非推奨)」という扱いだったが、Mavericksまで実行ファイルは/sbin/SystemStarterとして確保されてきた。所定の場所(/System/Library/StartupItems/、/Library/StartupItems)にplistファイルを保存し、「start」や「restart」などの内部コマンドで処理を指示できたが(参考)、ついにYosemiteからは利用できなくなった。

おそらくは後方互換性確保のために残されてきたのだろうが、今後SystemStarterは利用できない。大半のアプリケーションは「launchd」に移行しているはずで、ほとんど影響はないと考えられるが、もしYosemiteへアップグレード後に動作しないサービスが現れたとしたら原因はコレかもしれない。

Yosemiteでは、ついに「SystemStarter」が姿を消した。アップグレードした場合、ディレクトリは残されるが使用することはないだろう

「○○○ユーティリティ」がない!?

/Systems/Library/CoreServices(以下、CoreServicesフォルダ)には、FinderやDockなどのシステムと関係の深いアプリケーション、および関連リソースが収録されている。「アプリケーション(/Applications)」フォルダにないためFinderからダブルクリックで起動することはないが、システム環境設定やファイルのコンテキストメニューなどから起動するアプリケーションの数々も、その多くがCoreServicesフォルダに保存されている。

このCoreServicesフォルダをTerminalで探索していたところ、ある変化に気がついた。「システムイメージユーティリティ(System Image Utility.app)」が見当たらないのだ。もしや、NetBootのサポートが廃止された(いや、そんなはずはない)? それに、ディレクトリユーティリティも画面共有もない。アーカイブユーティリティもないが、FinderでZIPファイルをダブルクリックすると起動するので存在はするはず。

原因を探ったところ、消されたわけではなく、「Applications」というサブフォルダが設けられ、ネットワークユーティリティやアーカイブユーティリティといったアプリケーションが移動されていたのだ。かつて「アプリケーション」フォルダ(そのサブフォルダの「ユーティリティ」)に保存されていた「ネットワークユーティリティ」は、これで2度目の"引っ越し"を経験したわけだ。ずいぶんと深い階層に追いやられたものだという気もするが、利用頻度を考えればやむを得ないところか。

ネットワークユーティリティやアーカイブユーティリティといったシステムツールは、CoreServicesのサブフォルダに移動した

ついに「hostconfig」が逝く

そして最後に紹介するのは「hostconfig」。/etcディレクトリに保存されているOS X独自のシステム設定ファイルであり、「AFPSERVER=-NO-」などと記述しておくと、次回のシステムブート時に参照され、該当するネットワークサービスが記述に応じて起動されるというものだ。

かつてはSambaやWebサーバ(Apache)の起動をオン/オフするために利用したものだが、ネットワークサービスはシステム環境設定「共有」パネルとの連係が進み、ほとんど利用されなくなっていた。Leopardのときだったか、このファイルのコメント行に「This file is going away」と記されるようになり、他の方法への移行を促された事情もある。

しかし、Snow Leopard、Lionと待てど暮らせどなくならず……それがついにシステム上から消え役割を終えたのだから、少々感慨深いものがある。天寿を全うした「hostconfig」に乾杯! (?)

Mavericksの「hostconfig」を表示したところ。予告どおり、Yosemiteでは姿を消した