IT業界に入ったらこれだけは知っていて欲しい
こんにちは。
システムエンジニアのtomoです。
先日スマホでニュースを見ていたら最近の若者はPCに関するスキルや知識がほとんどないとの記事を見つけました。
確かに昨今スマートフォン市場の急速な広がりでパソコンというよりスマートフォンを使用する時間がグッと長くなったと思います。当然ながら僕もそれは同じです。
仕事以外でPCを使用するときはこのブログを書くときくらいです。
そのため普段からパソコンに関する知識を磨いたりする機会はそこまでないはずです。
ただ一方でIT業界で働こうと考えている人、現在若手として働いている人は今回紹介する3つのことは最低限知っていてほしいです。
①サーバ/クライアント
IT業界で働いているとサーバ、クライアントといった単語はよく耳にすると思います。
ですが意外にもその意味を知っているひとは少ないように感じます。
それではまずはサーバから説明します。
Wikiによると以下のような定義が書いてありました。
サーバ(英: server)とは、サービスを提供する側を指す用語。 コンピュータ分野のクライアントサーバモデルでは、クライアントからの要求に対して何らかのサービスを提供する機能を果たす側のシステムを指す。
何かを提供する側と書いてあるが釈然としませんね。
ではクライアントとはどのような定義になっているでしょうか。
クライアント(英: Client)は、クライアント・サーバシステムにおいて、サーバに対してサービスの依頼を行いその提供を受けるような、コンピュータまたはアプリケーションやプロセスのことをいう。サーバからサービスを受ける側を指す。
なるほど、提供する側と提供される側と。。。
しかし僕はこの説明だとあんまり理解できない気がします。
では具体的な例を使って考えてみます。
例えばレストランで食事をするとき、その注文を依頼する相手はおそらくウェイターでしょう。そう彼らが提供を受ける側なのでクライアントです。
そして実際にサービスの主体である調理をするのは厨房だと思います。厨房こそがサービスを提供する側であるサーバを指しているのです。
この考え方をしておくとクライアントとサーバ間には通信が必要ですといった説明も納得しやすくなります。そりゃウェイターが注文を受けたまま立ち止まっていても厨房に注文は伝わらないからです。
②プロセス
これもIT業界ではよく耳にする単語です。
特に上で説明したサーバやクライアントと一緒に登場する言葉でもあります。
では例によってWikiの定義を引用しましょう。
プロセスとは、情報処理においてプログラムの動作中のインスタンスを意味し、プログラムのコードおよび全ての変数やその他の状態を含む。オペレーティングシステム (OS) によっては、プロセスが複数のスレッドで構成される場合があり、命令を同時並行して実行する。
わかりました?わかりませんよね・・・
ではまた先ほど述べたレストランをイメージしてください。
皆さんはレストランでサラダとステーキとデザートを頼んだとします。
ウェイターは注文を持って厨房に伝えます。そうするとそれぞれサラダ担当、ステーキ担当、デザート担当の料理人が仕事を始めます。
こういった特定の役割を持っているインスタンス(=ここでは料理人)のことをプロセスと呼びます。
実際のPCで言うと、インターネットを見るためにInternetExplorerやGoogleCromeのアイコンをクリックして起動すると思いますが、これがWebブラウザのプロセスというわけです。
③OS(オペレーティングシステム)
最後はけっこう有名ではあるOSです。
Wiki上では以下のように記載されています。
オペレーティングシステム(英:Operating System, OS)とは、コンピュータにおいて、ハードウェアを機能毎に抽象化したインターフェースを利用者またはアプリケーションソフトウェアに提供するコンピュータプログラムである。
これも例によってわかりづらいですが、ちょっと例をレストランからマクドナルドに変えてみます。
マクドナルドは世界共通どこに言っても同じようなサービスを受けられますよね。
作っているハンバーガーの調理工程や店員の接客マニュアルもある程度統一化されています。
それは店舗の立地や場所に関係なくです。
これがまさにOSと同じで、異なるPCからも同じWindowsであればほとんど同じ方法で操作ができるはずです。これがまさに抽象化したインタフェースと言うわけです。
以上3つ紹介しました。
ぜひこの機会に漠然としたイメージでいいので覚えておいてください。