「OSと言ったらWindows!」、「いやいやMacでしょー」。なんて会話があるかどうか分かりませんが、OSって掴みどころが無い言葉ですよね。
よく分からないけど、コンピュータの中で重要な役割である感じはしますよね。
そうなんです。OSは非常に重要な役割を持っているのですが、とても複雑なものですが、大枠を理解するとコンピュータの動きが見えてくるので、是非みなさんに学んで欲しい領域です。
そこで、今回はOS(オペレーティング・システム)の基礎を解説しますので、ざっくりOSの役割を理解してみましょう!
OSの位置付けはソフトウェア
先ずはコンピュータの中でOS(オペレーティングシステム)がどの位置にいるのかを把握しましょう。
コンピュータは大きく、ハードウェアとソフトウェアに分けられ、OSはソフトウェアの部類になります。
そしてソフトウェアは以下の二つに分けられます。
ソフトウェアの分類
- 応用ソフトウェア
- WordやExcel、写真加工アプリ、ゲームなど特定の機能や目的のためのもの。つまり、システムソフトウェア以外のもの
- システムソフトウェア
- システムソフトウェアコンピュータを操作したり、管理したり、データを保持したり、コンピュータそのものを動かすためのもの。さらに下の二つに分けられる
- 基本ソフトウェア:これが「OS」のことになる
- ミドルウェア:OS以外の特定の用途として、基本ソフトウェアと応用ソフトウェアの間を取り持つもの。データベースやWebサーバなど
- システムソフトウェアコンピュータを操作したり、管理したり、データを保持したり、コンピュータそのものを動かすためのもの。さらに下の二つに分けられる
下の図を見てみると分かり易いと思います。
イメージ的には「コンピュータの司令塔(監督)」みたいなものになりますね。
なぜ、基本ソフトウェアと記載しているかと言うと、ソフトウェアを「応用、ミドル(中間)、基本」の位置付けで分けると整理しやすいからですね。
では、続いてOS(基本ソフトウェア)の役割に関して、中身を見ていきましょう!
OSとしての役割は?
基本ソフトウェアとしての位置付けであるOSの役割を理解していきましょう!
上の図にも記載しましたが、OSは「狭い意味でのOS」と「広い意味でのOS」に分けることができます。つまり、「捉え方によって、OSの役割の幅が変わる」ということです。
ということで、OSの仕事を以下に記載してみました。
制御プログラム(狭義の意味でのOS)
このソフトウェアが「OSの中核、いや、コンピュータの中核」と言っても過言は無いでしょう。
制御プログラムとはコンピュータのハードウェアやソフトウェア(応用ソフトウェアやミドルウェア)の動作を制御します。
これにより、コンピュータが安定的、効率的に動作できます。具体的には以下のようなものを管理し、コンピュータを制御しています。
制御プログラムの役割
- ジョブ管理
- タスク管理
- 記憶管理(メモリ管理)
- データ(ファイル)管理
- デバイス管理
一般的に、上記の管理を行うプログラムのことを「カーネル(kernel)」と呼びますね。カーネルには、メモリ管理やプロセス管理などに機能を限定したマイクロカーネルと、多くの機能を網羅したモノリシックカーネルがあります。
ここは非常に深い話になるので、詳細の内容は別の記事で解説します。
言語プロセッサ(広義の意味でのOS)
C言語やJavaなどのプログラミング言語で書かれたプログラムを、コンピュータが理解し、実行するための「機械語」に変換するためのソフトウェアのことです。
言語処理プログラムとも呼びます。
「コンパイラ,アセンブラ,インタプリタ」と呼ばれているものですね。これも重要な役割です。広義の意味でのOS(基本ソフトウェア)の役割となります。
サービスプログラム(広義の意味でのOS)
コンピュータを利用する人のサポートやシステムの定期的な作業を補ってくれるソフトウェアのことです。
ユーティリティとも呼びます。
ファイル変換(ファイル圧縮)、テキストエディタ、分類/併合、整列等 ソートプログラム、エディタ、リンカ等がありますね。広義の意味でのOS(基本ソフトウェア)の役割となります。
デバイスドライバ(広義の意味でのOS)
新しいマウスや外付けHDD、プリンタを利用者がスムーズに使えるように手助けするためのソフトウェアです。
新しい周辺機器をコンピュータに接続したときにデバイスドライバをOSにインストールして、周辺機器からの情報をOSが使えるようにします。
つまり、OSにインストールされたデバイスドライバがハードウェアの制御を担当してくれるので、カーネルは数多の周辺機器の管理しなくて済むわけです。
また、プラグアンドプレイ(PnP)と呼ばれる便利な仕組みもあって、周辺機器を接続すると、OSが自動的に必要な設定を行ってくれます。これはあらかじめデバイスドライバがOSの中に入っていて、プラグアンドプレイによって、自動的にデバイスドライバがインストールされます。便利ですねー。
その他の役割
OS(基本ソフトウェア)のその他の役割として、以下のようなものもあります。
- シェル:カーネルと情報のやり取りをサポートするソフトウェア
- デーモン:常駐するサービス(プログラム)
- ブートローダ:OSを起動するためのソフトウェア
これらはOSの一部なのか、別のソフトウェア(プログラム)なのか曖昧なところで、人によって解釈は違うと思いますが、私は広義のOSとして理解しています。
代表的なOS
では、最後に代表的なOSを把握しておきましょう!
OS系統 | 特徴 |
---|---|
Windows | 世界中で使われているOS。Microsoft社製。 GUI(グラフィックユーザーインタフェース)が使い易く、Officeなどの業務用ソフトウェアとの親和性が高い。 |
Mac OS | デザイン系のソフトウェアが強く、動作も軽いOS。Apple社製。 ベースはUNIXでできている。 |
Linux | オープンソースのOSで、無償で使うことができ、また開発もできる。 RedHatやCetnOSなど様々なディストリビューション(配布形態)がある。 |
UNIX | 大規模処理をするためのOSでサーバで使われることが多い。 高価な製品。 |
モバイルOS | スマートフォンやタブレット、携帯電話用のOS。AndroidやiOSが有名。 |
MS-DOS | CUI(キャラクタユーザインタフェース)と呼ばれるキーボードを使ってコマンドを入力するのが特徴。 Windows以前に使われていたOS。 |
リアルタイムOS | 時間的な制約がある処理を実行するための機能や特性を備えたもの。 産業ロボットや輸送機械などの組み込みシステムの制御用としてよく用いられる。 |
用途によって、色々なOSがあることを覚えておくと、知識の幅が増えますね。
まとめ
今回はコンピュータの司令塔である「OS」について解説してきました。
OSのまとめ
- OSは巨大なソフトウェアのこと
- 基本ソフトウェアとも呼ばれ狭義のOSと広義のOSに分けられる
- OSの核となる部分は制御プログラム(カーネル)である
- カーネルの周りをデーモンやシェル、言語プロセッサなどが囲んでいるイメージ
- ハードウェアとの間にはデバイスドライバがある
- 様々なOSが存在する
OSはコンピュータの中での司令塔の役割を果たし、日々進化したり、新しいものが誕生したりしている点もポイントですね。
最近はOSを一から作るための参考書もあったりしますので、ご興味があったら作ってみるのも勉強になるかもしれませんね。私にはとても無理ですが...(笑)
そして、以下の記事ではOSの上で動作し、みなさんが触れる機会が多い「アプリケーションとソフトウェアの違い」に関して解説しているので、こちらの記事も併せて読んでみてください。
以上です!