3 ポイント 投稿者 GN⁺ 2024-07-04 | 1件のコメント | WhatsAppで共有
  • AppleのDS_Storeの起源

  • Macユーザーであるか、MacからWindowsへファイルを転送したことがあるなら、.DS_Store ファイルには見覚えがあるはず

  • この名前の起源は1999年までさかのぼる

  • 当時、筆者はAppleでMac OS X Finderの技術リーダーだった

  • Finderのコードベースは8年物で、実用寿命を迎えていた

  • 変更を加えるには莫大なエンジニアリング作業が必要で、変更すると無関係な機能が2つか3つ壊れることがよくあった

  • Mac OS X向けにFinderをゼロから書き直すことにした

  • 作業の一部は、ユーザーインターフェースと中核機能、つまりバックエンドを分離することだった

  • Finderのバックエンドは、ファイルを列挙し、ファイルシステムの変更を監視し、メタデータを処理する

  • 内部では、この2つの構成要素はFinder_FEとFinder_BEとして知られていた(FrontendとBackend)

  • FinderのバックエンドはFinderの外でも有用だと気づいた

  • これを公開APIにする計画を立てた

  • 以前にIcon ServicesとNavigation Servicesの命名を担当していたため、Desktop Servicesという名前を選んだ

  • .DS_Store は "Desktop Services Store" の略

  • Unix OS、Mac OSを含め、不可視ファイルと見なされるよう先頭に "." を付けた

  • 個人的には、この名前はあまり良いとは思っておらず、もっと説明的な名前を選べばよかったと思っている

  • .DS_Store ファイルの過剰生成につながるバグは、いまだに修正されていない

  • 本来は、ユーザーが表示設定を調整したり、フォルダ内でアイコンの手動位置を設定したりしたときにだけ生成されるべき

  • しかし実際には、フォルダを訪れると .DS_Store ファイルが生成されることがほぼ確実になっている

  • Finder_BE、すなわちDesktop Servicesは、Finder以外でも使われている

  • Navigation Services(開く/保存ダイアログ)もこれを使用する

  • ただし、Desktop Services APIはまだ完全には公開されていない


  • 2006年10月1日公開
  • Arno Gourdol執筆

GN⁺の見解

  • この記事は、Mac OS X Finderの歴史と .DS_Store ファイルの起源を説明することで、技術的背景を提供している
  • .DS_Store ファイルの過剰生成問題は今なお解決されておらず、ユーザー体験に影響を与える可能性がある
  • Finderバックエンドの再利用可能性は、Appleのソフトウェア設計思想を示している
  • 類似機能を持つ他のファイルシステム管理ツールとしては、WindowsのNTFSやLinuxのext4がある
  • 新しい技術やオープンソースを採用する際には、既存システムとの互換性や保守性の問題を考慮する必要がある

1件のコメント

 
GN⁺ 2024-07-04
Hacker Newsの意見
  • Macファイルシステムの「fork」という概念は、リソースとデータの構成要素が対になって存在することを意味する

    • Unixではメタデータはディレクトリブロックのinodeにあり、tar、cpio、zipなどで構造的に表現される必要があった
    • UnixでMac互換ファイルのサポートを実装するには、resource forkを一級のものとして扱う必要があった
    • 現代的なファイルシステムはより大きなディレクトリブロック構造を持ち、データをよりうまく扱える
  • .DS_Storeファイルの生成を無効にする方法はあったが、削除された

  • .DS_Storeファイルが同じフォルダにある必要がある理由が理解できない

    • OSがパスを参照する独自のデータベースを持てないのか?
  • .DS_Storeファイルは、ユーザーがフォルダの表示設定を調整したり、アイコンの手動配置を設定したりしたときにだけ作成されるべきだ

    • Finderでフォルダを訪れると、.DS_Storeファイルはほぼ常に作成される
    • Finderではフォルダウィンドウの見た目やサイズをユーザーがカスタマイズできるが、ブラウザウィンドウで同じフォルダを開くと、そのカスタマイズの大半が失われる
    • デフォルトのブラウザウィンドウ構成を設定できないことから生じる問題だ
  • 1999年の時点ですでにアプリはフロントエンドとバックエンドに分かれていた

    • Finder_FEとFinder_BEとして知られていた
  • ネットワークボリュームを参照するとき、.DS_Storeファイルの生成をデフォルトで無効にする方法があることは言及する価値がある

    • そうしないと、Finderを使って参照した際にディレクトリの更新タイムスタンプが更新される
    • 関連リンク
  • .DS_Storeファイルを見るたびにNintendo DSを思い出す

  • Macユーザーでない場合、Githubから.tgzファイルをダウンロードしたときに.DS_Storeファイルが含まれているのはやや煩わしい

    • macOSはGNU tarを使っているようだ
    • デフォルトで.DS_Storeファイルを無視するよう修正されていないのが意外だ
  • macOSの熱烈なファンだが、Finderは最も愚かなファイルエクスプローラーの一つだ

  • DS Storeファイルは不遇な存在だ

    • 目的はあるが、ほとんどの人にはファイルのゴミに見える
    • UXの観点ではAppleらしくない
    • System 7.5/OSXとWindowsを使ってきて、Macには不要なファイルを表示しないようにしようとする傾向があった