OSって、そもそもナニ?

はじめに

日々使っているパソコンやスマホの中に、当たり前のように存在している「OS(オペレーティングシステム)」という言葉。これ、一体何者なんでしょうか?初心者の方にも分かりやすく、その正体を紐解いてみましょう!

そもそもOSとは?

まず結論から言うと、OS(Operating System)は、スマホやパソコンを動かすための「基本ソフトウェア」です。例えば、スマホやパソコンでアプリを使ったり、写真を見たり、文字を入力したりするのも、OSが裏で頑張って働いてくれているおかげなんです。

簡単にいうと、こんなイメージです。

  • パソコンやスマホは「ハードウェア」という機械そのもの。
  • その機械を動かすための“土台”となるソフトウェアが「OS」。
  • そしてさらに、その上で動く「アプリ」や「ソフト」が表面的に私たちが使っているもの。

OSがやってくれる大事な役割

では、この「OS」が具体的にどんなことをしているのかを簡単に説明します!

1. ハードウェアの管理

パソコンやスマホにはCPU、メモリ、ディスク、マウス、キーボード、カメラなど、たくさんの部品が組み込まれています。この「部品たち」をうまく動かし、連携させてくれるのがOSの役割です。

例えば

  • 「キーボードで押した文字が画面に表示される」
  • 「写真データをSDカードに保存する」

こうした一連の流れも、すべてOSが裏で見守って処理しているのです。

2. アプリケーションとのつなぎ役

私たちはスマホやパソコンを使うとき、アプリやソフトを操作しますよね?
例えば、画像編集のアプリ、ネット検索のブラウザ、ゲームアプリ……これらを動かす時、アプリ自身では直接ハードウェアを動かせません。ここで必要になるのがOSです。 
OSが「アプリ」と「ハードウェア」を橋渡ししてくれるので、アプリがスムーズに動作します。

3. 操作をカンタンにしてくれる

スマホやパソコンを触るとき、画面をスワイプしたり、アイコンをタップしたりして使いますよね。この直感的な操作を実現してくれているのもOSのおかげ。このような「画面操作の仕組み」をGUI(グラフィカルユーザーインターフェース)と言います。
ちなみに、昔のコンピュータは「CUI(キャラクターユーザーインターフェース)」で、コマンド文字を入力して操作していました。
GUIは「視覚的に操作できる」とても便利な仕組みを、OSが私たちに提供してくれているのです!

身近なOSの種類

身近に使われているOSには、いくつか種類があります。ざっくり例を挙げてみましょう。

◇ パソコンの場合

Windows世界で最も使われているOS。Microsoftが提供。
MacOSAppleのパソコンで使われるOS。デザイン性が特徴。
Linux自由にカスタマイズ可能なOS。技術者に人気。

◇ スマホの場合

iOSiPhoneで使われているOS。直感的でセキュリティも強い。
AndroidGoogle提供のOSでベースはLinux。カスタマイズ性が高く、多くのスマホで採用。

合わせて読みたい

OSが無かったらどうなる?

もしOSが無かったら……パソコンやスマホは、「ただの箱」になってしまいます!
例えば、アプリを直接動かしたいと思っても、アプリがパソコンやスマホの部品(CPUやメモリなど)と直接やり取りできないので何も起きません。
つまり、OSはパソコンやスマホを動かすための「エンジン」のような存在なんです。

OSは「翻訳家」!どういうこと?

アプリケーション(ソフトウェア)は、いわば「1つの言語」しか話せません。我々で言えば日本語しか話せないようなものです。一方で、プリンタやキーボード、カメラなどのデバイス(ハードウェア)をコントロールするためには、それぞれ違う「専門的な言語」が必要となります。このままだと、アプリはそれぞれのデバイスに合わせて全部違う言語を学ばなければなりません。これはとても大変ですよね。

ここで登場するのがOS(オペレーティングシステム)です!
OSはあらゆるデバイスの「言語」を理解し、それをアプリが分かる「単一の言語」に翻訳してくれます。そして逆に、アプリが発する「単一の言語」を、必要に応じて各デバイスが理解できる言葉に翻訳してくれる「翻訳家」のような存在でもあるのです。

翻訳家の役割を詳しく見る

◇アプリを助ける「デバイス翻訳」
例えば、アプリが「この文章を印刷してください」と命令を出したとします。しかし、プリンタにはいろいろなメーカーがあり、それぞれ異なる方法(ドライバやプロトコル)で命令を受け取ります。OSは、アプリから出された命令を各プリンタメーカーに合った「プリンタ専用の言語」に変換します。これのおかげで、アプリは全てのメーカーや機種に対応する必要がなく、コードもシンプルになります。

◇デバイス同士をつなぐ「架け橋」
たとえば、スマホで写真を撮って、そのままプリンタで印刷したいとします。この一連の操作も、実はOSが翻訳家のように裏で働いています。

  • カメラが撮影した画像データを、「保存」という形でメモリカードに伝達。
  • アプリがそのデータを取り出し、印刷命令をOSに送る。
  • OSがその命令をプリンタに伝え、画像データをプリンタ用の形式(デバイス言語)に変える。

これのおかげで、「撮影から印刷まで」がスムーズに行えるわけです。

OSがいないとどうなる?

翻訳家なしに、それぞれのデバイスやアプリが直接やり取りしようとしたら……どうなるでしょうか?

  • アプリ開発者は、対応する全てのデバイスのプロトコル(言語)を学び、それぞれに合わせたコードを書かなければなりません。
  • また、デバイスごとに命令の仕方が違うので、ユーザーも「このプリンタにはこのソフト、このキーボードにはこの設定」といった複雑な操作を覚えなければなりません。

これでは開発や使用が非常に難しくなり、パソコンやスマホがここまで普及することはなかったでしょう。

まとめ:翻訳家がいるおかげでスムーズな世界

OSは、アプリとデバイス、さらにはユーザーとの間で「翻訳家」として言語を統一し、スムーズにやり取りできる環境を作ります。おかげで、私たちはアプリの使用感や操作感を変えることなく、様々なメーカーのデバイスを利用することができるのです。
この翻訳家のような役割を担っているのが、まさにOSのすごいところ。「OS」がどれだけ重要なものか、少しイメージが湧いてきたのではないでしょうか?

関連情報

共通
プログラミングって、そもそもナニ?