基本情報技術者 ~ソフトウェア[1]~



f:id:potato_head0809:20210116010233p:plain




こんにちは!ポテトヘッド(@potato_head0809)です!



今回はソフトウェアについて触れていこうと思います!



ソフトウェアとは何かわかりますでしょうか。



聞いたことはあると思います!



簡単に言ってしまうと、「OS」のことです。



OSは聞いたことがありますよね?



今回はこのようなソフトウェアにはどのような役割があるのか、



どのような種類があるのかについて学んでいきましょう!



OSの役割



まずはOSの役割について見ていきましょう!



以下の図を見てください。



f:id:potato_head0809:20200912144157p:plain




コンピュータは様々なハードウェアと連携して動作しています。



ハードディスクには作成したファイルが保存され、



メモリには編集中のデータが保持されているんです。



あとは、キーボードで文字が入力され、マウスでカーソルが動くなど...。



当たり前のように使っているコンピュータですが、そもそもの話、



何かがコンピュータをコンピュータとして使えるようにしなくてはいけません。



その役割を担っているのが、今回学んでいこうとしているOSです!



基本ソフトウェアとも呼ばれています。



ソフトウェアの分類



では、ここでソフトウェアを役割ごとに分類してみます。



文章をだらだらと書いても分かりにくいと思いますので



まずは以下の図を見てください。



f:id:potato_head0809:20200912145036p:plain




ソフトウェアを大きく分けると二種類に分類できます。



「応用ソフトウェア」と「基本ソフトウェア」です。



応用ソフトウェアとは、ワープロなどのアプリケーションソフトのことです。



そして、システムソフトウェアには、



ミドルウェア」と「基本ソフトウェア」が含まれます。



ミドルウェアとは、データベースの管理ソフトウェアや、



開発を支援するソフトウェアのことを言います。



ある特定の用途に特化していて、



基本ソフトウェアと応用ソフトウェアの間で役割を果たします。



一方、基本ソフトウェアは先ほど説明したように、



OSや各種サービスのことを言います。



基本ソフトウェアのプログラム



基本ソフトウェアは、3つのプログラムに分類できます。




「制御プログラム」

「言語処理プログラム(言語プロセッサ)」

「サービスプログラム」



これら3つに分類されます。



では図を見てください。



f:id:potato_head0809:20200912233048p:plain




ひとつひとつ説明していきます。



まずはOSの中核となっている「制御プログラム」です。



制御プログラムは、ハードウェアを管理し、応用ソフトウェアやミドルウェアから



コンピュータが効率的に利用できるように働くソフトウェアです。



制御プログラムのことを「カーネル」と言います。



カーネルは2つに分類することが出来ます。




マイクロカーネル

メモリ管理やプロセス管理などに機能を限定したカーネル


モノリシックカーネル

多くの機能を備えたカーネル



 制御プログラムは上の図でもあるように、



ジョブやタスク、データの管理をします。



次に言語処理プログラムについてですが、



言語処理プログラムとは、プログラミング言語で書かれたプログラムを



コンピュータが理解できるように翻訳するプログラムのことを言います。



最後にサービスプログラムについてですが、



簡単に説明すると、コンピュータの機能を補う補助的なプログラムです。



狭義のOS・広義のOS



先ほどから述べているように、「OS=基本ソフトウェア」は



広義で考えた場合です。



一方、狭義の意味でのOSとは、



「基本ソフトウェアの中の制御プログラム=OS」という考え方になります。



図で示すと以下のようになります。



f:id:potato_head0809:20200912234320p:plain




代表的なOS



OSには聞いたことのあるWindowsMacOSなど



様々なものがあります。



f:id:potato_head0809:20200912234434p:plain




それではいくつか紹介します。




Windows


現在最も使われているMicrosoft社のOS。

GUI(マウスなどのポインティングデバイス)を使って

画面を操作しコンピュータに命令を与える。




「MaxOS」


Apple社のOS。

GUIを実装したOSの先駆け。




MS-DOS


Windowsの普及以前によく使われていたMicrosoft社のOS。

CUI(コマンドを入力)といった方法でコンピュータに命令を与える。




UNIX


サーバなどでよく使用されるOS。

多くのユーザが同時に利用できるように考えられている。




Linux


UNIX互換のOS。

オープンソースのソフトウェアで、

無償で利用できるもの。



GUI



以下の図はWindowsの画面をイメージしたものです。



f:id:potato_head0809:20200913000234p:plain




このOSではGUIという画面にアイコンやボタンを配置し、



それを視覚的に操作して命令を与えています。



普段我々がコンピュータを操作している方法はGUIです。





ここではOSとアプリケーションとの接点部分について見ていきます。



OSは自身が管理することでハードウェアの違いや入出力をすべてブラックボックス化します。



つまりアプリケーション側が直接それらを意識することはありません。



では、アプリケーションはどのようにして、ハードウェアを使うのでしょうか。



それは、「OSに指示を出してハードウェアを使います」。



OSはハードウェアの利用も含めて、自身が持つ各機能を



アプリケーションから呼び出せる仕組みを持っています。



このために準備されたインターフェースを「API」と言います。



では、APIを利用するとどんな良いことがあるのでしょうか。



以下の図で示します。



f:id:potato_head0809:20200913001111p:plain




一言で言うと、「便利」だということです。



まとめ



今回の内容は以上になります。



基本ソフトウェアは3つに分類でき、システムソフトウェアは2つに分類でき...



というようにややこしい部分が幾つかありましたね。



それぞれがどんな役割を担っているのかを



イメージできればコンピュータの仕組みが



理解できたみたいで楽しいですね!!



次回は制御プログラムについて説明した際に



出てきたジョブ管理について触れていきたいと思います。



最後までご覧いただきありがとうございました。



次回もお願い致します!



次回の記事はこちらから!

 

potato-head0809.hatenablog.com