スーパーコンピュータのOSは、2000年ころはUNIXが9割ほどを占めていたが、その後の10年間でそのほぼ全てがLinuxに置き換わり、2021年現在では世界のスーパーコンピュータのTOP500のほぼ100%がLinuxである[注 1]。
組み込みシステムでは組み込みオペレーティングシステムと呼ばれるOSを用いる。小規模な組み込みシステムのなかには明確なOSを内蔵していないものもあるので曖昧な面もあるが、組み込みOSを搭載しているものに関しては2019年時点でのシェアでTRON(トロン)系がおよそ60%であり、24年連続トップを占める[3]。TRON系のなかでもITRON(アイトロン)が最も普及している[3]。TRON以外では、次いでPOSIX系つまりUNIX系、Linux類などである[3]。米リナックスワークスのLynxOS(リンクスオーエス)、米ウィンドリバーのVxWorks(ヴイエックスワークスト)、米シンビアンのSymbian OS(シンビアン・オーエス)など。「オペレーティングシステムの一覧」および「:en:Usage share of operating systems」も参照 オペレーティングシステムの主な目的は、ハードウェアの抽象化、リソースの管理、そしてコンピュータ利用効率の向上である[4][5]。 オペレーティングシステムはアプリケーションソフトウェアを動作させるのが第一の目的である。このためのインタフェースがアプリケーションプログラミングインタフェース (API) とアプリケーションバイナリインタフェース (ABI) である。カーネルはシステムコールによってアプリケーションにサービスを提供する。さらに基本ライブラリも含めた形でアプリケーションに対してAPI/ABIを提供する。アプリケーションによってはオペレーティングシステム上のミドルウェアやアプリケーションフレームワークなどをAPIとして使用する場合もある。 APIはプログラミングのためのインタフェースであり、プログラムを作成する際の規則を構成する。例えば、C言語での関数やFORTRAN/Pascalなどのライブラリ呼び出しの仕様といったものがそれにあたる。 一方、ABIはコンパイルされたソフトウェアがオペレーティングシステムの機能を呼び出す際のインタフェースであり、プロセスが動作する際の規則を構成する。例えば、Unix系のオペレーティングシステムはAPIがほとんど共通だが、ABIはオペレーティングシステムによって異なる。したがって、同じCPUを使ったシステムであっても、ABIが異なれば実行ファイルが異なる。ABIには、呼出規約、システムコールの方法などが含まれる。 なお、オペレーティングシステムの垣根を越えたABIもいくつか存在する。例えば、OCMP
オペレーティングシステムの目的
ハードウェアの抽象化
コンピュータごとに、製造元が異なるなどで、実現する機能は同じでも詳細な仕様に差異があるハードウェアが搭載されていることが多い。そのようなハードウェアの統一的で抽象化された利用方法を提供することで、アプリケーションソフトウェアの開発を容易にする。
リソースの管理
複数のアプリケーションソフトウェアを同時に利用する際に、互いに独立して動作できるように資源を管理する。プログラムからの資源要求に競合が起きた場合には、待たせる、エラーを返すなど、適切に対処する。
コンピュータの利用効率の向上
複数のタスクを同時に実行する際に、資源割り当ての順番や処理の割り当て時間を工夫することで、全体のスループットを向上させる。これはデスクトップ環境ではあまり恩恵を感じることはないが、ウェブサーバやデータベースなど大量のアクセスをこなす用途などでは重要になる。
オペレーティングシステムの機能とコンポーネント
APIとABI詳細は「アプリケーションプログラミングインタフェース」および「アプリケーションバイナリインタフェース」を参照