簡単にいうと…
オペレーティングシステム(OS)とは
コンピュータの運用管理を司りユーザーインターフェースを提供する
プログラムの総称です。
たんに「OS」と呼ばれています。
詳しくいうと…
OSとは、コンピュータにおける司令官役のプログラムで、Windows OSやMac OS、iOSやAndroidなどのことです。
ほかにも、サーバー向けだとLinuxやWindows Serverなどがあります。
ハードウェアやファームウェアの上で、アプリケーションソフトを動かすことが主な役割になります。
OSの機能
カーネル
そんなOSのなかでも、特に中核となるプログラムをカーネルといいます。
カーネルには以下4つの主要機能があります:
①プログラム実行
(プロセス管理)
②メモリ管理
③ファイル管理
④デバイス管理
1つひとつ見てゆきましょう。
①プログラム実行(プロセス)
なんといっても、カーネルはアプリケーションソフトのプログラムを実行することができます。
どんなプログラムも、実行するには専用の実行環境が必要ですが、汎用的なソフトの場合、対応OSさえ用意できればそのOS上で実行可能です。
さて、OS内のカーネルは、プロセスと呼ばれる単位でプログラムを実行します。
このプロセス単位で、カーネルは、使ってもいいメモリをそのプロセスに都度割り当て、プロセス間の通信を仲介し、CPUへプロセスの処理を依頼します。
また、このプロセスを単位とすることで、同時に実行されている複数プログラムの複数プロセスを並列処理(マルチプロセス)させることも可能です。
OSは何十何百ものプログラムをつねに実行しています。ユーザーがクリックして起動したアプリ以外にも、OS自体のサブプログラムや、OS起動時に自動実行するプログラムなど、ユーザーが知らないうちに起動しているバックグラウンドプロセスがたくさんあります。
カーネルは、そのような数多のプロセスをつねに監督し、メモリやCPUが窒息してしまわないよう優先度に沿ってこれらプロセスにハードウェアを使わせているのです。
②メモリ管理
いま触れたように、カーネルはメモリ容量をつねにチェックし、実行中のプログラム(プロセス)それぞれのメモリ割り当て量を調整しています。
それでも、メモリ容量が使い尽くされてしまうような場合はどうするのでしょう?
この場合、カーネルの判断で、従来はメモリが行なうべきCPUの一次記憶役を、しばしの間HDD/SSD(補助記憶装置)に肩代わりさせて急場をしのいでいます。これをスワッピングと呼びます(swap=交換する)。
③ファイル管理
エクスプローラ(Windows)やfinder(MacOS)のアプリを開くと、ディスク(HDD/SSD)に格納されているデータが階層構造で表示されますね。
OS上でデータをディスクへ格納する方式を、ファイルシステムと呼びます。
ファイルシステムにはFAT(File Allocation Table:ファイル割り当て表)やNTFS(NT File System:NTファイルシステム)などの種類があります。
ファイルシステムの実態は、格納されているデータ名の一覧です。たんなる文字データの一覧ではなく、構造化されたリストであるため、ファイル群が階層構造で表示されたり、拡張子やデータ容量などをキーワードに検索をかけられたり、アクセス権の制御ができたり、といった色んな工夫が可能です。
カーネルは、HDD/SSDに対するアクセス制御の際、このファイルシステムとも密接に連携をしています。
④デバイス管理
モニターやプリンタ、LANカードやサウンドカードなど、コンピュータに接続された周辺機器にOSがアクセス&制御する際、デバイスドライバと呼ばれるプログラムが経由されます。
アプリがそれら周辺機器を利用するときは、アプリ⇒カーネル⇒デバイスドライバ⇒周辺機器という流れで制御が行なわれています。
たとえばアプリがモニターに何か表示したい場合、アプリがカーネルに要求し、その要求がディスプレイドライバに送られて、そうしてディスプレイドライバが実際の文字やピクセルの描画を行ないます。
ここでもカーネルは、アプリとハードウェアの間を仲介し、司令官役となっているわけです。
ユーザーインターフェース
OSは、カーネル以外にも多くの機能を備えています。
たとえばユーザーインタフェース。
コンピュータの言語は2進数です。けど人間は、「0101100…!」とコンピュータから言われても、何のことだかわかりません。
そこでOSが人間とコンピュータの間を仲介してくれます。この仲介には2つの方法があります。
1つ目は、CUI(Character User Interface)と呼ばれ、これはコンピュータが人間に指示を仰ぐ際、OSを介して主に英語で問いかけ、人間も英語をキーボード入力して回答することで、人間とコンピュータが対話形式で一緒に処理を実行してゆくやり方です。
2つ目は、GUI(Graphical User Interface)と呼ばれ、こちらはコンピュータの保持しているデータや設定情報などを、OSがアイコンやウィンドウなどの抽象(メタファー)によって表現し、人間はマウスやキーボードなどを介して処理を実行してゆくやり方です。
今日のOSはGUIベースが多いですが、サーバー用途などでは処理の軽量なCUIベースもまだまだ現役です。
こうしてあなたのパソコンやスマホでこのページをグラフィカルに見ることができるのも、OSのこのGUI機能のおかげなのでした。
ネットワーク
コンピュータ同士が通信するには、共通の言語が必要です。
その言語はTCP/IP(Transmission Control Protocol / Internet Protocol)と呼ばれています。
OSはこのTCP/IPという言語をサポートしているため、他のコンピュータやスマホとも、有線・無線を介して通信することができています。
その通信によって、いまこうしてあなたの端末が、このWebページを管理しているWebサーバにアクセスすることができているわけです。
セキュリティとユーザー管理
パソコンやスマホが起動して、そのOS上のGUI画面が表れるとき、ユーザー認証が求められることがありますね。
OSは、自身のインストールされている端末にアクセスしても構わないユーザーの一覧情報を持っています。
それぞれのユーザー名は、それぞれの設定したパスワードや指紋、顔などの情報と紐づいています。
なのでユーザー名「アブラ」さんが、パスワード「カタブラ」を入力すると、このひとは端末を操作しても良いひとだと判断して、OSは彼/彼女のアクセスを許可しています。
以上で見たように、OSにはたくさんの機能があります。それら豊富な機能によって、今日もわたしたちのコンピュータライフを、わたしたちのすぐそばで、こっそりと支えているわけなのでした。
さらに知りたいなら…
つまり…
オペレーティングシステム(OS)とは
コンピュータの運用管理を司りユーザーインターフェースを提供する
プログラムの総称なわけです。
一度パソコンを自作して新規OSを入れたり、違うパーティション(デュアルブート)や仮想マシン上へ2つ目のOSを評価版(無償)でインストールしてみると、OSとコンピュータの概念を区別しやすいかものぅ。
歴史のツボっぽくいうと…
- 1950年代メインフレームのOS機能初期コンピュータであるメインフレームが開発されるが、そこではプログラムやデータの格納されたパンチカードや磁気テープを直接マシンが読み取り実行していたため、タスクの優先づけやデバッグなどOSの基本機能は当時、機械的制御(スイッチやランプ)や人力によって行なわれていた。
- 1961年仮想記憶技術の搭載アメリカ・バロース社が、仮想記憶(スワッピング)技術を搭載したメインフレーム「バロース B5000」を開発する
- 1963年GUIの登場アメリカ空軍の防空管制システム「SAGE」において、GUIが初めて実用化される
- 1964年商用OSの登場アメリカ・IBM社が商用OS「OS/360」および「DOS/360」を発表する
その後「OS/360」はNASAのアポロ計画でも使用される - 1984年GUI標準搭載の商用パソコンアメリカ・Apple社が、GUI標準搭載のパソコン「Macintosh」(Mac OS)を販売する
- 1994年32bitカーネルのOSアメリカ・Microsoft社が、32bitに本格対応し堅牢なマルチタスク機能備えたOS「Windows NT」を販売する
2002年には、64bit対応のWindows Server 2003を公開する
<参考文献>(2019/09/21 visited)