【図解】初心者向けオペレーティングシステム(OS)の仕組みと基礎知識

オペレーティングシステム(OS)とは

OS (オペレーティングシステム) とは、その上で複数のプログラムを同時に安定して稼働させ、さらにはハードウェアコンポーネント(CPU/メモリ/HDD/NICだけでなくプリンタ等の周辺機器)を効率的に使えるように抽象化するためのプログラムです。

OS 自体もプログラムなのですが、他の一般的なプログラムと区別するために、ここでは OS ではないプログラムを『一般プログラム』と呼ぶことにします。

OS の主なメリットは以下の 2 つです。

  1. 一般プログラム開発者の稼働削減および活躍範囲の拡大
  2. コンピュータ利用者の利便性向上

1. 一般プログラム開発者の稼働削減および活躍範囲の拡大

一般プログラム開発者は一般プログラムを稼働させるコンピュータの CPU/Memory/Disk/NIC 周辺機器を意識せずに、OS の種類だけを意識して一般プログラムを開発できます。

OS が無いコンピュータ上で直接 一般プログラムを稼働させる場合、例えばディスクは HDD なのか SSD なのか、ネットワークは有線なのか無線なのか、プリンタはどのような仕様なのか、といったハードウェア構成に特化したプログラミングを作り込む必要があります。

しかもせっかく苦労して作った一般プログラムは、そのコンピュータと同じハードウェア構成のみでしか稼働できません

ですが OS 上で間接的に稼働させる場合、そのようなハードウェア構成に依存したプログラムは用意されています。このようなプログラムを一般に『ライブラリ』と呼びます。

一般プログラムは、ネットワークを使いたいときは『ネットワーク用のライブラリを呼び出せ』とプログラミングするだけで、ネットワーク通信ができます

ハードウェアを抽象化する』とは、このようにハードウェアの動きを厳密に指示(プログラミング)することなく、曖昧な指示(プログラミング)をするだけで実現できることを言います。

一般プログラム開発者はライブラリを流用することで開発コストを大幅に削減することができ、かつ、色々な種類のコンピュータに適合することができます。

2. コンピュータ利用者の利便性向上

コンピュータ利用者は複数のアプリケーションを同時に安定して使うことができます

OS が無い場合、コンピュータ利用者は 1 つの一般プログラムしか使えません。CPU もメモリも、その一般プログラムの都合だけで使われるからです。仲介者がいないと、CPU は奪い合いとなり、メモリも同じ領域を競合して使うことになりかねません。

OS 上で稼働させる場合、OS が提供する『マルチタスク(スケジューリング)機能』により、複数の一般プログラムが順番かつ公平に CPU が使われるようになります。

また、メモリについても『仮想メモリ』という仕組みにより、汎用プログラムは OS に『メモリをちょうだい!』と要求すれば OS が他の一般プログラムと競合しない物理メモリを割り当ててくれます。(これも抽象化)

代表的なものとして CPU とメモリの例を紹介しましたが、これに限らず、利便性向上のために様々な仕組みや機能を提供しています。

また、OS にはファイルシステムが必要ですが、これについては以下を参照下さい。

関連記事

前提 OS とは何か?という人はまずは以下を参照下さい。 [sitecard url=https://milestone-of-se.nesuke.com/sv-basic/architecture/operating-system[…]

また、仮想メモリの仕組みについては以下を参照下さい。

関連記事

仮想メモリとは? 仮想メモリという言葉は今では紛らわしいのですが、2つの意味があります。 1つは仮想記憶とも呼ばれる、スワップ等で使われる技術を指します。もう1つは仮想サーバ上のメモリのことを指します。しかしこの記事では仮想サーバ上[…]

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG