ソフトウェア
下の動画はこの節の解説ではありません。 解説動画の雰囲気を知っていただくための見本として、「AI・機械学習」の動画を再生します。
この節の解説動画はプレミアム限定です。プレミアムなら全科目・全節が見放題!
プレミアムで見るハードウェアが機械そのものであるのに対し、ソフトウェアは形のない、情報処理の手順や命令です。ところがひとくちにソフトウェアといっても、機械に近いところで働くものから、利用者のすぐ目の前で動くものまで、立ち位置がまるで違います。この節では、まずソフトウェアを層に分けて並べた体系図を描くところから始めます。その真ん中に座っているのがOSで、電源を入れてから利用者がワープロソフトを立ち上げるまでの間に何が起きているのかも、この層の順番で説明がつきます。OSの種類、代表的なOSの顔ぶれ、そしてOSと応用ソフトウェアの間をつなぐミドルウェアまでをひととおり見ていきましょう。
簡単にいうと
ソフトウェアは、ハードウェアと人間の間に何層も重なっているの。機械に近い側から順に、デバイスドライバ・OS・ミドルウェア・応用ソフトウェア。この並び順が分かれば、用語の位置づけで迷わなくなるよ!
① ソフトウェアとは
ハードウェアが機械そのものであるのに対し、ソフトウェアは、形のない、情報処理の手順や命令などのことをいいます。コンピュータプログラムとほぼ同義ですが、プログラムとデータを総称してソフトウェアとよぶこともあります。
形がないというのは、実体がないという意味ではありません。補助記憶装置に記録された0と1の並びとして確かに存在していますが、手に取れる部品ではない、ということです。
② 電源を入れてから使えるようになるまで
コンピュータ、つまりハードウェアの電源を入れると、次の順番でソフトウェアが立ち上がります。
1. 最初にBIOSが起動する
2. 次にWindowsなどの基本ソフトウェア(OS:Operating System、オペレーティングシステム)が起動する
3. ユーザは、OS上で、ワープロソフトなどの応用ソフトウェア(アプリケーションソフトウェア)を起動して、文書などを作成する
そして、基本ソフトウェアと応用ソフトウェアの中間に位置するソフトウェアをミドルウェアといいます。「ミドル(middle:中間)」という名前がそのまま位置を表しています。
③ 体系図——ハードウェアからユーザまで
ソフトウェアを、ハードウェア側からユーザ側へ向かって並べると次のようになります。
| 位置 | ソフトウェア |
|---|
具体例
1枚の文書を印刷するまでに、何層が動いているか
ワープロソフトで作った文書を印刷ボタンで印刷する——この一瞬に、体系図のすべての層が順番に働いています。
| 順番 | 層 | やっていること |
|---|---|---|
| ① | 応用ソフトウェア(ワープロ) | 文書のレイアウトを「このページをこう印刷したい」という情報にまとめる |
| ② | 基本ソフトウェア(OS) | どのプリンタに送るかを判断し、印刷の順番待ち行列に並べる |
| ③ | デバイスドライバ | そのプリンタが理解できる命令の形に翻訳する |
| ④ | ハードウェア(プリンタ) |

ソフトウェアの体系図
試験のポイント
簡単にいうと
OSは、コンピュータという舞台の支配人。誰にどの資源をいつ使わせるかを全部仕切ってる。そして「マルチ」で始まる3つの言葉は、何が複数なのかで見分けよう!
① OSとは
OS(Operating System)は、入出力管理や記憶管理などの基本的な機能を提供し、コンピュータシステム全体を管理するソフトウェアです。
具体的には、CPUの時間、主記憶装置の領域、補助記憶装置の容量、入出力装置といったコンピュータの資源を、誰に、いつ、どれだけ割り当てるかを取り仕切っています。複数のアプリケーションが同時に「CPUを使わせろ」「メモリをよこせ」と要求してきたときに、順番と配分を決めるのがOSの仕事です。
② 3つの「マルチ」
OSにはさまざまな種類があり、次のような能力によって特徴づけられます。名前がどれも「マルチ」で始まるので、何が複数なのかで区別してください。
| 用語 |
|---|
簡単にいうと
OSの顔ぶれは、開発元と対応する機器で整理すると覚えやすいよ。そして「ソースコードが公開されているか」は、第4節のオープンソースにつながる大事な軸!
① 代表的なOS
| 名称 | 内容 |
|---|---|
| Windows | 米マイクロソフト社が開発したOS。マルチタスク、マルチユーザ、マルチウィンドウを実現する。OSのデファクトスタンダードであり、多くの企業や家庭に普及している。GUI(Graphical User Interface)を採用している |
| UNIX(ユニックス) | 米AT&T社のベル研究所が開発したマルチタスク、マルチユーザ、マルチウィンドウのOS。また、 |
簡単にいうと
OSと応用ソフトの間には、まだ1層あるんだ。「OSがやるほど基本的じゃないけど、アプリがそれぞれ作るのは無駄」という仕事を引き受けるのがミドルウェア!
① ミドルウェア
ミドルウェアとは、OSと応用ソフトウェアの「中間的な」役割をもっているソフトウェアです。応用ソフトウェアに対して、基本ソフトウェアにはない特定の分野で共通に使用する基本処理機能を提供します。DBMSなどが代表的です。
なぜこの層が必要なのでしょうか。OSはあらゆるアプリケーションに共通する土台(CPUや記憶装置の管理)を提供しますが、「大量のデータを検索する」「他システムとデータを受け渡す」といった仕事までは面倒を見ません。かといって、各アプリケーションがそれぞれ独自に作り込むのは無駄が多く、品質もばらつきます。
そこで、特定の分野に限って共通の基本機能を提供する層を挟むわけです。
② 代表的なミドルウェア
| 名称 |
|---|
動画・テキスト・過去問・AI添削まですべて網羅!
予備校代の1/10以下で、独学の不安をまるごと解決できます
| ハードウェアのすぐ隣 | デバイスドライバ、ファームウェア | 個々の機器を直接制御する |
| その上 | 基本ソフトウェア(OS) | コンピュータ全体を管理する |
| その上 | ミドルウェア | 特定の分野で共通に使う基本処理機能を提供する |
| ユーザのすぐ隣 | 応用ソフトウェア | 利用者の目的そのものを果たす |
下の層ほど機械に近く、上の層ほど人間に近い、という向きになっています。そして上の層は下の層の機能を呼び出して働きます。ワープロソフトは自分で印刷の信号を作るのではなく、OSに「印刷して」と頼み、OSがデバイスドライバに指示を出し、デバイスドライバがプリンタを動かします。
④ 大分類と小分類
試験でよく使われる分類の形は次のとおりです。
| 大分類 | 小分類 | 備考 |
|---|---|---|
| システムソフトウェア | 基本ソフトウェア(広義のOS) | 制御プログラム(狭義のOS)/言語プロセッサ/サービスプログラム(ユーティリティ) |
| ミドルウェア | DBMS/CASE/EAI/運用管理ツールなど | |
| 応用ソフトウェア(アプリケーションソフトウェア) | 共通応用ソフトウェア | 表計算/文書作成/CADなど |
| 個別応用ソフトウェア | 各種業務固有のアプリケーションなど |
「広義のOS」と「狭義のOS」という使い分けに注意してください。基本ソフトウェア全体を指すのが広義のOS、そのうち制御プログラムの部分だけを指すのが狭義のOSです。言語プロセッサ(第8章で学ぶコンパイラやインタプリタ)やユーティリティも、広義のOSには含まれます。
⑤ システムソフトウェアの定義
システムソフトウェアとは、ハードウェアの機能を引き出し、アプリケーションソフトウェアを稼働させるためのソフトウェアです。OSとミドルウェアに分類できます。
自分で何かを生み出すわけではなく、他のソフトウェアが働ける土台を整えるのが役目です。舞台装置を組み、照明を当て、役者が演じられる状態を作る裏方にあたります。
なぜ層に分けるのか
もし層に分かれていなければ、ワープロソフトは世の中のすべてのプリンタの命令形式を知っていなければなりません。新しいプリンタが発売されるたびに、すべてのアプリケーションを作り直すことになります。
層に分けておけば、新しいプリンタが出ても、そのプリンタ用のデバイスドライバを1つ追加するだけで、既存のアプリケーションはすべてそのまま使えます。この「変わる部分を1か所に閉じ込める」という考え方は、第9章で学ぶオブジェクト指向やモジュール化の発想と同じ根を持っています。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a ミドルウェアは、基本ソフトウェアと応用ソフトウェアの中間に位置するソフトウェアである。
> b システムソフトウェアは、OSとミドルウェアに分類できる。
> c 広義のOSには制御プログラムのみが含まれ、言語プロセッサやユーティリティは含まれない。
> d 応用ソフトウェアは、共通応用ソフトウェアと個別応用ソフトウェアに分類される。
解答 a:○ b:○ c:× d:○
| 内容 |
|---|
| マルチタスク(多重プログラミング/マルチプログラミング) | 処理(アプリケーション) | 1台のコンピュータで同時に複数のアプリケーションを起動して並行的に実行できる |
| マルチユーザ | 利用者 | 1台のコンピュータを複数のユーザで共有できる |
| マルチウィンドウ | 画面上の窓 | 1つのディスプレイ上で複数のウィンドウを表示できる |
「マルチタスク=タスクが複数」「マルチユーザ=ユーザが複数」「マルチウィンドウ=ウィンドウが複数」と、そのままの意味で覚えられます。
③ 「同時」の正体
マルチタスクでは複数のアプリケーションが同時に動いているように見えますが、シングルコアのCPUであれば、実際に同じ瞬間に実行しているのは1つだけです。OSがごく短い時間で処理を切り替えているため、人間の目には同時に見えているにすぎません。
この切り替えの単位が、次の節で学ぶタスクです。切り替えを高速に繰り返すことで、「あたかも複数のプログラムを同時に実行しているように見せる」のがマルチタスクの実体です。
一方、第1章で学んだマルチコアCPUがあれば、本当に同じ瞬間に複数の処理を走らせられます。マルチタスクはソフトウェア(OS)側のしくみ、マルチコアはハードウェア側のしくみ——この違いを押さえておくと、両者を混同しません。
④ GUIとCUI
利用者がコンピュータに指示を出す方法にも、2つの流儀があります。
| 名称 | 操作の仕方 | 例 |
|---|---|---|
| GUI(Graphical User Interface) | アイコンやボタンをマウスなどで操作する | Windows、MacOS |
| CUI(Character User Interface) | 文字でコマンドを打ち込む | コマンドプロンプト、UNIXのシェル |
GUIは直感的で習得しやすく、CUIは操作を記録して自動実行させやすい、という違いがあります。サーバの運用では、手順を確実に繰り返せることが重要なので、いまでもCUIが広く使われています。
具体例
支配人としてのOS——朝の立ち上げを追う
パソコンの電源を入れてからブラウザでニュースを読むまでに、OSが何をしているかを追ってみましょう。
| 場面 | OSがやっていること | 対応する機能 |
|---|---|---|
| デスクトップが表示される | 画面の描画をディスプレイに指示する | 入出力管理 |
| ブラウザのアイコンを押す | 補助記憶装置からプログラムを主記憶装置へ読み込む | 記憶管理 |
| ブラウザが起動する | 新しいタスクを作り、CPUの時間を割り当てる | タスク管理 |
| 同時に音楽も再生する | 2つのタスクにCPUを交互に割り当てる | タスク管理(マルチタスク) |
| ウィンドウを2つ並べる | それぞれの表示領域を管理する | マルチウィンドウ |
| 家族のアカウントに切り替える | 別のユーザの設定とファイルに切り替える | ユーザ管理(マルチユーザ) |
もしOSがなかったら
アプリケーションが自分でCPUの割り当てを決め、自分でメモリの番地を管理し、自分でディスプレイに信号を送ることになります。そうなると、2つのアプリケーションが同じメモリ番地を使おうとして衝突しますし、片方が暴走すれば機械全体が止まります。
資源の割り当てを一手に引き受ける存在がいるからこそ、複数のアプリケーションが共存できる——これがOSの存在理由です。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a マルチタスクとは、1台のコンピュータを複数のユーザで共有できることをいう。
> b 多重プログラミングは、マルチタスクと同じ意味で用いられる。
> c マルチウィンドウとは、1つのディスプレイ上で複数のウィンドウを表示できることをいう。
解答 a:× b:○ c:○

OSの役割と3つのマルチ
試験のポイント
| Linux(リナックス) | マルチタスク、マルチユーザ、マルチウィンドウのOS。カーネル(OSの中核部分)がライセンスフリーで配布され、UNIXと互換性がある。UNIXと同様にソースコードも公開されている |
| MacOS | 米アップル社のパソコンのMacintosh用に開発されたOS。マルチタスク、マルチユーザ、マルチウィンドウを実現する。コンピュータを使ったデザインの分野で普及している |
| iOS | 米アップル社が開発した、タッチパネル式携帯端末向けのOS。MacOSを最適化して再編成しており、スマートフォンであるiPhoneなどに搭載されている。マルチタスクに対応している |
| Android(アンドロイド) | 米Google社が手がけた、持ち歩く機器向けのOS。スマートフォンやタブレットに載っていて、複数の処理を並行して走らせられる。ソースコードが公開されたオープンソースである点も押さえておきたい |
② 3つの軸で整理する
表をそのまま覚えるより、軸で切って並べ直すほうが記憶に残ります。
軸1:開発元
| 開発元 | OS |
|---|---|
| 米マイクロソフト社 | Windows |
| 米AT&T社ベル研究所 | UNIX |
| 米アップル社 | MacOS、iOS |
| 米Google社 | Android |
| (特定企業ではない) | Linux |
軸2:対応する機器
| 機器 | OS |
|---|---|
| パソコン | Windows、MacOS、Linux |
| サーバ | UNIX、Linux、Windows |
| スマートフォン・タブレット | iOS、Android |
軸3:ソースコードが公開されているか
| 公開されている(オープンソース) | 公開されていない |
|---|---|
| UNIX、Linux、Android | Windows、MacOS、iOS |
この軸3がもっとも狙われます。とくにAndroidはオープンソース、iOSはそうではないという対比は、そのまま出題されたことがあります。スマートフォン向けの2大OSでありながら、この点が正反対であるという構図を押さえておきましょう。
③ デファクトスタンダードという言葉
Windowsの説明に出てくるデファクトスタンダードとは、公的な機関が定めた標準規格ではなく、市場での普及によって事実上の標準となったものを指します。「de facto」はラテン語で「事実上の」という意味です。
対義語はデジュールスタンダード(de jure standard)で、こちらは標準化団体が正式に定めた規格を指します。JISやISO、IEEEが定める規格がこれにあたります。企業経営理論で学ぶ標準化戦略ともつながる用語です。
④ カーネルとライセンスフリー
Linuxの説明にあるカーネルとは、OSの中核部分のことで、CPUや記憶装置の管理といったもっとも基本的な機能を担います。Linuxはこのカーネルがライセンスフリーで配布されているため、誰でも自由に入手し、改変し、再配布できます。
だからこそ、Linuxをもとにした派生版(ディストリビューション)が数多く生まれました。Ubuntuもそのひとつで、次節の「代表的なオープンソースソフトウェア」にOSとして登場します。
具体例
なぜサーバではLinuxがよく使われるのか
企業がWebサイトを公開するとき、サーバのOSにはLinuxが選ばれることが非常に多くなっています。理由を並べてみると、この節で学んだ性質がそのまま効いていることがわかります。
| 理由 | 対応する性質 |
|---|---|
| ライセンス費用がかからない | カーネルがライセンスフリーで配布されている |
| 必要な機能だけに絞って軽くできる | ソースコードが公開されており改変できる |
| サーバ用ソフトウェアがそろっている | UNIXと互換性があり、UNIX向けの資産が使える |
| 多数の利用者が同時にアクセスしても捌ける | マルチユーザ、マルチタスクに対応している |
| 問題が起きたときの情報が豊富 | 世界中の技術者が使い、改良を加えている |
次節で学ぶLAMP(Linux+Apache+MySQL+PHP等)という組み合わせが広く使われているのも、この土台があってのことです。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a Linuxは、カーネルがライセンスフリーで配布され、UNIXと互換性がある。
> b iOSは米Google社が開発した、タッチパネル式携帯端末向けのOSである。
> c Androidはソースコードが公開されているオープンソースである。
> d Windowsは、OSのデファクトスタンダードであり、GUIを採用している。
解答 a:○ b:× c:○ d:○
まとめて確認する問い
「スマートフォン向けの2大OSのうち、オープンソースなのはどちらか」——この問いに即答できれば、この論点は押さえたといえます。答えはAndroidです。

代表的なOS(1/2)

代表的なOS(2/2)
試験のポイント
| DBMS(DataBase Management System) | データベースを管理し、検索・更新・排他制御・障害回復などを提供する。第3章で詳しく学ぶ |
| CASE(Computer Aided Software Engineering) | システム開発を支援するツール。第9章で学ぶ |
| EAI(Enterprise Application Integration) | 企業内の複数のシステムを連携させるしくみ |
| 運用管理ツール | システムの稼働状況を監視し、運用業務を支援する |
| Webアプリケーションサーバ | Webアプリケーションを動かす土台を提供する |
③ ユーティリティ(サービスプログラム)
ユーティリティは、コンピュータを利用する上で共通する機能を提供するプログラム群であり、OSの機能強化やアプリケーション機能を補う目的で使用されます。広義のOS(基本ソフトウェア)の一部として位置づけられます。
| 名称 | 内容 |
|---|---|
| ウィルス対策ソフト | コンピュータウィルスの侵入を防いだり、侵入したものを削除したりするソフトウェア |
| ファイル圧縮ソフト | ファイルの内容を損なうことなく、実際の容量より小さくして記憶するソフトウェア |
| バックアップソフト | 補助記憶装置などに記憶しているデータが壊れたときのために、そのデータの控え(バックアップ)を作るソフトウェア |
| データ消去ソフト | 一般的な消去では、そのデータを故意に回復させられる可能性があるため、補助記憶装置に記憶したデータを回復できないよう完全に消去するソフトウェア |
④ データ消去ソフトが要る理由
4つのうち、データ消去ソフトだけは少し説明が要ります。ファイルを「削除」しても、多くのOSはファイルの見出しを消しているだけで、中身のデータはそのまま残しています。だから「削除したはずのファイルが復元ソフトで戻ってくる」ということが起こります。
パソコンを廃棄したり譲渡したりするときに、この性質は深刻な問題になります。顧客名簿や設計図が入ったままの補助記憶装置を、そうと知らずに手放してしまうことになるからです。
データ消去ソフトは、その領域に意味のないデータを上書きすることで、元の内容を復元できなくします。第6章で学ぶ情報セキュリティの観点から、機器を処分する際の必須の手順とされています。
具体例
ミドルウェアがあると何が変わるか——在庫管理システムの例
小売業の在庫管理システムを作る場面で、ミドルウェア(DBMS)がある場合とない場合を比べてみましょう。
DBMSを使わない場合
アプリケーションが自分でファイルを読み書きします。すると、次の問題を自力で解決しなければなりません。
| 起きる問題 | 自力で作り込む必要があるもの |
|---|---|
| 店舗Aと店舗Bが同時に同じ商品の在庫を更新した | 排他制御のしくみ |
| 更新の途中で停電した | 障害回復のしくみ |
| 商品コードで高速に探したい | 索引のしくみ |
| 誰がどのデータを見てよいかを制御したい | アクセス権限のしくみ |
これらはいずれも簡単ではなく、しかも在庫管理という業務そのものとは無関係です。作り込んだところで競争力にはなりません。
DBMSを使う場合
上の4つはすべてDBMSが提供します。アプリケーションは「この商品の在庫を3減らせ」と依頼するだけで済み、開発者は業務のロジックに集中できます。
この構図が示すこと
ミドルウェアの価値は、本質的でない作業を肩代わりしてくれることにあります。第3章のIT投資管理や第12章のクラウドコンピューティングでも、「自社でやるべきことと、外に任せてよいことを切り分ける」という同じ判断が繰り返し出てきます。ミドルウェアは、その切り分けをソフトウェアの層構造として実現したものだといえます。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a ミドルウェアは、OSと応用ソフトウェアの中間的な役割をもち、DBMSが代表的である。
> b ユーティリティは、OSの機能強化やアプリケーション機能を補う目的で使用される。
> c 一般的なファイルの削除操作を行えば、そのデータが復元されることはない。
解答 a:○ b:○ c:×

ミドルウェアとユーティリティ
試験のポイント
プレミアムプラン
¥9,800〜/ 買い切り・自動更新なし(税込)
決済はStripe(世界最高水準・PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。