世界を動かす技術を、日本語で。

macOSを軽量化できますか?

概要

  • 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環境でも、 backupdbackupd-helper が起動し、CPUやメモリを少量消費。
  • これらプロセスは /System/Library/LaunchDaemons 配下の com.apple.backupd-helper.plistcom.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では SSVDAS-CTS などの設計により選択肢が大幅に減少。
  • 現在ユーザーが選択できるのはAI用のcryptexesやRosetta 2の有無程度で、後者も将来的には削除予定。
  • 現代のmacOSは、ユーザーがプロセスの実行を大幅に取捨選択できる設計ではない ことが根本的な特徴。

Hackerたちの意見

パワーユーザーにとってmacOSの良さがよく分からないんだよね(仕事で使わなきゃいけない場合を除いて)。基本的な作業ができるシンプルなものを求めるカジュアルユーザーには理解できるけど、macOSがLinuxにはないパワーユーザー向けの何を提供してるの?自分の好きなようにマシンを動かせる能力を犠牲にする価値があるのかな?Linuxなら、OPの問題はArchやNixOSみたいなミニマルなディストロから構築することで解決できるよ。

macOSがパワーユーザーに提供するものは何か、Linuxにはないものは? パワーユーザーの定義は人それぞれだけど、私の場合は: - 特にノートパソコンでは、ハードウェアとの統合が良い(良いハードウェアも含めて)、エネルギー効率、電源管理 - 商業ソフトウェアベンダーからのサポート たぶんデスクトップマシンにはLinuxを使えるけど、ノートパソコンには無理だね。試してみたけど…定期的に試してるけどさ。

完璧に動作するドライバー。パワーユーザーとしては、ツールを修理するんじゃなくて、使いたいんだよね。たまにいじることもあるけど、それは私にとっては関係ないこと。

macOSがパワーユーザーに提供するものは何か、Linuxにはないものは? それが自分のマシンを好きなように動かす能力を犠牲にする価値があるのは? 主に、グラフィカルアプリとの互換性が格段に良いこと。Microsoft OfficeやAdobe Creative Suiteは多くの人が必要とするものだよね。どちらもmacOSにはファーストパーティの提供があって、Linuxではwine経由のサポートがあまり良くない。Apple Siliconのおかげで、ハードウェアも特に優れてるし、macOSをうまく動かすだけだし。

私にとってはすごくシンプル:動いて、邪魔しない。それに2010年からMacBookを持ってるけど、タッチバーの時代に短期間だけWindowsのXPSを使って、その後UbuntuとデュアルブートしてたSystem76にしたこともある。Windows(その時はWindows 10)の状況は最悪だった。全く一貫性のないUI、設定がいろんなメニューに散らばってる、スタートメニューに広告、遅くて壊れた検索、Windowsの更新やドライバーの更新、ドライバーが更新されたって知らせる、ウイルス対策ソフトのインストールや更新、などなど。これらは自分でインストールしたものじゃなくて、Dellのセットアップに含まれてたもの。System76のノートパソコンは違った。静かで、自分の好きなように設定できて、ちゃんと動いた。ところが、ある時新しいバージョンの何かをインストールしたら、音に関係ないものだったのに音が壊れちゃって、会議に参加する準備をしてた時に、2020年の後半にロックダウンの第2フェーズに入る直前だったから、オンライン会議が続くことになった。私のMacBookは信頼できる。M1が出たときにすぐに手に入れて、今まで一度も問題がなかった。メジャーバージョンを2回(たぶん)アップグレードしたけど、すべてうまく動いてる。必要なときに動かなくなる心配はないよ。(ビルド品質、タッチパッドの質、バッテリー寿命、静音性などのことは考慮してないけど)結局、仕事の一環としてたくさんデバッグするんだ。仕事をしていないときは、自分がデバッグしたいものを選びたいんだ、強制されたくない。Appleがどこに向かっているのかは分かるし、彼らが私たちのマシンでできることを制限したい欲張りな会社だってことも知ってる。でも、今のところ私にとっては、最もマシな選択肢なんだ。

「パワーユーザーにとってmacOSの意味が分からない」 こういうスレッドはいつもこういう微妙な侮辱で終わるよね。WindowsやLinux、Macを使ってる人の気持ちが本当に分からないの?それぞれの強みがあるんだから。 > 「自分のマシンを好きなように動かす能力を犠牲にする価値がある」 G4 PBからMacを使ってるし、Linuxも長いこと使ってる。Windows用の開発もしてたけど、かなり前の話だね。やりたいことをするのに困ったことはないよ。 > 「ArchやNixOSみたいなミニマルなディストロから構築するだけで」 それやったことあるけど、他にやることが多すぎてディストロを構築する時間がないんだ。デスクトップLinuxは前回試した時よりは改善してると思うけど、今のところ何がポイントなのか分からないな。

もっと広く言うと、LinuxはメインOSとして魅力を感じないんだよね。macOSと同じようなデスクトップ環境がないから。既存のDEはなんとなくMacっぽい形をしてたり、少しMacっぽく設定できたりするけど、完全なパッケージにはならないんだよね(よく考えられたHIGの一貫した適用、デザインへのホリスティックなアプローチ、進行的開示の完全な受け入れなど)。さらに、一般的に必要なことでも設定が異常に面倒だったり(Fedoraの仮想化とか)、たまにランダムに壊れたり(大体はシステムアップグレードの後)して、修正するために内部に潜らなきゃいけないこともある。特にノートパソコンに関しては、1) ノートパソコンとして優れている(バッテリー持ちが良くてスタンバイ時間も長い、頑丈だけど重くない、長時間負荷をかけても静かで、電源を抜くとネットブック速度にスロットルしない)、2) Linuxファーストで設計されている、3) ClevoやTongfang、CompalみたいなODMからの既存モデルの半端なリバッジじゃない、っていうのが欠けてるんだよね。面白いことに、素晴らしいLinuxノートパソコンに最も近いのは実はSteam Deckなんだ。他の市場の製品はここまで統合されてないよ。Valveがノートパソコンビジネスに参入したら興味あるな。カスタムビルドのデスクトップでLinuxを日常的に使うのはノートパソコンよりも早いと思うけど、上記の広い課題は残ってる。

でも、macOSはLinuxにはないパワーユーザー向けの何を提供してるの? すごく良い画面、スピーカー、タッチパッド、デスクトップクラスのパフォーマンス、素晴らしいバッテリーライフ、そして冷静で静かな動作をするノートパソコン、さらに必要なプロプライエタリ/商業アプリが動く*nixライクなOSだよ。macOSでの作業は、Linuxでの作業と同じように、ターミナルからパッケージマネージャーやDockerを使ってやってる。今はLinuxにはない商業アプリにもアクセスできるし、本当に使って楽しいハードウェアで動いてる。市場にはAppleシリコンのMacBook Proに匹敵するノートパソコンはないよ。全くない。どの代替品も、私が気にしてる何かを犠牲にしてる。私はハードウェアのためにmacOSを我慢してるし、Linuxの世界にそんなハードウェアが出てくるまでMacを使い続けるつもり。

「パワーユーザー」って、実際には何を意味するのか分からないけど、彼らはmacOSを使うのは、ちゃんと動くからだよね。Macのノートパソコンを使うのは、常にすぐにスリープから復帰するから。音声も常に動作していて、遅延も少ないし。仕事があるから、OSは非常に信頼性が高い。しかも軽いし、バッテリーもすごく長持ちする。私のノートパソコンは43日間動きっぱなしだけど、サーバーの世界ではそれほど長くないけど、開発やハードウェア設計、音声制作に使う個人用デバイスとしては素晴らしい。最後に再起動したのは多分OSのアップグレードのためだけど、正確には覚えてない。私の仕事用のLinuxノートパソコンも結構信頼性が高いけど、それは何もアップグレードしないで開発だけに使ってるから。バッテリーの持ちが悪いから、常に電源に繋いで使ってる。仕事用のLinuxデスクトップはBluetoothオーディオやグラフィックスに問題があって、それを直す気にもならない。

最近までのLinuxの状態を忘れてるみたいだね。何十年も、MacOSは「ただ動く」って感じで、ユーザーはOSと戦わずに済んでた。プロの世界では「アップデートでWi-Fiカードがダメになったから、今日は何もできなかった」なんて言い訳は通用しないから、MacOS(とWindowsも少し)は勝利したんだ。大きな組織はIT部門を持っていて、デスクトップにLinuxを導入しても問題ないかもしれないけど、すべてが「ただ動く」ことを保証するためには、裏で膨大なテストと検証が必要なんだ。独立したプロや小さなテックスタートアップには、そんな余裕はなかった。ここ5年ほどで2つのことが起こった。1) Linuxが「普通の開発者」が仕事用のマシンにインストールしても大丈夫な状態になったこと、2) MacOSがOSのアップデートがリスクになってきたこと。「ただ動く」ってスローガンは、もうあまり当てはまらない。

基本的なタスクに対してシンプルに動くものを求めるカジュアルユーザーには理解できるけど、パワーユーザーにとってLinuxにはないmacOSの何があるの?それが、自分のマシンを好きなように動かす能力を犠牲にする価値があるの?自分はパワーユーザーだと思ってるけど、「設定趣味人」ではないと思ってる。自分はMacを使っていろんな仕事をしてる。シェルスクリプトを書いたり、Homebrewを通じてインストールしたたくさんのサードパーティのコマンドラインツールやオープンソースソフトウェアを使ってる。だけど、パワーメーターウィジェットやメニューバーの株価ティッカー、アニメの女の子のデスクトップ背景があるカスタマイズされたデスクトップ環境は持ってない。10年間Linuxを使って、アップデートで物事が壊れるのに疲れたし、システムを「普通」に戻すために設定ファイルを編集する必要があった。Macは、最初から「普通」を提供してくれて、生産性(とバッテリー寿命)もたくさんある。コマンドラインの力も妥協してない。

Unixの純粋主義者にとっては、これは無駄で不必要に見えるかもしれないけど、macOSはUnixじゃないし、今までなったこともない。彼らの言いたいことは分かるけど、macOSはUnix認証も受けてるんだよね。 https://www.opengroup.org/openbrand/register/

はい、紙の上ではね。提出されたバージョンは、顧客が自宅や職場で使っているものとは異なる。

次の文も実は面白い。 > 「クローズドソースのプロプライエタリオペレーティングシステム」 でも、ほとんどのUNIXシステムはプロプライエタリでクローズドソースじゃなかった?

「彼らの言ってることは分かるけど、macOSはUnix認証も受けてるからね。」って、どういう意味?私には、ブログの著者は主に「コントロール」の問題に焦点を当ててるように思える。つまり、彼が購入したハードウェアを自分でコントロールしたいのに、会社にコントロールされるのは嫌だってこと。例えば、プリインストールされたソフトウェアやリモートでインストールされる「アップデート」、デフォルト設定などでね。彼はデフォルトの動作をコントロールできないから、「MacOSをスリムにしたい」と思ってるんだ。「UNIX」っていうのは、別のOSの名前をもじった言葉で、あれは大きすぎて複雑すぎるって批判されてたんだ。あのOS、MulticsはGEの特定のハードウェアでしか動かないように設計されてたけど、UNIXはそれに比べて小さくてシンプルな代替品で、C言語で書き直された後は、さまざまなハードウェアで動かしやすく、使う人が改造できるようになった。AppleはMacOSを使う人に改造を許可してないし、MacOSはプロプライエタリだから、AT&TのUNIXとは違って研究コミュニティにリリースされてない。結果として、非商業的なオープンソースの「MacOSに似た」OSプロジェクト(Hackintoshは別として)が生まれなかった。ユーザーは、会社の制約なしにMacOS用のプログラムを書くことができない。例えば、事前承認や「開発者」料金が必要だったりね。MacOSはさまざまなハードウェアで簡単に使えるわけじゃなくて、Appleのプロプライエタリなハードウェアでしか使えない。非商業的なUNIXライクなOSと比べると、MacOSは大きくて複雑だよね。https://eclecticlight.co/2023/12/04/macos-sonoma-is-setting-...

macOSはUnixではないし、今までなったこともない。MacOSは、Unixの中で最もUnixらしい。1. 比較的重い 2. プロプライエタリ 3. UNIX API

なんでAppleはヘッドレスのmacOSを提供しないのか、あるいは少なくともミニマルインストールの道を用意しないのか理解できない。あのMac miniは素晴らしいサーバーボックスになるのに、何もしていないのに8GBが数百のプロセスに奪われるのは、無駄で洗練されてない感じがする。

それに売上がないからね。Appleの経営陣はお金を基準に決定を下してる。それが理由で、少数派だけど小さいスマホを好む人がいるのにiPhone miniがないんだよ。

一時期OS X Serverは提供されてたけど、市場がなかったんだよね。https://en.wikipedia.org/wiki/Mac_OS_X_Server

あのMac miniは、年次リリース後にFileVaultを自動で有効にするサーバーボックスで、Linux OSと比べてLaunchDaemonsをうまく設定するのが永遠の試行錯誤みたい。最後の再起動の後にApacheが起動しなかった理由を探ってるところ。ああ、Macのログロテーターがファイルの権限をまたいじったんだな。残念だよ、MacOSの動作効率が好きなのに、Mac miniのデザインや形状は暗い隅に隠したくないし。仮想デスクトップを有効にしておかなきゃいけないし、SSH以外でも定期的に使うことになるよ。

あのMac miniはちょっとしたサーバーボックスに最適だけど、何百ものプロセスに8GBを失うのは痛いね。 でも、余分なものは全部スワップに行くから、あんまり関係ないよ。結局、何も失ってないってことさ。あの何百ものプロセスは、基本的にはSSDのちょっとした部分を使ってるだけで、RAMを使ってるわけじゃないから、心配する必要はないよ。

MacOSがヘッドレスサーバーOSとしてLinuxの代わりにどんなアプリケーションに役立つの?

CI用のVMにはスリムなmacOSがめっちゃ必要なんだよね。ちょっとしたものは削れるけど、大体は無理だし。とはいえ、macOSって思ってるほどメモリ食わないよ。例えば、4GBのVMでもソフトウェアを立ち上げてビルドできるし。

そうだね、タイトルからOPがその方向に行くと思ったよ。誰か解決策を見つけてくれるのを期待して投稿を読み続けてるけど、いつもトレードオフがあるんだよね。これって結構重要なことだから、WWDCでAppleが何か発表するかも。AIにはもっと良いアイソレーションの仕組みが必要だよね。信頼できないソースからソフトウェアを実行するには、もっと簡単で柔軟なアイソレーションの保証が必要だし。自動ビルドには軽量な仮想化オプションが求められてる。xcode-toolsやアクセシビリティAPIを含めることができるDockerfile、ボリュームマウント、ネットワーク制御とか。https://github.com/dockur/macos はちょっと使いづらいかな?Tart VMとかAppleのコンテナCLIを手動で使うのはほぼそこまで来てるけど、イメージがでかすぎるんだよね。

「ここが最初の問題で、これらはSigned System Volume(SSV)にあるから、何の変更もできない」 他の417のLaunchDaemonsや460のLaunchAgentsも同様で、Activity Monitorに表示されるプロセスの大半を占めてる。SSV以前は、起動を防ぐためにプロパティリストを編集することができたけど、現代のmacOSではそれができなくなった。SSVは無効にできるけど、そうするのはお勧めできない。ただ、Appleはそれを意図的に許可してる。実際、macOSのすべてのセキュリティレイヤーを取り除くことができるし、署名されていないカーネル拡張を読み込むこともできる。この文書は少し古いけど、まだそれが可能であるべきだ。https://gist.github.com/macshome/15f995a4e849acd75caf14f2e50... 記事がmacOSを安っぽく貶めてる感じがする。AppleはSSVにちょっと詰め込みすぎたのかな?間違いなくそうだね。Chess.appですら入ってるし。本当に重要なの?ほぼ間違いなく、そうじゃない。

記事はただの安っぽいmacOS叩きに感じるね。あのブログ、Howard Oakleyのeclecticlight.coは、macOSの挙動や内部について、Appleが説明しないことを一番詳しく解説してるサイトだよ。彼はいくつかの便利なツールの作者でもあって、内部の詳細を観察したり理解したりするのに役立つんだ。macOSのためのSysInternalsに一番近いかも。 [1] https://eclecticlight.co/free-software-menu/

Eclecticlightと「安っぽい叩き」? いや、そんなことない。このサイトは、ディスカッションの質、ソフトウェアの質、そして献身において、独自のクラスだよ…何年も続く一貫した質を持ってる。

SSVを無効にすると、システムのセキュリティが一般的なLinuxディストリビューションと同じレベルになるよ。ほとんどのOSは、暗号的に検証された読み取り専用のルートを提供してないからね。

Oakleyはそれを説明できたかもしれないけど、注釈なしでも主張は成り立つし、説明することには問題がある。これはLinuxの人たちを怒らせるかもしれないけど、MacOSの一部をバイパスする方法を大きな場で伝えるときは、ほとんどのMacOSユーザーがカジュアルで技術的でないユーザーであることを意識することが重要なんだ。だから、「SIP/SSVロック/なんでもバイパスする方法」っていう人気のブログ投稿は、あまり良くない理由(見た目、特定のサービスがシステムの遅さを引き起こしていると信じているなど)でそれを無効にするユーザーの波を生むことになる。そういう決定には副作用がある。- 人々は自分のコンピュータを壊したり、保証やサポート契約を無効にするような方法で壊してしまうかもしれない(ソフトウェアのバイパスがこれを引き起こさないことを願ってるけど、ちょっと懐疑的)。- 「クリーンさ」を追求する人たちは、終わった後にシステムのセキュリティを多くオフにしてしまう。このスレッドの誰かが指摘したように、SSVなしではMacOSのセキュリティはほとんどのLinuxと同じくらいだけど、MacOSユーザーはLinuxユーザーよりも攻撃リスクが高い。なぜなら、彼らの方が多く、裕福で、マルウェアや人々にターゲットにされやすいから。そして、再度言うけど、彼らはカジュアルユーザーで、良いセキュリティ感覚を持っていない。これはMacOSのすべての制限やセキュリティ機能を無条件に支持するものではなく、単にそのユーザーベースが他のユーザーよりも攻撃のリスクが高いという観察に過ぎない。Windowsよりは低いけど、Linuxユーザーよりは高い。- 人々は遅延でコンピュータを壊すようなことを引き起こす。例えば、次のシステムアップデートで、全く予期しないサービスのジオメトリに遭遇してハードクラッシュしてデータ損失を引き起こすことがある。SSV-rwのようなものを秘密にすべきだとは言ってないけど、広く読まれる情報ブログで、技術者向けではなく(パワー)ユーザー向けの内容でそれを前面に出さない方がいいと思う。別の例で言うと、誰かが「XProtect(アンチマルウェア)を無効にする方法」をググったら、いいよ、好きにして。だけど、「システムのlaunchdサービスを停止してリソース使用量を減らせるか?」という人気の記事には、「ここで権限を上げて何でも無効にする方法」っていう説明はない方がいいし、「いいえ、それはサポートされていません」って答えるのが良いと思う。

それって本当に重要?ほぼ間違いなく、そうじゃないよね。…でも、いらないものが含まれ始めたらどうなるか(CSAMスキャンの騒動を思い出して)。

問題は、Oakleyが実際に間違っていることだ。プロパティリストを編集する必要はないよ。SIPを無効にした後、launchctlコマンドラインツールを使ってシステムのlaunchdサービスを無効にすればいいだけなんだから、SSVを無効にする必要はない。

macOSのUnix認証についての話がたくさんあるけど、別のユーザーがシェアした投稿によると、そのUnix認証の実際の内容がOPを裏付けているみたいだ。macOSの公式なUnix互換性はSIPを無効にすることを要求するんだ。> 「だから、macOS 15.0のインストールがUNIX® 03認証テストスイートを通過させたいなら、システム整合性保護を無効にし、ルートアカウントを有効にし、コアファイル生成を有効にし、タイムアウトの統合を無効にし、すべてのAPFSパーティションをstrictatimeオプションでマウントし、APFSパーティションを大文字小文字を区別するようにフォーマットし(デフォルトではAPFSは大文字小文字を区別しないので、再インストールが必要)、Spotlightを無効にし、バイナリのuucp、uuname、uustat、uuxを/usr/binから/usr/local/binにコピーし、バイナリのuucicoとuuxqtを/usr/sbinから/usr/local/binにコピーし、これらのバイナリにsetuidビットを設定し、/usr/local/binを/usr/binと/usr/sbinの前にPATHに追加し、uucpサービスを有効にし、四つの一時的免除にリストされた謎の問題を処理する必要がある。」https://www.osnews.com/story/141633/apples-macos-unix-certif... だから、SIPやSSVのような機能は、認証があるにもかかわらず、Unixからの本物の逸脱だと言ってもいいと思う。

そんなこと、全然望ましくないよ。setuid uucp?セキュリティの悪夢だ。strictatime?必要ない。Linuxもやってないし。AppleはUNIXの良い部分を残して、クソな部分を無視してる。結局、LinuxよりもUNIXらしいんだよ。

その発言への生々しい反応: > Unixの純粋主義者にとっては、これは無駄で不必要に見えるかもしれないが、macOSはUnixではないし、今までなったこともない。これは、何百万もの消費者や一般ユーザーが使うために設計されたクローズドソースのプロプライエタリオペレーティングシステムだ。設定ファイルや数千のプロパティリストを使って設定するのではなく、コントロールは主にシステム設定に露出していて、いくつかの設定は隠されていて、defaultsコマンドを通じてのみアクセスできる。これは本当に興味深い。なぜなら、多くの人(著者を含む)が「macOSはUnixかどうか」という質問に非常に投資しているからだ。ここでは多くのシグナルが発生していて、人々はUNIXの大文字を使い、認証について話し、「UNIXの良い部分」について語り、macOSが「文字通りUNIXである」と言っているが、著者の意図を完全に見失っているように見える。著者に同意する必要はないが、「macOSはUnixではないし、今までなったこともない」という良い信頼の解釈は、その意味が明らかであるべきだ。はい、macOS 26はThe Open GroupによってSingle UNIX Specificationに準拠していると認証されている。IBMのz/OSもUNIX認証を受けている。だけど、z/OSのUSSが「文字通りUNIX」と言われることはないと思う。著者が明らかに言おうとしているのは、macOSのアイデアとシステムはUnixではないということだ。たとえmacOSが法的に「UNIX®」であっても、それはUNIX®であるために作られたわけではない。macOSは「UNIX®の哲学」に従うようには作られていない。NextStepとその後のOS XがBSD互換であったという事実は、実装の詳細であり、役に立つものであるが、実装の詳細に過ぎない。Androidがその下でLinuxカーネルを使用しているのと同じだ。はい、AndroidはLinuxだけど、「本物のLinuxスマートフォン」を支持する声の大きいコミュニティがある理由がある。AndroidはLinuxを使用しているが、AndroidはLinuxによって定義されるわけではない。ここで誰かを正しいか間違っていると証明しようとしているわけではなく、ただこの問題について自分の意見を述べたいだけだ。私はmacOSを「Unixらしい」と呼ぶだろう。CLIで快適に使える「Unix」に近いからだ。でも、私はUnixの「心」に触れたことがあるので、2005年頃のFreeBSDの匂いがまだすることを知っている。もちろん、それはほとんどのことにとっては十分だ。でも、だからといって、WindowsがWSL1を介してLinux ELF実行ファイルを実行できるからといって、Unixのようだとは言えない。Microsoftが気にかければ、WSL1、WSL2、またはWSL1の部品を使ったSFUのハッキングされた再生を通じてUNIX® 03認証を取得することができるかもしれない。はい、macOSには「本物の」BSDコアがあり、BSDやOSF/1を通じて「本物の」Unixの遺産があることは知っている。要するに、著者が「いいえ、macOSはUnixではない」と言っているところから来ているのは簡単に理解できると思う(私は彼に異なる理由で反対するが、彼は「Unix」がオープンソースであることを意味することをあいまいに示唆しているなど、でもmacOSがプラットフォームとしてあまりUnixらしくないという点には同意する)。

長い間、Inspur K-UXというRed Hat Linuxの派生版もUnix O3認証システムだったんだよね。https://www.opengroup.org/openbrand/register/brand3617.htm

そう言えるのは、SIPやSSVのような機能がUnixからの本物の逸脱だということだよね。結局のところ、UNIXはオペレーティングシステムなんだ。80年代以降、Bell Labs以外でリリースされたことのない死んだオペレーティングシステムで、10版も1988年のもので、配布されたことはない。System Vとその派生版を通じて一部は残ったけど、それが仕様になって、オペレーティングシステムはその仕様に従ってUNIXを名乗るようになったんだ。私が生まれる前から、私たちはUnixから本物の逸脱をしている。SUSやPOSIXがあるから、私たちはそうじゃないふりができるけど。

多くの人にとって、OSを軽くしたい理由はRAMやCPUの使用量じゃないと思う。自分のコンピュータ体験をコントロールしたいからなんだよね。もしOSが膨れ上がってなければ、1000個のプロセスが時々ちょっと起き上がっても誰も気にしないはず。じゃあ、何がOSを膨れさせてるのか?必要ないものや欲しくないものが前面に出てきて、無視できなくなるからだよ。通知やポップアップが大きな原因だね。昨日やった中で一番ストレスを減らしたことは、音楽アプリが新しい曲名を表示するような無意味な通知をオフにしたこと。あと、Little Snitchを使って、更新がダウンロードされたり、うるさく言われたりすることが二度とないようにしたよ。

数年前、CI目的でVM向けのカスタム「ディストロ」とも言えるものを作ったことがある。リカバリー/インストーラーパーティションから始めて、必要なものだけを追加して、いらないものは削除するという感じで、できるだけミニマルにしたんだ。驚くことに、そんな前例はほとんど見つからなくて、情報源はHackintoshコミュニティが一番だった。でも、やるのはそれほど難しくはなかったし、ちょっと面倒だったけど、最終的にできたディスクイメージのサイズは1GB未満だったよ。一般的に、macOSコミュニティは、率直に言うと、コンピュータに詳しくない非パワーユーザーが多くて、あなたに反対するか、何を言ってるのか全く分からない人がほとんどだね。対照的に、Windowsのモディングに関する情報はめちゃくちゃ多いし、もちろんLinuxはその逆の立場にいる。

Appleが顧客体験第一から投資家満足第一に変わってしまったのは悲しいね。iOS26やTahoeが膨れ上がって遅くなるプレッシャーがすごいし、計画的陳腐化が明らかに中心になってる。Appleが自社のOSをARMチップと同じくらい真剣に扱うことを期待したいけど、そうはなりそうにないね。「パフォーマンスとバグ修正の年」ってサイクルが起こって、次に出るOSをさらに膨らませる口実を与えることになる。これが一番最悪な部分だよ。今は修正して、できることを見せて、その後の年に膨らませて、みんなにデバイスをアップグレードさせるんだ。

それって重要なの?この一連の処理は0.144秒で完了したんだ。リソースの使用量はほとんどなくて、軽量なプロセス間通信を使って、1時間ごとに繰り返すだけ。昔はAppleにこういうことにこだわるチームがいたんだよね。集計すると、バッテリーに対する影響が大きいから、特に機能が無効になっているサービスに対して。重要じゃないのか、それとも簡単にできることがあって、誰も管理していない「デッドコード」がたくさんあって、でも問題を引き起こすほどでもないのかな。