プログラミング修行記

Webサービスを自作したい25歳の修行記

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。

グラフィックや操作性に強み。クリエイティブ系の作業で使われることが多い。

ベンチャー企業Macのイメージが強い。

Linux

サーバー用に使われることの多いOS。

オープンソースのため誰でも無償で利用、改変などができる。

Red HatCentOSなど、派生OSもたくさん。(Linuxディストリビューションと言う。)

軽さを重視したCUI操作が中心で、Webアプリ開発などにおいてはLinuxを扱うことが多い。

ChromeOS

Google社が開発するパソコン用のOS。

Linuxをベースとして、GUI機能を拡充させた形で開発された。

ブラウザ上で多くの作業が行えることや、Androidのアプリを扱えることが特徴。

Chromebook欲しい。)

iOS

Apple社が開発するスマートフォン用のOS。

iPhoneに搭載。

Android

Google社が開発するスマホ用のOS。


まとめ

  • OSは、コンピュータの構成要素である「ソフトウェア」と「ハードウェア」の仲介役となる基本的なソフトウェア。
  • システムの中核となる様々な役割を担っており、コンピュータを動かすために欠かせない存在。
  • Microsoft社やApple社を中心に、いろんなOSが開発されている。
  • Webアプリ開発では、サーバー用OSであるLinuxへの理解が求められる。


参考にしたURL