部分的に抽象化に関するものであることは理解していますが、私は初心者なので、これらの概念は非常に曖昧です。Mac OS は Linux アーキテクチャの上に構築されていますか? Linux は Unix/Ubuntu とどのように関係していますか? 私はこれを他の場所で調査しようとしましたが、非常に明確な説明を見つけるのは困難です.
4 に答える
Unixは、もともと1970年代に開発されたオペレーティングシステムであり、MacOSXのベースとなっています。Linuxはカーネル(ハードウェアとインターフェイスするオペレーティングシステムの一部)ですが、UbuntuやFedoraなどのディストリビューションは残りのソフトウェア(その多くはGNUプロジェクトからのもの)を追加して完全なOSにします。LinuxとGNUプロジェクトは元々、クローズドソースのUnixの無料の代替手段を提供するために存在するようになったため、コードはUnixの子孫ではありませんが、非常によく似ています。
Linux はオペレーティング システム カーネルのみであり、Unix 標準に準拠しています。カーネルは、最新のオペレーティング システムで実行される最小限のソフトウェア コンポーネントであり、プログラムの実行を処理し、ハードウェア、メモリ、IO などを管理します。これは、通常のユーザーが直接やり取りするものではなく、認識しているものでもありません。
Ubuntu は、Linux カーネルを使用する完全なオペレーティング システムです。完全なオペレーティング システムには、プログラム (Web ブラウザー、ファイル エクスプローラー、フォト ビューアー、プリンター ドライバー、デスクトップ環境など) が含まれ、完全なユーザー インターフェイスが提供されます。Linux カーネルを実行するため、Unix 標準に準拠しています。
Unix は、オペレーティング システム カーネル、ユーザー空間ユーティリティ、および 1970 年代に最初に開発された標準に付けられた一般名です。
Mac OS は、Darwin カーネルと FreeBSD ユーザー空間ユーティリティを実行する完全なオペレーティング システムであり、Unix 標準に準拠しています。
これは、POSIX/Single UNIX 仕様 (一連のオペレーティング システム標準) に準拠する C で書かれたプログラムが、Linux、Mac OS、FreeBSD などで同じようにコンパイルおよび動作することを意味します。は POSIX/Single UNIX に準拠しておらず、上記のオペレーティング システムとは大きく異なり、大幅な変更なしにそのプログラムを実行できるとは限りません。
それらはすべて「UnixLike」システムです。
UbuntuはLinuxです。Linuxカーネルを実行します(Androidも実行します)。
Unixは今日、具体的なオペレーティングシステムとして存在していません。アーキタイプを除いて、そのアーキタイプはPosix(Posixは標準仕様であり、既存のソフトウェアではありません)であり、現在はOpenGroup Unix(これも標準仕様です)です。 。
古いATTUnixコードは、破産したSCOに法的にほとんど失われています。
リストするすべてのシステムはPosixを実装しています。
したがって、Posix準拠のCプログラムは、相互に簡単に移植できます。おそらく、再コンパイルするだけで済みます。
Unix は、70 年代に C プログラミング言語とともに開発されたオペレーティング システムです。UNIX パラダイムは、それ以来開発されたすべてのオペレーティング システムに大きな影響を与えてきました。その要素は、Windows にも見られます。
Unix パラダイムに従ういくつかのオペレーティング システムが作成されています。Mac OS には、BSD Unix と呼ばれる、PC 用に作成された Unix の最初のバージョンの 1 つに基づくカーネルがあります。
Linux は趣味用のオペレーティング システムとして始まりましたが、その後非常にプロフェッショナルなオペレーティング システムになりました。名前が示すように、Unix パラダイムにも従っています。これは、通常、Unix でコンパイルされるプログラムは、Linux および MacOS でもコンパイルされることを意味します。
多くのオープン ソース オペレーティング システムにはディストリビューションと呼ばれるものがあるため、Linux と BSD のディストリビューションがあります。これらのディストリビューションは基本的に、構成済みのソフトウェアのセットにすぎませんが、努力すれば同じものを自分でゼロから組み立てることができます。Ubuntu はそのようなディストリビューションの 1 つです。
さまざまな UNIX ライクなオペレーティング システムがあるため、Unix C API は Posix という名前で標準化されています。ほとんどのオペレーティング システムは、ネイティブで Posix をサポートしています。Microsoft は、Windows 用の Posix レイヤーも提供しています。