UnixとLinuxの設計およびその他の面で基本的な違いはありますか?[閉まっている]


24

私はこの文章を読み続けます:

LinuxはUnixライクなシステムですが、Unixではありません。

両者の本当の違いはわかりません。LinuxはUnixから多くのアイデアを得ており、2つのライセンスは異なることを知っています。それとは別に、私はそれらのいずれかの専門家ではないので、デザインまたは他の重要な側面に基本的な違いがあるかどうかを知りたいです。


2
どこでそれを読んだのかを明確にしていただけますか?ウェブ検索では、Robert LoveによるLinux Kernel Development(3rd Edition)が表示されます。
-gnat

回答:


30

「Unixのような」システムは、Unixシステムとして適格なものの標準の総称であるSingle UNIX Specificationに完全に準拠している可能性がありますが、同時にUnixはThe Open Groupの登録商標であり、Unixのようなシステムのベンダーが必要としていますUnixとして正式に認定されるようにシステムを登録する。現在、登録されているUNIX 03システムは次のとおりです

  • Apple Inc .: IntelベースのMacintoshコンピューター上のMac OS Xバージョン10.5 Leopard
  • Apple Inc .: IntelベースのMacintoshコンピューター上のMac OS Xバージョン10.6 Snow Leopard
  • 富士通株式会社:FujitsuPRIMEPOWER®64ビットSPARC®ベースプラットフォーム上のSolaris™10オペレーティングシステム
  • Hewlett-Packard Company:HP Integrityサーバー上のHP-UX 11i V3リリースB.11.31以降
  • IBM Corporation:POWER V5.2用AIX 5L(APAR付き8-2004以降):pSeries CHRPシステム上のVAC 6.0.0.8以降を搭載したIY59610、IY60869、IY61405
  • IBM Corporation:POWER™プロセッサーを搭載したCHRPシステムアーキテクチャーを使用するシステムでの7-2006以降のPOWER V5.3用AIX 5L
  • IBM Corporation:POWER™プロセッサーと2、8または128ポートの非同期カードを備えたCHRPシステムアーキテクチャーを使用するシステム上のAIX 6オペレーティングシステムV6.1.2 SP1以降
  • Oracle Corporation:SPARCベースのプラットフォーム、32ビットおよび64ビット、およびX86ベースのプラットフォーム、32ビットおよび64ビット上のOracle Solaris 11 FCS以降
  • Oracle Corporation:Solaris 10オペレーティングシステムと、64ビットX86ベースのシステム上のX86以降のパッチ118844-06
  • Oracle Corporation:Solaris 10オペレーティングシステムおよび32ビットおよび64ビットSPARCベースシステム
  • Oracle Corporation:Solaris 10オペレーティングシステムおよび32ビットX86ベースシステム上

システムのようなオープンソースUnix(ほとんどの場合LinuxおよびFreeBSD)のベンダーは、認証のコストを避けるため、またはそうすることであまり価値がないため、Open Groupに登録しません。理論的には、Unixのようなシステムが技術的にはUnixである可能性は完全にあり、欠けているのは認証だけです。

一方、Linux Foundationは、Linuxの標準化を目指して、ISO標準であるLinux Standard Baseを作成しました。遵守POSIXは 方法でUnixおよびLinuxの間のリンクを維持し、SUSとLSBの両方の心臓部です。

UnixとUnix系のシステムは異なるよりも似ている傾向があり、理論的には、登録されているかどうかに関係なく、すべての人気のあるUnixフレーバーはPOSIX準拠(完全または大部分)であるため、コアプログラミングインターフェイス、シェル、ユーティリティ(および他の多くのもの)。IEEEとThe Open Groupは、POSIX.1-2008の最新バージョンの無料で入手可能なコピーを保持しています。ここでは、POSIXコンプライアンスが実際に意味するものに関する詳細情報を見つけることができます。

現在、法的および技術的な理由は別として、Linuxは、Richard Stallmanによって開始されたUnixのようなオペレーティングシステムであるGNUとの関連付けから、「Unixではない」というマントラを継承しています。ストールマンの意図は、フリーなUnix互換システムを構築することであり、そのためにはUnixがプロプライエタリであるため、Unixコードを含むべきではないため、GNUは「GNU's not Unix」の略です。

初期のLinux開発者はGNUツールのLinuxへの移植を開始し、結果として得られたシステムは1992年には早くも GNU / Linuxと呼ばれていました。LinuxをLinuxとGNU / Linux(GNUのいくつかの部分が組み込まれているため)と呼ぶかどうかについては長続きする論争がありますが、それはあなたの質問とは無関係です。関連するのは、「Unixではない」コンテキストに応じて、GNUを使用し、その設計とはほとんど関係ありません。

「歴史のLinuxの」記事ウィキペディア上では、Linuxの起源と(経由のUnixとそれとの関係について説明しMinixのいくつかの詳細とGNU)を、そしてあなたがに興味があるなら、あなたはまた、記事の参照を介して読み込むためにいくつかの時間を取る必要がありますもっと学ぶ。


良い答えは、私はあなたの私の答えとしてあなたを選択するかどうかを待ちます:)
グニジューズ

8
@Gnijuohz急いで答えを受け入れないでください。質問を常に1、2日(または必要に応じてそれ以上)熟成させてください。回答。回答を受け入れるかどうかは完全にあなた次第であり、コミュニティがどのように回答したかに関係なく、回答があなたにとって役に立たない場合でも受け入れる必要はありません。
ヤニス

1
興味深いことに、明らかにOS Xの最新バージョンは「公式に」UNIXではありません。
クリスハーパー

@ root45これは、バージョンのコンプライアンスを確認するのに時間がかかるため、予想されることです。
ヤニス

@YannisRizosああ大丈夫。それは理にかなっている。情報のおかげで。
クリスハーパー

4

UNIXはオペレーティングシステムのファミリであり、最近ではUNIXはOpen Groupが所有するブランドになっています。オペレーティングシステムにUNIXのブランドを付けるには、適合性テストを実施する必要があり、Linuxの場合、そこにあるすべてのディストリビューション(Ubuntu、Debian、Fedora、Red Hatなど)は、リリースごとにこの適合性テストを個別に受ける必要があります。これが、LinuxがUNIXではなくUNIXに似たシステムである主な理由の1つです。

私が述べたこのテストは、現在バージョン4 SUSv4(Single Unix Specification version 4)にあるSingle Unix SpecificationにOSが準拠していることを確認するためのものです。この仕様は、システムがUNIXという名前の資格を得るためにアプリケーションで使用できる必要があるAPIのセットを定義します。


従うのは良い基準ですか?Linuxの作者はそれを試みますか?
仕事

1
それは良いですが、不完全な標準です。Linuxカーネルの貢献者はこの標準に従うことを試みており、Linuxは非公式にUNIXシステムと見なされる可能性があります。Unix標準に準拠してアプリケーションを開発している場合、Linuxシステムでコンパイルおよび実行される可能性があります。残念ながら、先ほど言ったように、UNIXはいくつかの点でやや不完全であるため、OSはいくつかのタスクに追加のAPIを提供します。
ラファエル

POSIX認定プロセスを開始したLinux-FTと呼ばれるディストリビューションがありましたが、当然のことながらスポンサーはお金を使い果たしました。ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml

この情報をありがとう!私は、誰かがディストリビューションを認証しようとしたことがあるのか​​と疑問に思いました。
ラファエル

3

既存の答えは、あなたが探している違いのいくつかをすでに言及しています。Linuxカーネルの専門家でなくても、GNU / LinuxとさまざまなUnicesの設計/実装の違いの多くは、Linuxカーネル設計パターンシリーズでカバーされていることを付け加えます。


2

「UNIX」は特定するのが複雑なものです。標準への準拠という点では、SolarisとMac OS Xはどちらも「公式に」UNIXですが、両者の間に大きな違いを見つけるまでに多くの時間を費やす必要はありません。UNIXまたはUNIXライクなオペレーティングシステムのさまざまなフレーバーのリリースと、それらが相互にどのように影響および相違したかを文書化した素晴らしい図があります。

UNIXのような見た目、歩き、偽物の壮大なスキームでは、Linuxシステム[*]はより一般的なリリースの1つです。人々がUnicesまたは* nixを参照し、「UNIXに似たもの」を意味することは非常に一般的です。これにはおそらくLinuxが含まれます。ただし、UNIXは商業的に適用される方法に制限がある登録商標です。これらの制限に適合するLinuxディストリビューションはありません。

[*]この質問はセマンティックなヘアスプリッティングのレベルを招くため、この場合はLinux自体がオペレーティングシステムを構築できる単なるカーネルであると指摘するのはトピックだと思います。Linuxの上にUNIXのようなシステムを構築することは一般的であり、それが設計された目的であり、そのシステムは通常GNUプロジェクトコンポーネントから構築されます。上記の答えでは、「Linux」は「Linuxカーネルを組み込んだオペレーティングシステム」の省略形として読むことができます。


@YannisRizos答えへの参照を追加します。間違いなく認定されています。

はい、あなたは絶対に正しいです。Leopard以降では、Mac OSはUNIX 03の認定を受けています
ヤニス

2

私はかつて、LinuxはPC開発者を連れてUnix OSの作成を依頼したときに得られるものだと読みましたが、FreeBSDはUnix開発者を連れてPC OSの作成を依頼したときに得られるものです。あなたの比較でBSDを忘れないでください!

ユーザー空間アプリケーション(lsなどを含む)はすべてGNUプロジェクトの一部であるため、違いは主にカーネルにあります。これは、Unix、FreeBSD、およびLinuxがすべてほぼ同じように見えることを意味します。

ただし、よく見ると違いがあります。ディレクトリレイアウトは異なりますが(多くのLinuxディストリビューションでは独自のほとんど互換性がありますが、レイアウトは異なります)、ファイルシステムは異なります(UnixはUFSを使用し、FreeBSDはFFSを使用し、LinuxはExt3を使用して単純化します-それらのすべては一般的なFS、たとえばZFS)

次に、コアAPIには違いがあります。Linuxはinotify APIを提供してファイルの変更を通知し、Mac OSXはFSEvents提供し、FreeBSDはkqueueを提供します。

したがって、それらは同じファミリーと見なすことができます。GNUツールが移植されたWindowsシステムと同じツールを備えたLinuxシステムを比較してください。それらは表面的には同じように見えますが、UnixまたはFreeBSDシステムは依然として同等に見えます。よく見ると、FreeBSD、Unix、Linux間のアプリの移植は、Windowsなどの代替OSへの移植に比べて比較的簡単です。


1

Unixはもはや単一のオペレーティングシステムではありません。以前はBell Labs / AT&Tによる実装でしたが、現在は標準です。

技術的には、Linuxはカーネルにすぎません。このカーネルは、OSのような非Unixで見つけることができ、最も一般的なのはAndroidです。一方、Unixに似たLinuxベースのOSは数多くあります。それらのほとんど(すべてではないにしても)は、Gnuライブラリとユーティリティを使用しています。この組み合わせにより、LinuxディストリビューションにUnix APIと標準への準拠(または非準拠)が提供されます。

Unix標準では、準拠システムがプロプライエタリである必要も、特定のライセンスを持つ必要もありません。BSD、OpenSolaris / Illumos、darwinは、Linux以外のフリーなUnix実装の例です。

準拠システムは通常、プロプライエタリとオープンソースのコンポーネントの組み合わせですが、Gnu / Linuxは完全にオープンソースであるか、プロプライエタリのものを含むこともできます。

Unix準拠に関する限り、大きな違いはありません。ほとんどのLinuxディストリビューションとUnix実装は、同じオプションセットを使用して同じコマンドセットを共有します。ただし、特にGnuismsと呼ばれるGnu側には、標準コマンドの多くの拡張機能があり、そもそも標準で定義されていない多数のコマンド(コンパイラー、管理コマンド、インストール、パッケージング、グラフィック環境)。これは、多くの相違点、非互換性、そして時には聖戦を見つけることができるエリアです。

Gnu / Linux開発モデルは通常、より「オーガニック」で「バザール」に似ていると見なされますが、他のUnixライクなシステムは「設計」され、「大聖堂」に似ています。サブシステムに応じて、違いはそれほど明確ではなく、その背後にある個人や企業に依存します。


1

Linuxには、次のような多くのツールが付属しています。

  • GUIシステム
  • GNUユーティリティ(cp、mv、ls、date、bashなど)
  • インストールおよび管理ツール
  • GNU C / C ++コンパイラ
  • 編集者(vi)
  • およびさまざまなアプリケーション(OpenOffice、Firefoxなど)。

ただし、すべてが単一のソースまたはベンダーから提供されるため、ほとんどのUNIXオペレーティングシステムは完全なオペレーティングシステムと見なされます。

彼らが共有するもの:

  • GUI、ファイル、およびWindowsマネージャー(KDE、Gnome)
  • シェル(ksh、csh、bash)
  • OpenOffice.orgなどのさまざまなオフィスアプリケーション
  • 開発ツール(perl、php、python、GNU C / C ++コンパイラー)
  • POSIXインターフェイス

LinuxはUnixの哲学にも拡張します...
求人

2
Linuxは単なるカーネルではなく、Linuxカーネルもカーネルです。Linuxは通常、Linuxカーネルを中心に構築された完全なシステムを指します。
ヤニス

@匿名-回答を編集して修正すると、ダウンボターがダウンボットを削除する場合があります。保証されていませんが、時には役立つことがあります。(私はダウンボートしませんでした、ただ助けようとするだけです):)あなたの答えの残りは正しいです、私見。
jmort253

-7

実際のところ、Linuxは結局のところ、Unixのリバースエンジニアリングを組み合わせたものでした。そのため、カーネル設計はケントンプソンの哲学に従いました。Linuxの方法は、独自の考えを自分に負担させることなく、Unixの哲学を可能な限り厳密に模倣することです。


@YannisRizos「それは本当に使い物にならなかった」とはどういう意味ですか。知る限りでは完全に使用可能ですが、PDPアセンブリで記述されているため、他のアーキテクチャに移植するのは困難でした。
サキスク

@ samual-johnson -1参照を使用してステートメントをバックアップしないため。「ケン・トンプソンの哲学」について聞いたのは初めてです(そしてトムソンではなくトンプソンです)。
サキスク

1
@faif参照を確認すると、私が参照していた初歩的なカーネルはPDPではなくGE-645向けに書かれていたため、Unixカーネルと呼ぶのは一苦労でした。コメントを削除しました。とにかく参照が不足していることについての主なポイントであり、あなたのコメントはそのメッセージを伝えるのに十分です。-samualは、あなたの主張をしっかりした参考文献でバックアップするか、意見に基づいていないものに修正するために、少し時間をかけてください。
ヤニス

@YannisRizos興味深い。ウィキペディアによると、Multicsの改良版であるGE-645について聞いたことがありません。情報をありがとう。
サキスク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.