OSとコンピュータのソフトウェア

最終更新日: 2019年 04月07日

前の記事ではCPU、メモリ、HDDなどハードウェア的なコンピュータの仕組みを説明してきましたが、今回はソフトウェアに関して説明していきます。

ハードウェア、OS、アプリケーション三つのレイヤー

コンピュータのハードウェアにはそれぞれの機能がありますが、ソフトウェアも同様でいくつかの種類に分類されます。

コンピュータはレイヤーで分類されることがあるのですが、ソフトウェアの分類を理解する場合はこちらのレイヤーを用いて理解するのが良いです。

コンピュータのレイヤ

コンピュータのレイヤ

コンピュータを階層にわけると下からハードウェア、OS、アプリケーションというような形になっています。のちほどOSについてはより詳細に説明していきますが、 アプリケーションとハードウェアの橋渡しをする基盤となっています。プログラミングをするとアプリケーションからファイルを作成したり、 フォルダを作成したりすることがあるのですがこういった作業はアプリケーションからOSに依頼を投げてOSが実際のファイル作成やフォルダ作成をしていきます。

ハードウェアとは先の記事で紹介したようなCPUやメモリなどの物理的な装置です。OS、アプリーケションがソフトウェアで基本的にOSをベースの基盤としてアプリケーションが動作します。

自作のパソコンを作るとわかるのですが、OSの入っていないパソコンを買うと自分でOSをインストールしなければなりません。 エクセルなどのソフトはアプリケーションに分類されるのですが、自分でパソコンを組み立ててエクセルを使いたいといった場合には先に説明した三つのレイヤをパソコンに用意する必要があり、 パソコンの外枠となる筐体、CPU、メモリ、HDDなどの部品を用意して組み立て、できたらOSをインストール、最後にエクセルをインストールするという手順になります。

ここでの個別のOSというのを理解する前にコンピュータの全体像を理解しましょう。

OSとは?

先に全体観から話をしてしまいましたがOSとはオペレーティングシステムと呼ばれ、コンピュータのプロセス管理などなどの仕事を担い、基本ソフトウェアと言われるほどコアで大事なソフトウェアです。

OSという言葉が先行するとイメージがわかないと思いますが、OSの具体的な例をあげると

  • MacBookなどのアップル製品に搭載されているMac OS,
  • マイクロソフト製品に搭載されているWindows
  • 多くのWebアプリケーションに採用されていて、AWS、GCPなどクラウドサービスで採用されているLinux

などが挙げられます。

それぞれのOSの厳密なところはなかなか難しいところなのですが、Mac OSとLinuxはそれぞれUnixをもとに作られているのでコマンドラインの操作性が似ています。長らくOSのシェア一位を守っているWindowsは あとの二つと出自が違うので若干操作性が異なります。Windows OSでのプログラミングは可能なのですが、Web系企業のエンジニアはMacを使用している率が高くその次がLinuxというような順序になっています。

エンジニアがMacを採用する理由として、ネット上にある情報自体がMacの使用を前提としたものであることが多かったり、使いたいソフトウェアがMac, Linuxなどに先に対応するといった理由から開発の利便性が高いというものがあります。 これからプログラミングをするためのPCの購入を考えている方には、特段の理由がなければMacをおすすめしておきます。

ミドルウェアとアプリケーション

OSの他にソフトウェアに関連して理解しておきたいワードとしてミドルウェアという言葉があります。

ミドルウェアとは名前の通りミドル(中間)のソフトウェアでOSとアプリケーションの橋渡しを担うソフトウェア群のことです。MySQL, PostgresSQLなどのデータベース、Apache, NginxなどのWbサーバーなどがそれにあたります。 アプリケーションで行うと煩雑なデータやネットワークのタスクをデータだったらデータベース、HTTP通信だったらWebサーバなど機能別にまとめたものがミドルウェアでアプリケーションよりはより抽象的で汎用的な作業を行います。

ここまでアプリケーションの説明はしていなかったのですが、アプリケーションは応用ソフトウェアとも呼ばれ、コンピュータの中でもより応用的で具体的な作業を行うソフトをまとめたものです。スマホの普及からアプリという 言葉が爆発的に普及して知っている方がほとんどかとは思いますが、説明したOSやミドルウェア以外のものはほぼアプリケーションです。

Google ChromeもインスタグラムもエクセルもワードもSlackも全部がアプリケーションです。アプリケーションも色々と分類はできるのですがWebエンジニアが作成するアプリケーションはWebアプリケーションと呼ばれWebサイトと 呼ばれたりするもので、他にはアプリエンジニアが作るのはアンドロイドやiOS上で動くネイティブアプリケーション、PC上で動くデスクトップアプリケーションなどがあります。

まとめ

  • コンピュータはハードウェア、OS、アプリケーションの三つのレイヤーからなる
  • OSとアプリケーションの橋渡しを行うのがミドルウェア
  • コンピュータの中でより応用的で具体的な作業を行うのがアプリケーション

ここまでOS、ミドルウェア、アプリケーションなどの説明をしてきましたがいかがでしたでしょうか?

Webエンジニアの仕事というのはこの三つのソフトを組み合わせながらWebアプリケーション(Webシステム)を構築していく仕事です。それぞれの分野で高い専門性が必要なのですべての領域に精通する必要はないのですが、 チームでWebアプリを開発するというのはそれぞれの分野をわかっている人が集まってWebアプリを構築するということなのでこれから自分が作ろうとしているものが何なのか?というところを意識しながら学習を進めて頂ければと思います。