Q: LinuxとUNIXは何が違うのですか

A: 似ているけれど,違います。

 「UNIX」と一言でいっても,いろんな実装や製品があり,それらの間でも微妙な差異はたくさんあります。

 「LinuxはUNIXである」といっても大きな間違いではありません。コマンド・レベルの話でいえば,システム管理やカーネルに近い部分のコマンドは違いに気が付きやすいものの,一般ユーザー・レベルのコマンドで違いに気が付くことはほとんどないでしょう。細かく見て行けば実装の違いや,各種メッセージの違いに気付きますが,それで大きく困ることはないはずです。

 もっとも,Linuxディストリビューションにもさまざまな種類があります。例えば,ディレクトリ構成は標準化されつつありますが,ディストリビューションによっては大きな違いがありますし,ユーザー・レベルのコマンドの有無は標準化しようがありません。

 このようなLinuxディストリビューション間の差異の大きさと,LinuxディストリビューションとUNIXとの差異の大きさに違いがあるかといえば,あまりありません。では,LinuxとUNIXは同じといってよいのでしょうか。

 「UNIXとはAPI仕様のことである」と考えると,その典拠となる仕様は「POSIX」であることに異論のある人はあまりいないでしょう。「POSIX準拠のOSがUNIXだ」と定義してしまえば,LinuxはほぼUNIXです(正式には認可されていませんが)。

 しかし,この定義では,WindowsのSFU(Windows Services for UNIX)もUNIXになります。「LinuxはPOSIXだからUNIXだ」と主張する人でも,「SFUはUNIXなんだ」と言うのには抵抗があるのではないでしょうか。

 また厳密には,POSIXは「今どきのUNIX系OSの必要条件」ですが(実は,さらに厳密に言えば,必要条件ですらありませんが),十分条件ではありません。ですから,POSIXに対する準拠うんぬんだけで「UNIXである」と主張するのには無理があります。

 「UNIXとはコードのことである」ということにすれば,ベル研究所が最初に作ったUNIXの子孫のみがUNIXとなります。UNIXのコードの権利はあちこちに売られ,今は米SCO社が知的財産権を持っています。この定義なら,SCOが権利を持っているコードとは無関係に作られたLinuxは,UNIXの系譜とは全く関係のないものとなり,「LinuxとUNIXとは全く別物」といえます。

 しかし,多くの現在のUNIXは,その進化の過程で元祖UNIXのコードはほとんど排除されているはずですし,パソコン用UNIX系OSの一方の雄である「FreeBSD」や「OpenBSD」,「NetBSD」あたりは,元祖UNIXのコードをすべて排除したといわれる4.4BSDを始祖としていますから,これらもUNIXじゃないことになります。

 最後に「UNIXとは商標権のことである」とすると,The Open Groupの認定を受けていないLinuxはUNIXではありません。

 このように,機能や仕様,API,知的財産,商標といういろいろな尺度を持ってきた場合,LinuxはUNIXであるともいえるし,そうでないともいえます。ですから,「何が違うの」と聞かれれば,「違うといえばかなり違うし,違わないといえばあまり違わない」となります。