『IT初心者向け解説 第2回:OS編』
第2回目は 身近な『Operating System』
こんにちは、ロニーです。
前回は「サーバとは何か」について簡単にまとめてみましたが、
今回は「OSとは何か」について、簡単に話そうと思います。
勝手にアウトプット第2回!
パソコンを使っていれば必ず入っている、OS。
「OS、何使ってるの?」
と聞かれたら、大体の人は
「Windows10だよ」とか、
「Macだよ」
と答えられるでしょう。
が、
「OSって何をしているの?」
と聞かれて答えられる人は少ないのではないのでしょうか。
というわけで、OSの役割について、調べてみましょう!
OSの役割とは??
まず、OSとは、
「Operating System(オペレーティングシステム)」
の略です。
直訳すると、「操作/運用システム」です。
何を操作・運用するのか、ですが、
その答えは「ハードウェア」です。
私たちはパソコンを操作するときに、
直接、内部のパーツに命令を出していないですよね。
「メモリのこの位置にこの文字を保存して」とは指示していません。
そういった、ハードウェアに指示を出し、操作しているのがOSになります。
コンピュータはあらゆる複雑で高度なことを実現しますが、その実態は物理的な機械です。
極論、ミニ四駆をめっちゃ高度化させたようなもの。
電源があって、それが機械を動かしています。
コンピュータを構成している各パーツには主に、
CPU、メモリ、ハードディスク、NIC、ファン、グラフィックボード、
ノートパソコンならバッテリー。
それに入出力装置としてディスプレイ、キーボード、マイク、スピーカー、マウス、タッチパッドなどがあります。
あ、もちろん忘れてはいけない、上記の各種パーツを繋げる、マザーボードもありますね。
これらの物理的なパーツ、機器を総称してハードウェアというわけですが、
これらの多くのパーツを人間が直接それぞれ操作するとなると、
めちゃくちゃ大変なことになります。
余りにも非効率です。
一つ一つのパーツに、どのように命令をして、
どのタイミングで他のどのパーツと連携させて、
どのように計算させて、どのタイミングでどのようにアウトプットするのか…
それをすべて理解していないと、全く先に進めません。
しかも、0と1の機械語で命令しなければなりません。
OS内にはハードウェアへの基本的な命令を一覧にまとめた、
ISA(命令セット)という仕組みもあります。
が!
この命令セットから指定の命令を選ぶことすら、人間が直接行うとなると非常に大変です。
こういった、直接的なハードウェアの操作、管理を人間の代わりに一手に引き受けているのが、
OSというわけです。すごいやつです。
足を向けて眠れません。
OSってとっても賢い!!
私たちがコンピュータで直接操作命令をしているのはハードウェアではなく、
大体がソフトウェアです。
Chromeブラウザだとか、
iTunesだとか、
Dropboxだとか、
色んな機能のソフトウェアがありますよね。
色んな機能が同時に、1つのパソコンのハードウェアを使おうとすると、
当然混雑します。
順番に処理をさばいていく必要があるわけですが、
その交通案内的な役割をする仕事もOSが担っています。
これをリソース管理だとかセッション管理だとかメモリ管理だとか、
そういったワードで表現します。
どのプログラムにまずメモリアクセスを許可するのか、
どのプログラムのどのデータをディスクに保存させるのか、それはディスクのどの位置か、
計算処理をする順番はどうするか…。
各ソフトウェア自体は、同時に他のどんなソフトウェアが動くのかは知りようがないです。
だから処理の順番を譲るのか、自分が先行すべきなのかはわかりません。
だからこそ、仲立ちとして、OSが必要になります。
各種のプログラムを上手に仲介することで効率よく処理をさばき、
ムダな待ち時間を減らしたりもしてくれます。
OSにも色々あります
今あげていったように、OSの主な役割は、
ひとつのソフトウェアがメーカーごとに差異のある物理的なハードウェアの上でも
変わらず動けるようにする、「抽象化」、
複数のソフトウェアにCPUやメモリの資源を割り振って競合しないようにする「リソース管理」、
そしてリソース管理を通して、処理の効率を上げる「効率化」。
です。
なので、複数の不特定のプログラムが同時に動く可能性のある機械であれば、大体OSが入ることになります。
パソコンであれば、WindowsやMacOSやUbuntu。
サーバであれば、Windows ServerやRedHat。
スマートフォンであれば、AndoroidやiOS。
あとゲーム機器にも専用のOSが入っているようですね。
それぞれのOSにバージョンの差があるほか、
例えばLinuxのOSであれば、ソースコードを提供しているディストリビューションやコミュニティによって色んな種類の派生OSが存在します。
また、最近はそこまで流行っていないようですが、
自作OSといって、自分でOSを構築することも可能です。
マンガ「Bloody Monday」内で主人公が自作のOSである「ファルコンOS」を使っていたことをきっかけに、
自作OSがまた興味を持たれた時期もあったみたいですね。
OSについてのまとめ!!
もう一度おさらいしましょう。
OS(オペレーションシステム)の主な役割は以下のとおりです。
・いろいろなソフトウェアが様々なハードウェアの上でも動けるようにする、「抽象化」
・CPUやメモリの資源を割り振って競合しないようにする「リソース管理」
・そしてリソース管理を通して、処理の効率を上げる「効率化」
普段パソコンを利用しているだけだと
「Windows」「MacOS」程度に大雑把にしか意識しないOSですが、
実はとても奥深いものです。
Windowsなどのグラフィカルユーザーインターフェース(GUI)タイプのOSを利用していると意識しないで使えるわけですが、
LinuxのRHELなどのコマンドラインインターフェース(CLI)タイプを使うとOSがグッと身近になります。
コンピュータ内部にはこんな設定項目があって、こんな風に処理が動いているんだなと理解が進むので一度は使ってみることをお勧めします!
では今回はこの辺で。
また次回も一緒にITを学んでいきましょう!