unix vs linux what is difference between unix
UnixとLinux:UNIXとLinuxのアーキテクチャ、カーネル、コマンドの主な違いは何ですか。
Linuxは、世界中のハッカーの助けを借りて、LinusTorvaldsを最初から作成したUNIXクローンに他なりません。
UnixおよびUnixライクなオペレーティングシステムは、1965年までさかのぼることができるベル研究所の元のUnixシステムから派生したコンピュータオペレーティングシステムのファミリです。
Linuxは最も人気のあるバリアントであり、さまざまなディストリビューションがあります。
=> 完全なUnixチュートリアルシリーズについては、ここをクリックしてください
Unixは、マルチタスク、ポータブル、マルチユーザーのコンピューターオペレーティングシステムのファミリーであり、タイムシェアリング構成も備えています。
Unixシステムは、システム全体の管理を担当する集中型OSカーネルを使用します。
プログラミングインターフェイス、ファイルの抽象化、組み込みのネットワーク、デーモンと呼ばれる永続的なバックグラウンド処理は、UnixOSでサポートされているその他の機能です。
学習内容:
UNIXとは何ですか?
Unixは、ほとんどのオペレーティングシステムの母と見なされています。
Unixシステムの設計は、次の特徴を含む「Unix哲学」に基づいています。
- データストレージのためのプレーンテキストの使用。
- 階層ファイルシステム。
- デバイスおよび特定の種類のプロセス間通信(IPC)をファイルとして処理します。
- 膨大な数のソフトウェアツールを採用しています。
- パイプを使用してコマンドラインインタープリターを介してスレッド化できる複数の小さくてシンプルなモジュラープログラム。これは、すべて同じ機能で構成される単一のモノリシックプログラムを使用するのとは対照的です。
ここで、Unix哲学に関する以下の引用に言及する価値があります。
「その哲学を一文で書き留めることはできませんが、その核心は、システムの力はプログラム自体からではなく、プログラム間の関係から来るという考えです。多くのUNIXプログラムは、単独で非常に些細なことを行いますが、他のプログラムと組み合わせると、一般的で便利なツールになります。」 –ブライアン・カーニハン&ロブ・パイク
Unixアーキテクチャ
次の図は、Unixアーキテクチャを示しています。
(画像 ソース )
Unixのマスター制御プログラムはそのカーネルです。カーネルはシステム全体を完全に制御できます。ファイルシステム処理、リソース処理、メモリ管理、プログラムの開始と停止、およびその他のいくつかの低レベルのコアタスクにサービスを提供するサブシステムがあります。
カーネルはOSの心臓部であり、ユーザーとハードウェア間のインターフェイスとして機能します。各カーネルサブシステムには、同時実行性、仮想メモリ、ページング、仮想ファイルシステムなどの特定の機能があります。
アーキテクチャの外層には、シェル、コマンド、およびアプリケーションプログラムがあります。シェルは、ユーザーとカーネルの間のインターフェースです。シェルとユーザーがコマンドを入力し、これらのコマンドを解釈して、それに応じてコンピュータープログラムを呼び出します。
例 UnixオペレーティングシステムのはSolarisとHP-UXです。 UNIXシステムの最大のディストリビューターには、IBM、HP、およびSUNが含まれます。
推奨読書=> 無料のUnixトレーニングチュートリアル
Linuxとは何ですか?
今では、Unixについて公正な考えを持っているでしょう。 Linuxについて詳しく見ていきましょう。
人々はUnixとLinuxという用語の間で多くのことを混同し、一般的に次のような質問をします。 「UnixはLinuxとは違うのですか?」 / 「LinuxとUnixは同じものですか?」 / 「LinuxはUnixに似ていますか?」/「LinuxはUnix上に構築されていますか?」 。
これがそのようなすべての質問に対する答えです。まず、ワンライナーであなたの混乱を解消させてください。 LinuxとUnixは異なりますが、LinuxはUnixから派生しているため、相互に関係があります。
LinuxはUnixではありませんが、Unixライクなオペレーティングシステムです。 LinuxシステムはUnixから派生しており、Unix設計の基礎の継続です。 Linuxディストリビューションは、Unixの直接派生物の最も有名で最も健全な例です。BSD(Berkley Software Distribution)もUnix派生物の例です。
この時点で、Unixライクなものを明確にすることが重要です。
UnixライクなOS(UN * Xまたは* nixとも呼ばれます)は、Unixシステムと同様に機能するものですが、Single UNIX Specification(SUS)または同様のPOSIX(Portable)に準拠している必要はありません。オペレーティングシステムインターフェイス)標準。
SUSは、「UNIX」商標の使用資格を得るには、すべてのOSが満たす必要のある標準です。この商標は「TheOpenGroup」によって付与されています。
いくつかの例 現在登録されているUNIXシステムには、macOS、Solaris、AIXなどがあります。 POSIXシステムを考えると、LinuxはUnixライクなOSと見なすことができます。
Linuxカーネルの公式READMEファイルによると、 LinuxはUNIXのクローンです これは、LinusTorvaldsとチームによってゼロから開発されました。 POSIX準拠を対象としています。 Linuxカーネルコードは完全にゼロから作成されました。 Unixのように動作するように設計されていますが、元のUnixコードは含まれていません。
次のことに注意することも重要です Linuxは単なるカーネルであり、完全なOSではありません 。このLinuxカーネルは通常Linuxディストリビューションにパッケージ化されているため、完全なOSになります。
したがって、Linuxはカーネルにすぎませんが、LinuxディストリビューションはOSとして扱うことができます。一方、UNIX自体は完全なOSであり、すべて(必要なすべてのアプリケーションが結び付けられている)は単一のベンダーから提供されます。 例えば、 Solaris。
Linuxディストリビューション(略してディストリビューションとも呼ばれます)は、Linuxカーネル上に構築されたソフトウェアのコレクションから作成されたオペレーティングシステムであり、パッケージ管理システムです。
標準のLinuxディストリビューションは、Linuxカーネル、GNUシステム、GNUユーティリティ、ライブラリ、コンパイラ、追加のソフトウェア、ドキュメント、ウィンドウシステム、ウィンドウマネージャ、およびデスクトップ環境で構成されています。
Linuxディストリビューションに含まれるソフトウェアのほとんどは、無料でオープンソースです。それらには、いくつかのデバイスドライバーに不可欠なバイナリブロブのようないくつかのプロプライエタリソフトウェアが含まれている場合があります。
LinuxベースのOSアーキテクチャ
(画像 ソース )
したがって、Linuxディストリビューションは、実際には、Linuxカーネルにさまざまなアプリケーションを追加することにより、オペレーティングシステムとして完全に使用できるようにします。幅広いユーザーニーズに対応するLinuxディストリビューションにはさまざまな種類があります。
二分探索木c ++コード
例えば 、組み込みデバイス用のOpenWrt LinuxベースのOS、パーソナルコンピューター用のLinux Mint、スーパーコンピューター用のRocks ClusterDistributionがあります。合計で、約600のLinuxディストリビューションが存在します。
Googleの人気のあるAndroidモバイルOSがLinuxをベースにしていることを知っておくと興味深いでしょう。 Android OSのすべてのイテレーションは、現在のLinuxカーネル上に構築されています。
UnixとLinuxの違い
Linux | Unixおよびその他のバリアント |
---|---|
さまざまなコミュニティによって維持されているさまざまなバリアント。 Linusによって維持されているブランチにカーネルがマージされます | さまざまな会社によって維持されているさまざまなバリアント。それぞれが独自のカーネルを維持します |
Linuxは、GNU / Linuxオペレーティングシステムのカーネルを指します。より一般的には、派生分布のファミリーを指します。 | Unixは、AT&Tによって開発された元のオペレーティングシステムを指します。より一般的には、派生オペレーティングシステムのファミリを指します。 |
LinusとGNUFoundationによって開発されたオリジナルコード | AT&Tが開発したオリジナルコード |
Linuxの商標は、Linus Trovaldsが所有し、LinuxFoundationの下でLinuxMarkInstituteが管理しています。 | UNIXの商標は、OpenGroupによって認定されています。認定されたオペレーティングシステムのリスト。 |
ISO / IEC23360として入手可能なLinuxStandard Base(LSB)は、多くのLinuxディストリビューターによる標準化の取り組みです。 LSBは主にPOSIXの拡張ですが、いくつかの違いがあります。ただし、さまざまなディストリビューションがどのような場合でも同じカーネルを使用するため、LSB認定の強い必要性はありません。 | IEEE 1003(POSIX)の拡張である「SingleUnixSpecification」に基づくUNIX認定。ISO/ IEC9945としても入手可能です。POSIXは、プログラミングAPIとシェルおよびユーティリティインターフェイスを指定します。 POSIXは、異なるUNIXベンダー間の相互運用性を可能にする方法として開発されました。 |
GNU / LinuxおよびDebianやFedoraなどの派生物 | System-VUnixおよびIBM-AIXやHP-UXなどの派生物。 BerkeleyUnixおよびFreeBSDやmacOSなどの派生物 |
コピーレフトのGeneralPublicLicenseの下でのオープンソース | Berkeley Unixは、BSDライセンスの下で部分的にオープンソースです。 System-V Unixソースは、独自の商用ライセンスの下で調達できます。 |
幅広いアプリケーション向けの汎用スケーラブルプラットフォームとして設計されています。 | 通常、ターゲットプラットフォームとアプリケーションの定義されたセットを持つ狭い対象者向けに設計されています。 |
構成可能なソフトウェアのダウンロードおよびインストーラーとして広く利用できます。 | 通常、ハードウェアと一緒に出荷されます。マックブック |
無料のコミュニティサポート。多くのサービスプロバイダーから利用可能な有料サポート。 | 有料の商用サポート。多くの場合、ベンダーロックインにつながります。 |
インターフェースはしばしば進化します | 通常安定したインターフェース |
頻繁な更新、迅速なバグ修正 | 更新頻度が低く、修正には時間がかかる場合があります |
オペレーティングシステム全体で使用されるほぼすべてのファイルシステムをサポートします | ほとんどのバージョンは、2つまたはおそらく3つのファイルシステムをサポートします |
多くの場合、焦点が限定されているシステム管理ツールの幅広さ。 Suse YAST | 各バージョンには通常、成熟したシステム管理ツールがあります。 HP SAM |
主に経済的な理由から、クラウド展開とデータセンターに推奨されるOS | アプリケーションの可用性による特別な目的のサーバー要件に適したOS、およびレガシーの理由によるインターネットサーバー |
クラスター、グリッド、またはクラウドを使用して実現されるスケーラビリティ。 | クラスターまたはグリッドを使用して達成されるスケーラビリティ |
(クラスターは同種のコンピューターのコレクションであり、グリッドは分散コンピューターのコレクションであり、クラウドサービスは仮想化されたクラスターのコレクションです。) | |
コマンドラインとグラフィカルユーティリティのほとんどはUnixに似ています | コマンドラインとグラフィカルユーティリティのほとんどはLinuxに似ています |
この記事から、UnixとLinuxの主な違いを理解していただければ幸いです。
LinuxとUnixのいくつかの重要な違いを以下の表形式で見てみましょう。
特徴 | Linux | Unix |
---|---|---|
初回リリース | LinuxはUnixと比較すると新しいです。 Unixから派生し、1991年9月にリリースされました。 | Unixは古いです。 1973年10月に外部向けにリリースされました。それ以前は、1970年の設立以来、ベル研究所の内部で使用されていました。 |
開発者 | LinuxはMINIX(UnixライクなOS)に触発され、もともとはフィンランド系アメリカ人のソフトウェアエンジニアであるLinusTorvaldsによって開発されました。オープンソースであるため、Linuxのコミュニティ開発者がいます。 | もともとはAT&T Unixから派生したもので、ベル研究所でKenneth Lane Thompson、Dennis Ritchie、その他3人によって開発されました。 |
で書かれている | Cおよびその他のプログラミング言語。 | Cおよびアセンブリ言語。 |
OSファミリー | Unixライク | Unix |
動作状態 | 電流 | 電流 |
ソースモデル | オープンソース | 混合。従来はクローズドソースでしたが、illumos OSやBSD(Berkley Software Distribution)OSを含むオープンソースのUnixプロジェクトはほとんどありません。 |
で利用可能 | 多言語 | 英語 |
カーネルタイプ | モノリシックカーネル | カーネルタイプは異なります。モノリシック、マイクロカーネル、ハイブリッドにすることができます。 |
ライセンス | GNUv2(GPL General Public License)など。 | ライセンスは異なります。プロプライエタリなバージョンはほとんどありませんが、無料/ OSSのバージョンもあります。 |
公式サイト | https://www.kernel.org/ | http://opengroup.org/unix |
デフォルトのユーザーインターフェイス | Unixシェル | CLI(コマンドラインインターフェイス)およびグラフィカル(X Windowsシステム) |
テキストモードインターフェイス | デフォルトでは、シェルはBASH(Bourne Again Shell)です。さらに、多くのコマンドインタープリターと互換性があります。 | もともとボーンシェル。また、多くのコマンドインタープリターと互換性があります。 |
費用 | 自由に入手して使用できます。 Linuxの価格バージョンもあります。しかし、一般的に、LinuxはWindowsよりも安価です。 | 独自のオペレーティングシステムには、それを販売するベンダーによって設定されたさまざまなコスト構造があります。 |
例 | Debian、Ubuntu、Fedora、Red Hat、Androidなど。 | IBM AIX、Solaris、HP-UX、Darwin、macOSXなど。 |
建築 | もともとはIntelのx86ハードウェア用に作成されたもので、ポートは多くのCPUタイプで使用できます。 | PAおよびItaniumマシンと互換性があります。 Solarisはx86 / x64でも利用できます。 OSXはPowerPCです。 |
脅威の検出と解決策 | Linuxは主にオープンソースコミュニティによって推進されているため、世界中のさまざまな地域の多くの開発者がコードに取り組んでいます。したがって、Linuxの場合、脅威の検出と解決は非常に高速です。 | Unixの独自の性質により、ユーザーは適切なバグ修正パッチを待つ必要があります。 |
セキュリティ | LinuxベースのOSとUnixベースのOSはどちらも、マルウェアから非常によく保護されていると一般に見なされています。これは、ルートアクセスの欠如、迅速な更新、および(Windowsと比較して)比較的低い市場シェアに起因します。 2018年の時点で、Linuxウイルスが蔓延していることはありません。 | Unixも非常に安全であると考えられています。ソースも利用できないため、感染はさらに困難です。現在、Unix用のウイルスは積極的に拡散していません。 |
価格 | Linuxは無料です。ただし、企業サポートは有料で利用できます。 | Unixは無料ではありません。ただし、一部のUnixバージョンは開発用に無料です(Solaris)。コラボレーション環境では、Unixの価格はユーザーあたり1,407ドル、Linuxの価格はユーザーあたり256ドルです。 したがって、UNIXは非常に高価です。 |
LinuxとUnixカーネル
Linuxだけが単なるカーネルであるため、LinuxカーネルとUnixカーネルの主な違いについて説明する価値があります。
下の画像に示すように、カーネルには3つのタイプ、つまりモノリシック、マイクロ、ハイブリッド(モノリシックとマイクロの組み合わせ)があります。
(画像 ソース )
モノリシックカーネルアーキテクチャでは、OS全体が単一のカーネル空間で動作します。これは、コンピューターハードウェア上に高レベルの仮想インターフェイスを単独で定義します。
Linuxカーネルは、その特性のほとんどをUnix / Unixライクなカーネルから派生していますが、2つの間にいくつかの重要な違いがあります。
マイクロカーネルアーキテクチャでは、OSのコアサービスは1つのプロセスで実行され、他のサービスは別のプロセスで実行されます。
µカーネルでは、ほぼ最小量のメカニズムがカーネルモードに含まれています。これらのメカニズムには、基本的なIPC(プロセス間通信)、スケジューリング、および低レベルのアドレス空間管理が含まれます。
ソースコードのサイズに関しては、一般的に、マイクロカーネルはモノリシックカーネルよりも小さいです。
特徴 | Linuxカーネル | Unixカーネル |
---|---|---|
カーネルアプローチ | Linuxはモノリシックカーネルアプローチに従います。 | Unixカーネルは、モノリシック、マイクロカーネル、またはハイブリッドにすることができます。 たとえば、macOSにはハイブリッドカーネルがあり、Solarisにはモノリシックカーネルがあり、AIXには動的にロード可能なモジュールを備えたモノリシックカーネルがあります。 |
カーネルの機能の追加/削除 | デバイスドライブなどのカーネルコンポーネントをモジュールとして動的に追加および削除できる優れた機能を提供します。この機能は、ロード可能なカーネルモジュール(LDM)と呼ばれます。これにより、カーネル全体を再度コンパイルする必要がなくなります。この機能により、Linuxに大きな柔軟性がもたらされます。 | 従来のUnixシステムカーネルでは、追加される新しいシステムの静的リンクが必要です。 |
ストリーム | Linuxには、ストリームI / Oサブシステムはありません。 | ほとんどのUnixカーネルには、ストリームI / Oサブシステムが含まれています。これは、デバイスドライバー、ターミナルドライバーなどを作成するための望ましいインターフェイスであることがわかります。 |
プリエンプティブアプローチと非プリエンプティブアプローチ | 通常、Linuxカーネルはプリエンプティブではありません。ただし、最近では、LinuxリアルタイムOSがプリエンプティブカーネルの使用を開始しています。 | 一部のUnixシステムは完全にプリエンプティブです。 たとえば、Solaris2.xです。等 |
カーネルスレッド | Linuxは、カーネルコードを定期的に実行するためだけにカーネルスレッドを使用します。 | 多くのUnixライクなオペレーティングシステムは、プロセスコンテキストの切り替えを目的としてカーネルスレッドを使用します。 |
マルチスレッド環境を処理する方法 | マルチスレッドを介して、軽量プロセス(LWP)と呼ばれる複数の独立した実行フローが作成されます。 Linuxでは、LWPはclone()関数を呼び出すことによって作成されます。 Linuxのこれらのプロセスは、物理メモリ、開いているファイル、アドレス空間などを共有できます。 | Unixでは、LWPはカーネルスレッドに基づいています。 |
UnixとLinuxコマンド
シェルコマンドの間には、つまり同じUnixバリアントのバージョン間でも一定の違いがあります。ただし、最も変化するのは、プレゼンテーションではなく、組み込みの内部シェルです。
全体として、POSIX標準に準拠することにより、LinuxをUnixにできるだけ近づけるように努力しています。したがって、LinuxディストリビューションとUnixオペレーティングシステムのターミナルコマンドは完全に同じではありませんが、多くの違いもありません。
各Linuxディストリビューション自体には、独自の実行方法があります。
例えば 、LinuxファミリOSであるCentOSでは、新しいパッケージのインストールにyum(yellowdog update modify)コマンドを使用しますが、Linuxファミリの別のOSであるDebianでは、インストールにapt-getコマンドを使用します。
独自のUnixOSであるIBMAIXでは、 -指 システムにログインしているユーザーを確認するコマンド。ただし、このコマンドはLinuxでは使用されません。 Linuxでは、 ピンキー 同じ結果をフェッチするコマンド。
Ubuntu / Debian(Linux OS)では、 fdisk、parted、gparted 「作成」タスクのコマンド。一方、Solaris(Unix OS)では、 フォーマット、fmthard 「作成」タスク用 。
LinuxコマンドとUnixコマンドのリストを参照すると、LinuxコマンドとUnixコマンドは似ていますが、まったく同じではないことがわかります。
例
これまでのところ、この記事では、LinuxとUnixの一般的なコアの違いを見てきました。 2つの正確なバージョンを比較すると、これらの違いはより具体的になります。いくつかの例を通してこれを見てみましょう。
SolarisとLinux
現在OracleSolarisと呼ばれているSolarisは、UnixファミリのOSです。 LinuxとSolarisを比較してみましょう。
Linuxは、Solarisよりも多くのシステムアーキテクチャをサポートしています。したがって、Linuxはより移植性があります。
安定性とハードウェア統合について話している間、Solarisはここでより良いようです。 Linuxは、Solarisと比較して開発速度も速いです。
この2つの間に技術的な違いは他にほとんどありませんが、ここではパフォーマンスのみに比較を限定しています。
MacOSとLinux
最高の無料のWindows10メンテナンスソフトウェア
MacOSは認定されたUnixOSです。 XNUという名前の独自のカーネルがあります。これは、最も信頼性の高いPCと見なされているAppleのコンピューターで使用されています。
MacOSは比較的簡単にセットアップできます。一方、Linuxは安価であり、Apple独自のソリューションとは対照的に多くのオープンソースソフトウェアを利用できます。また、Linuxはほとんどすべてのハードウェアで実行できるため、より柔軟性がありますが、MacOSはAppleハードウェアでのみ実行できます。 例えば 、iPhone。
MacOSはデフォルトのファイルシステムとしてHFS +を使用しますが、Linuxはext4を使用します。
結論
Unixは非常に古く、すべてのオペレーティングシステムの母であると言われています。 LinuxカーネルもUnixから派生しています。 UnixベースとLinuxベースのオペレーティングシステムの主な違いは、プレゼンテーションの部分ではなく、内部で、つまり主にカーネルの部分でどのように機能するかにあります。
この2つの違いは、比較しているLinuxとUnixの正確なバージョンによっても異なります。
Linux(および他の多くのUnixライクなOS)は自由に入手および変更できるが、Unixオペレーティングシステムはそうではないことを述べることも重要です。使用するテクノロジーを決定する際には、常にコストが大きな懸念事項であり、Linuxはこの点で優位に立っています。
Linuxは、真のUnixシステムと比較して、より柔軟で無料です。そのため、Linuxの人気が高まっています。 UnixとLinuxのコマンドについて説明している間、それらは同じではありませんが、非常によく似ています。実際、同じファミリOSの各ディストリビューションのコマンドも異なります。
Solaris、HP、Intelなどは、Unixインターネットサーバー、ワークステーション、およびパーソナルコンピュータを採用しています。一方、Linuxは、コンピューターソフトウェアとハードウェア、ゲーム、タブレット、メインフレームなどに広く採用されています。
Linuxは過去数年間で他のどのOSよりも急速に成長しているという研究があります。したがって、将来的には、LinuxはUNIXのインストールを大幅に後回しにする傾向があります。
参照: Linux、 Unix、 Linuxディストリビューション、 本:Unixプログラミング環境
UnixとLinuxの違いに関するこの有益な記事を楽しんでいただけたでしょうか。
=> 完全なUnixチュートリアルシリーズについては、ここをクリックしてください