OS(Operating System)についてのまとめ
Webアプリケーション開発を学んでいくにあたって、OSのことをきちんと理解しておいたほうが良いと思ったので、調べたことを本ブログにまとめておく。
OS(Operating System)とは
パソコンやスマートフォンといったコンピュータ類を動かすために欠かせない基本的なソフトウェア。
ユーザーの使いやすいように、システム全体を統制(オペレーション)するのが大きな役割。
コンピュータの2大構成要素であるソフトウェアとハードウェアの間に立って、お互いが問題なく連携/動作できるように面倒を見てくれているイメージ。
どの端末でどんなアプリケーションを使っても一貫した操作が可能なのは、OSが入っているため。
逆にOSが入っていなければコンピュータが動くことは一切ない。
OSの役割
OSの役割は非常に多岐にわたるので、今後知っておいた方が良いと思われるものだけを抜粋。
ハードウェア管理・制御
- キーボードやマウスを初めとした多種多様な外部からの入力を認識/統制して、アプリケーション側に伝える。
- スピーカー出力や画面表示などの出力も担う。
- OSがこの役割を担ってくれているから、ハードウェアを意識することなくアプリケーション開発ができる。
タスク管理
- アプリケーションの起動や終了、切り替えなどを管理する。
- 処理の順序(プロセスという)を統制したり、タスクを実行するのに必要なリソース(容量やメモリなど)を割り振るといったマネージャー的なことも行う。
- 複数のアプリケーションを同時にサクサク動かすことができるのもOSのおかげ。
ファイル管理
- ファイルを作り、名前をつけたり、読み書きしたりすることができる。(ファイルシステムという)
- これによって、膨大な量のデータをまとめて効率的に管理することが可能。
ネットワーク管理
- 異なるコンピュータ間でのデータの送受信。
- HTTPS通信を利用したWebサーバーとのやり取り。
代表的なOS
OSにもいろいろと種類がある。 代表的なものをピックアップ。
Windows
Microsoft社が開発するパソコン用のOS。
圧倒的なシェアを誇るため対応しているソフトが多いが、ユーザーが多い分セキュリティは脆弱がち。
GUI操作ができて、大きな会社はほぼほぼWindowsを使っているイメージ。
MacOS
Apple社が開発するパソコン用のOS。
グラフィックや操作性に強み。クリエイティブ系の作業で使われることが多い。
Linux
サーバー用に使われることの多いOS。
オープンソースのため誰でも無償で利用、改変などができる。
Red HatやCentOSなど、派生OSもたくさん。(Linuxディストリビューションと言う。)
軽さを重視したCUI操作が中心で、Webアプリ開発などにおいてはLinuxを扱うことが多い。
ChromeOS
Google社が開発するパソコン用のOS。
Linuxをベースとして、GUI機能を拡充させた形で開発された。
ブラウザ上で多くの作業が行えることや、Androidのアプリを扱えることが特徴。
(Chromebook欲しい。)
iOS
iPhoneに搭載。
Android
まとめ
- OSは、コンピュータの構成要素である「ソフトウェア」と「ハードウェア」の仲介役となる基本的なソフトウェア。
- システムの中核となる様々な役割を担っており、コンピュータを動かすために欠かせない存在。
- Microsoft社やApple社を中心に、いろんなOSが開発されている。
- Webアプリ開発では、サーバー用OSであるLinuxへの理解が求められる。