この記事には複数の問題があります。改善
やノートページでの議論にご協力ください。オペレーティングシステム
主要項目
プロセス管理
割り込み
メモリ管理
ファイルシステム
デバイスドライバ
ネットワーク
セキュリティ
グラフィカルユーザインタフェース
入出力
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}
表
話
編
歴
オペレーティングシステム(英: operating system、略称:OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェアである。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインタフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のOSの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、スマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 商品として(ないし製品として)のOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、ウェブブラウザや時計などのアクセサリが、マーケティング上の理由などから一緒に含められていることもある。 スマートフォンのOSおよびそのシェアは、2021年9月時点でAndroidが約72%、iOSが約27%である[1]。Androidは広い意味でのLinuxの一種であり、Linuxのカーネルを一部改編し他のオープンソースソフトウェアを組み合わせたものである。 ノートPCやデスクトップPCのOSおよびそのシェアは、2021年時点でWindows 75.4%、macOS 15.93%、ChromeOS 2.59%、Linux 2.33%となっている[2]。macOSはFreeBSDを基にしたUnix系のOSである。 スーパーコンピュータの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詳細は「アプリケーションプログラミングインタフェース」および「アプリケーションバイナリインタフェース」を参照