TL;DR

コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェア。ハードウェアを抽象化し、アプリケーションに統一的な使い方を提供する。

なぜ必要か

Wikipedia によると、OS がハードウェアの統一的で抽象化された使い方を提供するので、アプリケーションの開発が容易になる。

仕組み

OS の中心はカーネルで、ハードウェアとアプリケーションを結び付ける。ハードウェアの基本的な制御や、メモリなどの資源の管理を担う。アプリケーションはユーザモードで動き、ハードウェアにはカーネルを通してアクセスする(ユーザ空間)。

Wikipedia では、主な機能として次のものを挙げている。

  • プロセス管理: プログラムの実行時にプロセスを作り、メモリなどの資源を割り当てる。複数のプロセスの実行順序は、優先度とスケジューラで決まる
  • メモリ管理: ディスクと RAM にばらばらに確保した領域を、プログラムには連続して見せる(仮想記憶)。プログラムごとのメモリ領域も保護する
  • ファイルシステム: ディスク上のデータをファイルとして保存し、名前、属性、ディレクトリの階層で管理する
  • デバイス管理: ハードウェア固有の処理をデバイスドライバが担う

関連

出典