雑記

ソフトウェア、ハードウェア、ファームウェア、アプリ、OSの違いをわかりやすく説明

▼▼Youtubeで投資の実績を公開中▼▼


▼▼応援クリックお願いします▼▼
ブログランキング・にほんブログ村へ

以前書いた半導体概要の記事へのアクセスが定期的にあるので、初心者向け技術用語第二弾として『ソフトウェア、ハードウェア、ファームウェア、アプリ、OSの違い』を書いてみます。

20190313_半導体アイキャッチ
【半導体】LSI,ASIC,FPGA,CPU,GPUの違いが判る!半導体の分類について解説半導体と言ってもLSI,ASIC,FPGA,CPU,GPUなど多くの分類があります。そこで、いろいろな半導体について初心者でも判るような記事を書いてみました。半導体って聞いたことあるけどなんだかよく判らない人向けに書いています。...

まず、上位概念でもあるハードウェア(hardware)とソフトウェア(software)から説明します。

ハードウェアについては、パソコンならCPUやメモリの搭載された基板、基板が収められているケースといった物理的に触ることが出来る

全てのものをハードウェアと表現します。

ソフトウェアについては、パソコンならOSやアプリケーションやデバイスドライバといった物理的に触ることは出来ない無形の物をソフトウェアと表現します。

たとえば、CD-ROMなど触れると思うかもしれませんが、あれはデータをCD-ROMに記録しているだけなので見ただけでソフトウェアが記録されているCDかどうかは判断できません。

CD-ROMはハードウェア、CD-ROMに書き込まれたデータがソフトウェアということになります。

ソフトウェアとハードウェアの違いを図で書いてみました。

ハードとソフトの違い

ハードウェアのいろいろ

パソコンを例に説明してみます。

まず、パソコンの筐体を開けると中には緑色の基板が入っています。

その基盤上にはCPUやGPUやメモリなど多数の電子部品が搭載されています。

その筐体から内部の電子部品まで物理的に触れる物全てをハードウェアといいます。

CPU:ソフトウェアの中身を解釈する装置です。

GPU:グラフィック処理(画像処理)をすることがメインの装置です。

メモリ:ソフトウェアの中身を記憶しておく場所のことです。アクセス速度や記憶サイズや値段のトレードオフがあります。

ソフトウエアのいろいろ

ソフトウェアって便利に使われていますが、本当にいろいろな意味があります。

たとえば乗り物っていう言葉には電車、飛行機、車、自転車など多岐に渡ります。ソフトウェアも乗り物ってくらい抽象度高めな単語だと思います。

まずは、ソフトウェア構造のレイヤーで別けた言葉を紹介してみます。

OS:オペレーティングシステムの略です。パソコンならWindowsとかmacOSとかLinux。スマホならAndroidとかiOSが有名です。とにかくベースとなるソフトウェアのことを指しています。

アプリケーションソフトウェア(アプリ):OS上で動く特定作業に特化したソフトウェアのことです。有名なのは表計算ならエクセル、文書を書くならワードなどマイクロソフトのオフィス365が有名です。

最近では無料でGoogleも同様のソフトを提供しているので個人で使うのであればマイクロソフトオフィスの購入は不要になりました。

デバイスドライバ(デバドラ):パソコンでプリンタやDVDなど周辺装置を増設するときに必要となるソフトウェアのことです。デバイスというのはパソコンを拡張するためのハードウェアを指すことが多いです。

つまりは、パソコン拡張装置をドライブさせるソフトウェアという意味でデバイスドライバと呼ばれています。

ミドルウェア:これが便利な言葉で人によって定義が異なるので注意が必要です。ソフトウェアはマンションのように階層構造化されています。

ここで一旦イメージ図を書いてみます。

ソフトウェア構造図

こんな感じでこれまで登場してきた言葉を使ってソフトウェアの構造を書いてみました。

最上位に位置するアプリケーションソフトが自分で出来ない処理をミドルウェアという処理モジュールを使う為のソフトウェアモジュールのことをミドルウェアということが多いです。ミドルは下層に位置するOSやデバドラと上位に位置するアプリの間ということでミドルという言葉で言われます。

あとは、ソフトウェアとハードウェアの中間に位置するDSPなどの処理プロセッサのことをミドルウェアということもありますが、DSP自体がマイナーな存在なので使われることは少ないです。

ファームウェア:ファームウェアは聞きに組み込まれた比較的小さなソフトウェアのことを言います。なのでファームウェアはこれまで説明したOSなどの階層構造になっているケースはあまりありません。例えば、電源立ち上げ時の処理シーケンスを制御するような小さなソフトウェアをイメージして下さい。(電源立ち上げシーケンス:電源がONされたときに処理する順番のこと)

この他にもソフトウェアには、言語という意味でも高級言語から低級言語まで様々な定義というか言語も存在しています。

ソフトウェアという言葉はどの切り口で見るか?で全く違った言葉になります。

これについて書き始めるとキリがないのでソフトウェアとハードウェアの違いについては、この辺で辞めておきます。

技術的なことを知らない人に向けて書いてみましたが、簡単に専門用語を説明するって本当に難しいなとこの記事を書いて改めて感じました。


▼▼Youtubeで資産運用実績を公開▼▼


関連記事