オペレーティング システムを比較するにはどうすればよいですか?

オペレーティング システムを比較するにはどうすればよいですか?

背景

数年前、OSX と Linux は Windows よりも優れているという話を耳にしました。また、Solaris オペレーティング システムはファイルを断片化せず、Linux ファイル システムもほぼ同じ段階にあるという話を読んだ覚えもありますが、これらの主張には根拠や参照がないように思われます。

質問

オペレーティング システムを相互に比較するために使用できる客観的な基準は何ですか?

答え1

OS を比較する方法を 2 つのグループに分けることができると思います。

  1. 特徴
  2. 構造上の違い

まず、構造の違いです。今日の OS は、内部的には非常に似ています。基本的にすべて、C プログラミング言語と UNIX に取り組んだ Brian Kernighan と Dennis Ritchie の影響を多少受けています。実際、Linux、Solaris、OS X など、今日の OS の多くは、何らかの形で UNIX の子孫であるため、「UNIX 系」に分類されます。UNIX の哲学は、基本的にすべてをシンプルに、より正確には「基本的」にすること、そして各プログラムが 1 つの機能だけを持つというものでした。これらの概念は、今日でも使用されています。

異端のWindowsは、K&Rの業績の影響を受けている。Windowsは「UNIXのような」システムではないが、K&Rが発明した言語であるCで書かれており、ある程度の類似点がある。例えば、「ブルースクリーン」は、Windows版のブルースクリーンである。カーネルパニックUNIX とともに発明されたアイデアです。

今日の主流のOSはすべて、「モノリシック」カーネルと呼ばれるカーネル設計スキームに基づいています。これは、カーネルが1つのプログラムとして実行されることを意味します。その意味するところは、この1つのプログラムのすべてのコードがコンピュータのすべてのリソースを完全に制御し、バグによって深刻な損害が発生する可能性があることです。よく知られた議論安定性とセキュリティを向上させるために、OS のカーネルを別々のプログラムに「分割」する可能性について。この設計は「マイクロカーネル」と呼ばれます。前述したように、今日の OS はすべてモノリシック カーネル設計に基づいています。これは、パフォーマンスが優れているためか、単に長い間そのように使われてきたためかもしれません。

機能に関しては、これはおそらく大きな比較になるでしょう。なぜなら、上で述べたように、今日の主流 OS はすべて構造的に非常に似ているからです。実際、私の意見では、機能の違いはわずかです。これは本当に、誰に尋ねるかによって異なります。たとえば、Mac OS X には、XGrid や OpenCL (ただし、他のプラットフォームでも動作するようになりました) など、非常に気の利いた機能があります。また、非常にユーザーフレンドリーです。しかし、比較的時代遅れのファイル システムを指して、「荷物を運んでいる」と批判されることも多々あります。また、Apple ハードウェアでしか動作しません。

Linux はオープンで、マルチプロセッシングが優れているため、サーバーやスーパーコンピューターに最適です。また、最も安全な選択肢の 1 つでもあります。しかし、デスクトップ環境としてはユーザーフレンドリーではないという批判もあり、大企業による公式サポートはありません。しかし、頻繁に変更されるため、最先端のソフトウェアを求めるなら Linux が最適でしょう。実際、Linux は新しいファイルシステムそして新しいウィンドウマネージャー近い将来に。

そして、Windows があります。OS X と同様に、Windows は大手企業によってサポートされており、このプラットフォーム用のソフトウェアが多数あります。上記の機能と OS 構造に関する説明から、それらはそれほど違いがないことがわかります。したがって、この利用可能なソフトウェアの豊富さが、この OS の市場シェアを維持しているのでしょう。この明らかな利点の他に、OS X とは異なり、さまざまなハードウェアで動作するという事実もあります。

今日の OS は、それほど違いがないことがおわかりいただけたと思います。また、今日作成されている機能の多くは、オープンソース ソフトウェアの形式をとっており、これらの OS のいずれでも使用できます。ただし、合法的に実行できるハードウェアやコードのオープン性など、明らかな違いもあります。ご質問があれば、お気軽にお寄せください。

答え2

OSの比較は「使用適合性」という観点から行う必要があります。OSに何を求めているかを定義する必要があります。する特定のユースケースに最適なものを決定する前に、

しかし、客観的な比較ポイントは確かに存在します。網羅的ではないリストには以下が含まれます。

  • ハードウェアサポート
  • アプリケーションエコシステム
  • 開発エコシステム
  • ファイルシステムのサポート
  • 資源管理
    • メモリ管理
    • プロセススケジューリング
    • I/Oコントロール
    • TCPスタックの実装
    • リソースレベルの会計
  • 安全
    • OSレベルのセキュリティメカニズム
    • ファイルシステムレベルのセキュリティメカニズム
    • 監査機能
    • プロセス会計
    • ユーザー/ロール管理
  • ネイティブシステムサービス
  • アプリケーション固有のパフォーマンスベンチマーク

これらのトピックのそれぞれについて、かなり詳細な調査が行われるため、質問に対する標準的な答えが見つかる可能性は低いでしょう。

関連情報