03:ソフトウェアの種類
目次
OSって何?
あなたのパソコンにもOS(オーエス:Operating System)が入っている事だと思います。パソコンでよく使われているOSは、Microsoft(マイクロソフト)社のWindows(ウインドウズ)ですね。
Apple(アップル)社のパソコンを使われている方なら、OSX(オーエスエックス)が入っている事だと思います。スマホやタブレット端末ならAndroid(アンドロイド)やiOS(アイオーエス)でしょうか?。
OL(事務所で働くオネーサマ)と1文字違いですが(笑)、そもそもOSって何でしょうか?。
その昔、オジサマがパソコンを触り始めた頃は、OSは一般的ではありませんでした。市販されているパソコンには、OSが入っていない事が当たり前だったのです。いまでは考えられませんけどね(汗)。
OSはソフトウェアの一種です。その目的は、ハードウェアと、ハードウェアの利用者(つまり、あなた)や、ハードウェアとアプリケーションと呼ばれる様々なソフトウェアの橋渡しを行う事です。
例えば、あなたが賃貸アパートに住む場合を考えてみましょう。
世の中には自分の家や建物を人に貸したいと思っている人(建物のオーナー)が沢山いますが、あなたの知り合いには、そんなオーナーさんは見えるでしょうか?。
(画像URL:illust-AC 様)
あなたの知り合いにオーナーがいれば、直接話をすれば良いかもしれません。
ですがそんなオーナーに知り合いがいない場合は、賃貸会社に出かけますよね?。賃貸会社は、家を貸したいオーナーと、借りたい人の橋渡しをしてくれる存在です。
OSもいっしょなんです。ハードウェア(コンピュータ)と、それを使いたい人やソフトウェアの橋渡しをしてくれる存在なのです。
(画像URL:illust-AC 様、photo-AC 様)
より専門的に言うと、OSは「ハードウェアなどのリソースを管理する機能」と、「ハードウェアを使いやすくする為の機能(利便性の向上に役立つ機能)」を提供してくれるソフトウェアなのです。
リソースとは、CPUのパワーや、メモリ容量、ファイル容量など、コンピュータを動かすために使える資源を指します。資源といっても石油や石炭ではありません(笑)。
それらを適切に管理するのがOSの役目なのです。OSのハードウェアを管理する機能をカーネル(Kernel)と言います。ちなみにカーネルといっても、某フライドチキンの創業者や軍隊の将軍ではありません(笑)。
利便性の向上に役立つ機能には、大きく分けて2種類あります。
1つ目は、綺麗なウインドウやアイコン、便利なコマンドを提供して、コンピュータの操作者(私達)がコンピュータを使いやすくする機能です。この機能をシェルと言います。
もう1つは、様々なプログラムがOSやハードウェアの機能を簡単に使えるようにするために、プログラム専用の機能を提供することです。この部分をAPI(エーピーアイ:Application Programming Interface)と言います。
こうして見てみると、なんだかよくわからなかったOSが、すこし身近に感じられるのではないでしょうか?。
基本ソフトウェアとアプリケーション
世の中に出回っているソフトウェアには、OS以外にもエクセルやワード、各種ゲーム、IE(アイイー:インターネット・エクスプローラ)やChrome(クローム)と呼ばれるブラウザなど、沢山のものがあります。
OSのような、ハードウェアを制御し、いろいろな機能を提供してくれる基本となるソフトウェアの事を「基本ソフトウェア」と呼びます。
一方で、OSの様々な機能を利用して動作するソフトウェアの事を「応用ソフトウェア」と呼びます。ですが、この呼び方はあまり一般的ではありません。単にアプリケーションといった方が馴染みがあるでしょう。
エクセルもワードもブラウザも、みんなアプリケーションなのです。アプリケーションの事を略してAP(エーピー)とも言います。
(画像URL:illust-AC 様 )
またソフトウェアの中には、いろいろなアプリケーションから使われる道具的なものがあります。いろいろなアプリケーションから使われる便利な道具的ソフトウェアの事をライブラリと言います。
OSが提供してくれるAPIは、大変便利なものです。しかし、それだけでは機能が単純で使いにくい場合があるため、いろいろな目的別にAPIを組み合わせて、一連の作業を行う便利な命令を作ってあるのです。
たとえば、あなたが料理のダシをとる場合を考えてみます。マジメ?にやるなら、乾燥させた鰹(カツオ)を買ってきて、カンナなどで削って鰹節(カツオブシ)を作り、お湯を沸かして鰹節を煮込む必要がありますよね。
(画像URL:illust-AC 様)
昔のおかーさんは、本当に偉かったと思います・・・ええ。
でも、いちいちこんな事をしているのは面倒くさいです。手間です。大変です。そこで、最初から削られた鰹節のパックを買うか、さもなくば鰹ダシの粉を買ってきて、さっとお湯に入れると便利です。
いうなれば、この鰹節パックや鰹ダシの粉がライブラリです。乾燥カツオはAPIです。
海でカツオを釣り上げて、ワタを取り出して天日干しにする事を考えれば、乾燥した鰹が最初から提供されているのは非常に便利です。でも、料理をする事を考えると、それでも面倒くさい事がわかります。
ソフトウェアの世界では、いろいろなアプリケーションが使う便利なライブラリを用意する事は、効率よくプログラムを作成する上で、非常に重要な仕事になります。
統合開発環境
アプリケーションのうち、プログラムを作成するために使うソフトウェアをプログラムエディタといいます。
正確にはプログラムを作成する目的以外にも、文章を書いたり、ちょっとしたメモをとることもできます。Windowsに標準でついているメモ帳でもプログラミングを行うことは可能ですが、オススメできません。
プログラミングを勉強するぞって人は、タダで使えるエディタが沢山公開されていますので、1つ手元に用意しておくと良いでしょう。
さらに最近では、プログラムを作成する事に特化した専用のアプリケーションを用いる事が増えてきました。作成したプログラムの管理、コンパイル、テストなど、多くの役立つ機能を提供してくれます。
そのような専用のアプリケーションを「統合開発環境」と呼びます。IDE (アイデーイー:Integrated Development Environment )とも言います。IDEは有償のものが多いのですが、無償のものもあります。
本格的にプログラムを作成するなら、初心者には少しハードルが高いですが、エディタよりもIDEをオススメします。
IDEは開発に使うプログラミング言語やOSに依存する事が多いため、どのOSの上で動作するプログラムを作るのか、どんな言語を使ってプログラミングするのかに応じて、使い分ける必要があります。
有名なものとして、Visual Studio(ビジュアルスタジオ)、Eclipse(エクリプス)、NetBeans(ネットビーンズ)、IntelliJ IDEA(インテリジェイ アイディア)などがあります。
エディタやIDEをそろえてねと言われて、初心者の方は少し驚いたかもしれませんね。でもちょっと考えてみて欲しいのです。
例えば、あなたが何かの木工作をするとしましょう。例えばペットの犬小屋を作るとか・・・。材料の木材を買うだけでは犬小屋は作れませんよね?。工具(ノコギリや釘、ハンマーなど)が必要です。
(画像URL:illust-AC 様)
家に大きめのカッターナイフ(Windowsのメモ帳)があるなら、それを使って木材を切断する(プログラムを作る)事も可能です。ですが普通は工務店にいって、安くても良いので簡単な工具(エディタやIDE)を揃えるのではないでしょうか?。
これからプログラムを作成する(犬小屋を作る)場合も一緒なのです。
幸いな事にPROCESSINGには、標準で簡易なエディタが搭載されています(これを、「標準エディタ」と呼ぶ事にします。正式名称は・・・知りません:汗)。PROCESSING専用ですが、これを使えば簡単なプログラムを作る事ができます。
ですので、まずは初心者の方も安心して取り組むことが可能です。
今日の言葉
・OS
縁の下の力持ち。ハードウェアを制御したり、各種アプリケーションが効率よくハードウェアを使えるようにするもの。これがないと始まりません。Windows、OSX、Linux、iOS、Androidが有名です。
・リソース
コンピュータ上で利用できるいろいろな資源のこと。資源といっても、石油や石炭ではありません(笑)。CPUの処理時間(パワー)や、メモリ容量などの事です。
・カーネル
某フライドチキンの創業者でも、軍隊の将軍でもありません。ハードウェアを制御し、リソースを管理するOSの中核部分を指します。
・シェル
貝殻・・・ではありません。もちろん石油会社の名前でもないですからね。カーネルの外側にあって、人間とOSのやり取りを受け持つ機能を指します。
・API
シェルが人間とOSのやり取りを受け持つ機能なら、APIは各アプリケーションとOSのやり取りを受け持つ部分です。
・基本ソフトウェア
OSの事だと思ってもらってOKです。こんな言い方は、あまりしませんけどね。
・応用ソフトウェア
アプリケーション(AP)の事です。基本ソフトウェア以上に・・・こんな表現は教科書の中でしか登場しません。ま、そういう言い方もあるよ程度の事です。
・ライブラリ
APIをまとめて、便利な機能を提供する小さなプログラムの事。いろいろなアプリケーションから利用されます。これを上手に用意できるかどうかで、現場の作業効率が大きく変わってしまいます。
・統合開発環境
IDEとも呼ばれるプログラムを作成する事に特化した専用のアプリケーションです。プロなら1つや2つは使いこなすべきもの・・・です。・・・が、実は私はあまり得意ではないんですよね・・・(汗)。
今日のまとめ
- OSはハードウェアを制御し、リソースを管理する縁の下の力持ち
- ソフトウェアには基本ソフトウェアと応用ソフトウェアがある
- プログラミングするなら道具をそろえよう
電子書籍のご案内
よりわかりやすく詳細にまとめたものを、以下の電子書籍として販売しております。書籍については、下記書籍ページを参照してください。
本ページの文章及びプログラムは、全てMSLABOに著作権があります。
本ページで利用している画像、フォントには、参照元リンクの企業・団体・個人に著作権があります。
著作権に従い、適切に利用して下さい。