OSについて


#OSとは
<b>OS</b>とは<b>オペレーティング システム　（英：Operating System）</b>の略であり、パソコンを動かすのに無くてはならない基本ソフトの事。
　　　　

そもそもパソコンとは、大きく分けると <b>ハードウェア</b> と <b>ソフトウェア </b>の２つからなるようで

- <b>ハードウェア</b></font>とはパソコンの機械部分の事で、CPU とか HDD、メモリー、マウス、キーボードと言った目に見える部分の事。
 
- <b>ソフトウェア</b></font>とはパソコンの目に見えない部分の事。
大きく分けると『*<b>システムソフトウェア</b>*』と『*<b>アプリケーションソフトウェア</b>*』になります。
この『*<b>システムソフトウェア</b>*』が<b>OS</b>に当たる部分です。
OSも物によっては様々で　`Windows`　`Mac`　`UNIX`　`Linux`　`Chome`　とありますが
どれも微妙に違い、同じソフトでも動いたり動かなかったりで使い勝手が変わってきます。
そのことから、OSはパソコンの人格に相当するソフトになるそうです。
面白い例えですよねー:grin:

自分も勝手に例えるとするなら、目に見える<b>ハードウェア</b>が<b>肉体</b>とし、見えない<b>ソフトウェア</b>が<b>霊魂</b>的なヤツだとして.....
　
　　　   はい！ これはもうシャーマンキ◯グですね！！！
　  　　もうまんまオーバーソ◯ルじゃないですか！！   あれも『O.S.』だし！！！！
  　　　 阿弥◯丸　◯孫　トカ◯ロウ　コ◯ロ .......
　　 　中に入る物によって全然違いますね！！！　　（コロ◯って人だっけ.......?）:thinking:
　　
自分なりに理解出来ました :bangbang::bangbang: :smiley:　　（共感して頂けたら嬉しいです）:blush:

OSが入る事によって、はじめてハードウェアを動かせるようになり パソコン として機能し始めるようで「OSの入っていないパソコンは、パソコンではない」とまで言われるよう。
本当、無くてはならない物なんですね:smile:
　

それだけ大事なOSはどのような働きをしているのでしょう？

OSは
<b>ハードウェア</b>に対してはCPUへと指示を出し、そこからマウスやHDD、キーボードなど各方面に指令を送り動かす司令官的役割を担うようです。（CPUは身体でいうところの脳にあたるようです）
<b>ソフトウェア</b>に対しては『アプリケーションソフトウェア』が気持ちよく働けるように環境の整理を行います。ファイルの管理をしたり、ネットワーク環境を管理したり、セキュリティ管理、タスク(アプリなどが行っている作業)の管理などなど...........こちらは司令官というよりコンシェルジュの方が近いような.....色々動けるように管理してくれる頼もしいヤツです！！
　

ユーザー（人）からパソコンに対して処理して欲しい事を指示する時、直接ハードウェアに命令を出しても動いてはもらえません。それはCPUが機械語( バイナリコード )でしか命令を理解できないからです。（宇宙人に日本語で話しかけている感じでしょうか）
<img>&emsp;&emsp;&emsp; ![New Piskel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/836751/bf8759a6-5ac4-d984-b2bf-241f0c897f50.png)<img>&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;





そこで、OSの登場です。OSはユーザーやアプリケーションから出た命令( プログラムコード )を機械言語（ バイナリコード ）にコンパイル（ 翻訳 ）し、CPUに伝えてくれます。
逆もまた然り。そうやって、OSはユーザーである私たちとパソコンを繋いでくれる橋渡しの役をやっていてくれていた、めちゃくちゃありがたい存在です。縁の下の力持ちという訳です。
　

　![OS図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/836751/bf9b7816-ca7e-48d7-5c54-ae6056b86d39.jpeg)
　
　
###OSはいつから存在しているのでしょうか？
明確にいつからとは言えないようです。OSっぽい技術は1950年頃からちょいちょい存在したようで、少しずつ少しずつ進化を遂げて来たという感じでしょうか。現在のように一つのOSでマルチタスクを可能としたヤツは、1964年にIBM社から発売された`OS/360`が初めてと言われています。
しかしこの`OS/360`がIBM社を苦しめる事となります。`OS/360`は*System/360*と言うメインフレーム(大型コンピューター)のOSとして開発されましたが、メモリの少ない小型モデルにとって`OS/360`は容量が大きすぎたのです。
他にも、あるアプリの処理中に他のアプリへ影響を与えないように対応したり、様々なアプリからの要求に応えられるようにと工夫が求められました。これには多大な費用と時間が必要となり`OS/360`の開発は遅れて行きました。
このOSの開発者であるフレデリック・ブルックスさんはこの時のことを著書『人月の神話』にてこう記しています。

>太古の昔から、タールの沼に落ちた巨大な獣が死にもの狂いで岸に這い上がろうとしている光景ほど、鮮烈なものはない。恐竜やマンモス、それにサーベル・タイガーが、タールに捕らえられまいとしてもがく様が目に浮かぶ。激しくもがけばもがくほど、タールは一層絡みつき、どんなに力強い獣でも、また賢く器用な獣でも、ついには沈んでいってしまう。
>大規模システムプログラム開発は、過去十年以上もの間そうしたタールの沼のようなものだった。そして、多くの強大な獣たちが、その中へ乱暴に突き落とされてきた。たいていは稼働システムを作り、這い上がってきたものの、目標とスケジュール、それに予算にかなったものはほとんどなかった。
>規模の大小、また大量動員あるいは少数精鋭であろうとも、開発チームは次から次へとタールでがんじがらめになってしまう。問題を引き起こす原因は、一つだけではないように思われる。原因が一つだけなら、足のどれか一本くらいはタールから抜けるはずだ。だが、同時かつ相互に影響し合う要因が重なり合っているのなら、動きがどんどん遅くならざるをえない。この問題が執拗でやっかいなのは、誰にとっても驚異であり、その本質を理解することは困難である。しかし、問題を解決しようというならば、理解するように努めなくてはならない。
>— フレデリック・P・ブルックス Jr.、滝沢徹、牧野祐子、宮澤昇、2002年、p.4

　カッコよく言っていますが、書いてあることはめっちゃ怖いですね:sweat_smile:
　ソフトウェア開発の大変さを思い知らされます......

「人月の神話」とは「開発って時間掛かるよ、人(人員)を投入しても月(時間)とは交換できないよ」と言う事みたい。またこの事をブルックスの法則と呼んでいます。
興味がありましたら是非調べてみて下さい。「銀の弾」「バベルの塔」「セカンドシステム症候群」などカッコいいワード盛り沢山です。

　
　普段、何気なく使っていて気付きにくい当たり前の存在でしたが色々な方の努力の賜物たっだんですね〜〜
　
　いやぁ、OSって素晴らしいもんですね〜〜:smile:
　
　

#参考にした記事
https://qiita.com/tatsuya4150/items/f830c9b2ae33275aef42　
https://wa3.i-3-i.info/word179.html　
https://tech-camp.in/note/pickup/1013