概要
- Activity Monitor で表示されるプロセスは数百にのぼる。
- Time Machine 関連プロセスは無効化しても実行され続ける。
- Signed System Volume (SSV) によりプロセスの制御が困難。
- DAS-CTS による自動スケジューリングの仕組み。
- macOSはユーザーによるプロセス制御の自由度が低い設計。
macOSのプロセス管理とTime Machineの例
- Activity Monitor を開くと、何もしていない状態でも 500~700以上のプロセス がリストアップされる現状。
- WindowServer のような必須プロセスもあるが、不要そうなプロセスも多く見える印象。
- それぞれのプロセスの役割や依存関係の把握は困難、Apple内部でも全容を把握している人はほぼいない現実。
- 主要なプロセス500個を1週間ずつ調査しても 10年以上 かかる計算、しかもその間に仕様変更が発生。
- そこで、 Time Machine関連プロセス (backupd、backupd-helperなど)に注目し、不要なプロセスの代表例として検証。
Time Machineプロセスの特徴と管理
- Time Machine を一度も有効化していないVM環境でも、 backupd や backupd-helper が起動し、CPUやメモリを少量消費。
- これらプロセスは /System/Library/LaunchDaemons 配下の com.apple.backupd-helper.plist や com.apple.backupd.plist で管理。
- しかし、これらは SSV(Signed System Volume) 上にあり、ユーザーが編集・無効化できない仕様。
- 他の多くの LaunchDaemons(417個) や LaunchAgents(460個) も同様にSSV上にあり、現行macOSでは編集不可。
Time Machine自動実行の仕組み
- macOS Sierra以降、Time Machineの自動バックアップは launchd ではなく DAS(Duet Activity Scheduler) と CTS(Centralised Task Scheduling) が共同で管理。
- DASが com.apple.backupd-auto などのアクティビティを管理し、実行タイミングを決定、CTSに指示を出す流れ。
- 例:Mac起動後5分間は他プロセスに優先権を与え、その後バックアップがスケジュールされる。
- XPC(軽量なプロセス間通信) を用いてプロセスが実行され、完了後は次の実行がDASで再スケジュール。
- Time Machineが 無効化 されていても、これらの自動スケジューリングは 1時間ごと に繰り返される。
ユーザーコントロールとリソース消費
- DAS-CTS の仕組みはユーザーから完全に隔離されており、設定やコマンドで停止・変更不可。
- 実際には、これらプロセスは 0.144秒 程度で完了し、リソース消費も極小。
- Unix的な「無駄を省く」思想とは異なり、macOSは 消費者向けのクローズドな設計。
- システム設定や一部のdefaultsコマンド以外では、細かなプロセス制御はできない現状。
macOSの自由度と現代的制約
- Classic Mac OS 時代はモジュール選択や不要機能の除外が容易だったが、現行macOSでは SSV や DAS-CTS などの設計により選択肢が大幅に減少。
- 現在ユーザーが選択できるのはAI用のcryptexesやRosetta 2の有無程度で、後者も将来的には削除予定。
- 現代のmacOSは、ユーザーがプロセスの実行を大幅に取捨選択できる設計ではない ことが根本的な特徴。