4 ポイント 投稿者 GN⁺ 2024-10-16 | 1件のコメント | WhatsAppで共有
  • Appleの最新OSリリース版は、Open Groupの一覧で公式に検証された最新のUNIX™準拠版だが、皆さんが考えているものとは一致しないかもしれない
    • macOSはAT&Tのソースコードを使用していない。"Unix"は、1993年にNovellがBell LabsからUNIXを買収して以降、もはやその意味を持たない
  • 参考: OS Xは16年前からすでにUNIX認証を受けている

UNIX™認証が意味すること

  • コードとは関係がない。30年以上そうである
  • UNIX™認証は現在では「POSIX互換」を意味する
  • POSIXは互換性仕様とテストセットであり、正しいツールが正しい場所に存在していなければならない
  • IBMのz/OSメインフレームOSもこの一覧に含まれている

Unix系OSの定義

  • Unixのように見え、Unixのように動作し、Unix向けに書かれたプログラムを大きな修正なしで移植できなければならない
  • macOSの中核はこれに十分合致している。XNUカーネルと、主にBSDコードから派生したユーザー空間を使用している
  • XNUはMachカーネルをベースとしており、BSDコードに由来する大規模なカーネル内「Unixサーバー」も備えている
  • ユーザー空間の大半はオープンソースで、BSD由来である
  • GUIレイヤーと見た目を整える可視部分は独占的である

AppleのDarwinプロジェクト

  • AppleはかつてDarwinというプロジェクトで、OSの下位レイヤーをスタンドアロン版として提供していた
  • OpenDarwin、PureDarwinなど、他のFOSS OSの断片を使ってこれを完成させようとした複数のディストリビューションがあった
  • NextBSDプロジェクトは逆方向に進み、FreeBSDカーネルを維持しつつ、launchdのようなAppleの上位レベルのコードを利用できるよう改変していた

macOSの進化の過程

  • 1996年末、AppleはNeXT Computerの買収を発表し、1997年10月に次世代OSであるRhapsodyのプレビューを公開した
  • RhapsodyはNeXTstep 5とほぼ同一だった
  • 1999年にはMac OS X Server 1.0となり、これは2000年のMac OS X 1.0へと発展した
  • 10.8 Mountain LionからはOS Xへ、10.12 SierraからはmacOSへと簡略化された
  • しかし今でも、1988年にSteve Jobsが実演したNeXTstep 0.8と認識できるほど似ているOSである

GN⁺の見解

  • macOSがUNIX認証を受けたことには大きな意味はないように見える。ほとんどの人にとって実質的な影響はないだろう
  • ただし、macOSの基盤であるDarwinがオープンソースである点は注目に値する。これにより開発者はmacOSの内部動作をよりよく理解できる
  • POSIX互換性は今なおOS間の移植性確保に重要な役割を果たすが、最新標準への準拠はもはや優先事項ではないようだ
  • NeXTSTEPからmacOSに至る進化の過程を見ると、ユーザーインターフェースと開発者体験の革新がOSの成功にどれほど重要かが分かる
  • 結局のところ、UNIX認証そのものよりも、macOSが開発者に優しく、使いやすく、強力なエコシステムを備えていることのほうが重要に見える。ただしUNIX認証には、macOSの堅牢な基盤を示す象徴的な意味はある

1件のコメント

 
GN⁺ 2024-10-16
Hacker Newsの意見
  • Sequoiaの認証は新しいものではない。OS Xは長年にわたりOpen Groupの認証を受けてきた
  • このような認証がなぜ重要なのか疑問がある
  • macOSは「Unix」として認証されているが、現代のBSDはそうではない。同じコードベースから出てきたのに、なぜなのか気になる
  • ターミナルデバイスでpoll()を呼び出せるかどうかが重要だ
    • Mac OS Xの初期からこの機能が欠けていた
    • クロスプラットフォームソフトウェアは常にselect()poll()の両方をサポートしなければならない
    • Mac OS Xではselect()、他のシステムではpoll()を使わなければならない
    • poll()に標準化できれば望ましい
  • macOSのマニュアルページと認証要件の比較
    • macOSのpoll()システムコールはデバイスをサポートしていない
    • 認証要件ではpoll()およびppoll()関数がさまざまなデバイスをサポートする必要がある
  • macOS 15でこのバグが修正されたのか、それとも認証に意味がないのか疑問がある
  • 認証はさておき、LinuxとmacOSは非常によく似ている
    • xdg-openopensystemdlaunchdsed -ised -i ''の違いがある
  • POSIXセマフォがmacOSで動作しないのに、なぜ認証を受け続けているのか理解できない
  • Appleがなぜこのような認証を取得しようとするのか気になる
    • macOSサーバーをもっと使わせようという意図ではなさそうだ
  • Appleが新しいサーバー計画を持っているのではないかと気になる
  • Unix互換性の大きな隔たり、特にpipe2の実装をAppleが進めてくれることを望む