オペレーティングシステム パート7
ユーザーインターフェース
ユーザーインターフェース(UI)は、人間とコンピュータのインタラクションをサポートするために不可欠です。あらゆるコンピュータで最も一般的なユーザーインターフェースは、以下の2種類です。
コマンドラインインターフェース(コンピュータコマンドを1行ずつ入力する)
グラフィカルユーザーインターフェース(GUI)(視覚的な環境を使用する。最も一般的なのは、ウィンドウ、アイコン、メニュー、ポインター要素を組み合わせたもの。WIMPとも呼ばれる)
スマートフォンやタブレットなどのパーソナルコンピュータやワークステーションでは、ユーザー入力は通常、キーボード、マウス、トラックパッドまたはタッチスクリーンの組み合わせで行われ、これらはすべて専用のソフトウェアによってオペレーティングシステムに接続されます。ソフトウェア開発者やプログラマーではないパーソナルコンピュータユーザーは、入出力の両方にGUIを好む傾向があり、GUIはほとんどのパーソナルコンピュータでサポートされています。GUIをサポートするソフトウェアは、入力とプレーンテキスト出力のためのコマンドラインよりも複雑です。プレーンテキスト出力はプログラマーに好まれることが多く、サポートも容易です。
趣味としてのオペレーティングシステム開発
趣味のオペレーティングシステムとは、既存のオペレーティングシステムから直接派生したコードではなく、ユーザーやアクティブな開発者が少ないオペレーティングシステムのことです。
趣味の開発は、6502マイクロプロセッサを搭載したシンプルなシングルボードコンピュータなど、自作のコンピューティングデバイスをサポートするために行われる場合もあります。また、既に広く使用されているアーキテクチャを対象とした開発が行われる場合もあります。オペレーティングシステム開発は、全く新しいコンセプトから生まれる場合もあれば、既存のオペレーティングシステムをモデル化することから始まる場合もあります。いずれの場合も、趣味の開発者は自ら開発を行う場合もあれば、同じ興味を持つ少数の、時には組織化されていないグループと交流する場合もあります。
趣味のオペレーティングシステムの例としては、SyllableやTempleOSなどが挙げられます。
オペレーティングシステムの多様性と移植性
特定のオペレーティングシステム向けに作成されたアプリケーションを別のOSに移植する場合、そのアプリケーションに必要な機能がそのOSによって異なる方法で実装されている(関数名、引数の意味など)ため、アプリケーションの適応、変更、その他のメンテナンスが必要になります。
オペレーティングシステムの多様性をサポートするコストは、JavaやQtなどのソフトウェアプラットフォーム向けにアプリケーションを作成することで回避できます。これらの抽象化は、特定のオペレーティングシステムとそのシステムライブラリへの適応コストを既に負担しています。
もう1つのアプローチは、オペレーティングシステムベンダーが標準を採用することです。例えば、POSIXとOSの抽象化レイヤーは、移植コストを削減する共通性を提供します。
人気のオペレーティングシステム
2024年9月現在、Android(Linuxカーネルベース)が46%の市場シェアで最も人気のあるオペレーティングシステムであり、次いでMicrosoft Windowsが26%、iOSとiPadOSが18%、macOSが5%、Linuxが1%となっています。Android、iOS、iPadOSはモバイルオペレーティングシステムであり、Windows、macOS、Linuxはデスクトップオペレーティングシステムです。
Linux
LinuxはGNU General Public License(GPL)に基づいて配布されるフリーソフトウェアであり、すべての派生ソフトウェアはソースコードを公開することが法的に義務付けられています。 Linuxはプログラマーが自らの使用を目的に設計したため、シンプルさと一貫性が重視され、少数の基本要素をほぼ無限に組み合わせることができ、冗長性も排除されています。
その設計は、マイクロカーネルを使用しない他のUNIXシステムと似ています。C言語で記述され、UNIX System V構文を使用していますが、BSD構文もサポートしています。Linuxは標準的なUNIXネットワーク機能とUNIXツール群をすべてサポートし、複数のユーザーをサポートし、プリエンプティブ・マルチタスクを採用しています。当初は最小限の設計でしたが、16MB未満のRAMでも動作可能な柔軟なシステムであり、大規模なマルチプロセッサシステムでも使用されています。他のUNIXシステムと同様に、Linuxディストリビューションはカーネル、システムライブラリ、システムユーティリティで構成されています。Linuxには、デスクトップ、フォルダ、ファイルアイコンを備えたグラフィカルユーザーインターフェース(GUI)があり、コマンドラインからオペレーティングシステムにアクセスするオプションもあります。
Androidは、Linuxをベースにした部分的にオープンソースのオペレーティングシステムであり、スマートフォンでの人気に加え、スマートウォッチ、自動車のダッシュボード、飛行機のシートバック、医療機器、家電製品など、GUIを必要とする組み込みシステムでも、ユーザーの間で最も広く利用されているオペレーティングシステムとなっています。Linuxとは異なり、Androidの大部分はJavaで記述されており、オブジェクト指向設計を採用しています。