#2020/09/17 縦割りが生じるくらい、『行政機関』はたくさん分かれていたりします。

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

プログラム
関連用語
 情報・通信
 └プログラム
  └オペレーティングシステム(OS)
   ├Windows
   ├MacOS
   ├Linux
   ├iOS
   └Android
スポンサーリンク
スポンサーリンク

簡単にいうと…

オペレーティングシステム(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をお使いの方なら、タスクマネージャを開いてみてください。そこでメモリ処理状態が100%になった頃、にわかにディスクの処理状態も急上昇する様子を見ることができるかもしれません。このときスワッピングが行なわれ、HDD/SSDがメモリに代わって汗を流しています。
 
③ファイル管理

エクスプローラ(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やアプリ、Webサービスごとにパスワード情報を設定していますが、あまりに利用するプログラムが多いため、これらパスワードを到底覚えきれなくなっています。

そのため、さいきんでは指紋認証や顔認証などの生体認証が、従来のパスワード認証に置き換わりつつあります。たとえばiPhoneもTouch IDで指紋認証ができますね。

 

 

以上で見たように、OSにはたくさんの機能があります。それら豊富な機能によって、今日もわたしたちのコンピュータライフを、わたしたちのすぐそばで、こっそりと支えているわけなのでした。

 

・オペレーティングシステム(OS)は コンピュータの運用管理を司りユーザーインターフェースを提供するよ
・OS内でカーネルは、プログラム実行やメモリ容量、デバイスやファイルの管理を行なっているよ
・カーネル以外にも、ユーザインタフェースの提供、ネットワークの共通言語サポート、ユーザーアクセス管理など、多くの仕事をOSは行なっているよ
 

さらに知りたいなら…

Windowsはなぜ動くのか(2002年)
(←画像クリックでAmazonサイトへ)

WindowsをはじめとするOSの概説からはじまり、マルチタスク、マルチウィンドウ、プログラム間連係などの基本的&マニアックな仕組みを、イラストつきでわかりやすく、けれどしっかりと解説してくれる1冊です。

(わたしも高校時代、このシリーズにはお世話になりました。)

コンピュータはなぜ動くのか(2003年)
(←画像クリックでAmazonサイトへ)

CPU・メモリ・HDDなどの基本的なハードウェアからはじまり、プログラムの実行処理、アルゴリズム、ネットワーク、データベースなどの基本的仕組みを、イラストつきでわかりやすく、けれどしっかりと解説してくれる1冊です。

 

つまり…

オペレーティングシステム(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)

オペレーティングシステム - Wikipedia
カーネル - Wikipedia
ファイルシステム - Wikipedia
プロセス管理 - Wikipedia
メモリ管理 - Wikipedia
ユーザインタフェース - Wikipedia
オペレーティングシステムの歴史 - Wikipedia
半自動式防空管制組織 - Wikipedia
アップル (企業) - Wikipedia
Microsoft Windows - Wikipedia
タイトルとURLをコピーしました