スライドショー スライドショー スライドショー

OSとは何か?初心者向けに基本的な知識や種類をわかりやすく解説

こんにちは! インストラクターの佐野です。

OSってなに?

って思っている方は多いのではないでしょうか。調べて説明を読んでもわからない、理解ができない...そんな声を多くいただきます。そこで、今回は「OS」について徹底的に解説します。

いままでモヤモヤしていたものが、一気に解消されること間違いないでしょう!

OS(オペレーティングシステム)とは

さまざまなOSのロゴ

さまざまなOS

OSの定義

OSはハードウェアとソフトウェアを仲介する役割があります

画像:OSはハードウェアとソフトウェアを仲介する役割

OS(オペレーティングシステム)とは、コンピュータ全体を制御してユーザーが使いやすくするためのシステムです。もう少し具体的にいえば、OSは「ソフトウェアとハードウェアを仲介する」という重要な役割を担っています。

たとえばパソコンでドキュメントを作成する場合、メモ帳などの「ソフトウェア」を使いますよね。しかしドキュメントを保存するためには、ハードディスクなどの「ハードウェア」に記録しなければなりません。

そこで欠かせないのがOSです。作成したドキュメントは、OSがハードディスクに保存。そして保存したドキュメントを開いて閲覧できるのも、OSがハードディスクから読み込んでくれるためです。

キーボードを押すとメモ帳に文字が入力されるのも、実はOSがキーボードの操作内容をメモ帳に伝えてくれています。OSの存在があるからこそ、ユーザーはハードウェアを意識することなくソフトウェアを使えるのです。

OSが制御するのは「コンピュータ」だと表現しましたが、コンピュータとは「情報処理を高速かつ大量に行える機械」を指します。よってパソコンに限らず、スマートフォンを制御している「iOS」や「Android」も、OSの一種です。

OSはアプリ開発になくてはならないもの

OSは、普段私たちが「当たり前だと思う機能」を提供してくれています。たとえば、

  • キーボードから文字を入力すると、入力した文字が画面に表示される
  • マウス・タッチパッドなどを操作すると、操作した位置がわかる
  • イヤフォンを指すと、イヤフォンから音が聞こえる


などの機能です。「そんなのパソコンだから当たり前でしょ?」と思われるでしょう。

しかし、これらの基本的な機能はパソコンの機能ではなく、OSによって実現されている機能なのです。ちなみに、OSによって実現されている機能は、アプリケーション開発者があらためて作成する必要がありません

OSを理解するための3つのポイント

OSを理解するための3つのポイント

画像:OSを理解するポイント

OSを理解するうえで重要なポイントは、以下の3点です。

  • OSとアプリの役割分担を理解する
  • 開発に必要なキーワードを理解する
  • 複数のOSの使い方を理解する


それぞれ順番に解説していきます。

OSとアプリの役割分担を理解する

OSは「コンピューターの仕組み」といえるほど、コンピューターの土台を支えているソフトウェアです。OSを知ることはコンピューターの仕組みを知ることでもあり、プログラミングのポイントを知ることにつながります。

プログラミングを進めていくと、事細かにプログラムを書いていないのに、他のアプリケーションと同様に動作することがでてきます。それはほとんどの場合、「OS」が提供する機能を利用しているのです。

アプリケーションを開発するときはOSについてしっかりと理解しておくことで、必要以上に悩まずスムーズに開発できるなど、様々なメリットがあるでしょう。逆に、OSの仕組みや動作が理解できていないと、

  • プログラムが理解できない
  • 実装方法がわからない
  • バグの原因になる


などの影響が出ることがあります。OSの仕組みや動作をしっかりと理解し、OSの動きを考えたコードを書くことで高品質なアプリケーションをスムーズに作れるようになるでしょう。

開発に必要なキーワードを理解する

開発に必要なキーワードを理解する

画像:キーワードを理解することでスムーズに開発できる

ドキュメントの管理に使われる「ファイル」や「フォルダ」という言葉は、パソコンを使ったことがある方なら一度は耳にしますよね。これらのキーワードは、プログラミングをする際には当然ながら知っていなければいけません。

しかしボタンをクリックしたときに、OSからプログラムに「メッセージ」が送信されることは知らない方も多いのではないでしょうか。このようなキーワードを数多く知っておくことで、プログラミングがスムーズになるでしょう。

またOS自体も、プログラミング言語で作られているのです。こちらの記事では、弊社インストラクターと共に初心者向けのプログラミング言語を一挙に解説しています。ぜひ参考にしてくださいね。

プログラミング言語おすすめランキング!初心者向けにわかりやすく解説
更新日 : 2021年9月20日

プログラミングを学ぶには

OSはC言語など、初心者が学ぶには難易度が高いプログラミング言語で作られています。

プログラミングを学習して、OSやコンピュータの理解を深めたい!

という方もいるのではないでしょうか。

このような方は、ぜひ弊社「侍エンジニア」の無料カウンセリングをご利用ください。専属コンサルタントが、あなたに最適な学習プランや言語選定を提案いたします。実際にIT業界に精通しているコンサルタントと話すことでOSについての理解も深まるはずです。どうぞお気軽にお越しください。

「無料カウンセリングの詳細はこちら」

複数のOSの使い方を理解する

詳しくは後述しますがOSにはさまざまな種類が存在し、使うOSによって開発できるプログラムも変わってきます。たとえば、iOSアプリを作るためには「Mac OS」でなければ開発できません。

さまざまなOSについて理解し習得することで、より幅広い開発を行えるようになるのは大きなメリットです。しかし、複数のOSを使うためにパソコンを複数台用意するのでは、かなりコストがかかってしまいますよね。

そこで、複数のOSを使う際には「VirtualBox」の使用がおすすめ。「VirtualBox」はパソコン内に仮想環境を構築して、他のOSを仮想的に使えるソフトです。

「VirtualBox」を導入することにより、たとえばMac環境でWindowsやLinuxなど複数のOSを切り替えて使用できます。VirtualBoxについて詳しく知りたい方は、こちらの記事を参考にしてください。

いまさら聞けない!Virtualboxとは何か?基礎の基礎を解説!
更新日 : 2019年10月16日

OSの主な6つの種類

※「OS X」は「Mac OS」を意味します。

OSには様々な種類があり、世界中の人がパソコンやスマートフォンを通して日々利用しています。Web分析サイト大手の「StatCounter」が調査している、世界のOSシェアはグラフのとおりです。

パソコンのOSではWindows、スマートフォンのOSではAndroidが高いシェアを誇っていると分かります。しかし、それぞれのOSにはメリットもデメリットもあるため、シェアだけでOSを選ぶのはおすすめしません

たとえばLinuxはOSシェアこそ高くありませんが、パフォーマンスが良いためサーバーとして使っている企業も多いのです。この章では、知っておきたい代表的なOSを6種類ご紹介します。

Windows

os-win

画像:Windows

「Windows」はMicrosoft社が開発したOSで、パソコンで使われるOSの中ではトップシェアを誇っています。グラフィック関連の機能が充実しており、マウスやキーボードを使ったGUI操作がしやすいのがメリット。

■特徴

  • GUI機能が充実しており、操作性が高い
  • ユーザーが多いので、使えるソフトウェアも多い
  • セキュリティには注意が必要


ユーザーが非常に多いので、パソコン用のソフトウェアを開発するとしたら大抵はWindowsに対応させるでしょう。そのため、使用できるソフトウェアが豊富な点も魅力のひとつです。

その一方で、ユーザーが多いゆえにウイルスなどの脅威も広まりやすいという側面があります。Windowsを使用する際は、セキュリティリスクにも十分注意しましょう。

Mac OS

画像:Mac OS

「Mac OS」はApple社が開発したOSで、パソコンで使われるOSの中ではWindowsに次ぐシェアの高さです。表計算ツールなどの便利なアプリが最初から入っているため、OSさえ導入してしまえば色々な作業ができます

■特徴

  • 便利な付属アプリが多い
  • Apple社製品との相性が良い
  • 導入コストは高め


Apple社製品との相性が良く、オフラインで別Apple端末とのデータ転送も可能。前述のとおりMac OSがあれば、iPhoneアプリも開発できます。

ただし、Windowsに比べて導入コストは高めなのがデメリットです。とはいえOSのアップグレードは基本的に無料なので、初期コストを気にしない方であればMac OSを選ぶ手もあるでしょう。

Linux

OS-Linux

画像:Linux

「Linux」は、フィンランド人のリーナス・トーバルズ氏が開発したパソコン向けOS。オープンソース(ソースが公開されている)のため、無料でインストールできるのが大きな特徴です。

■特徴

  • 無料でインストールできる
  • 独自のカスタマイズも可能
  • GUI機能はあまり充実していない


またソースが公開されているため、自分で使いやすいようにカスタマイズできるのもメリットです。その反面GUI機能はあまり充実していないため、WindowsやMacのようなマウスを使った操作がしづらいデメリットがあります。

しかし裏を返せば、グラフィック関連の処理負荷が少ない分、軽い動作で使えるという側面も。そのためLinuxは、動作の安定性が求められるWebサーバーとして良く使われています。

なおLinuxを導入する際には、「CentOS」などの使いやすくカスタマイズされた「ディストリビューション」がおすすめです。以下の記事ではディストリビューションについて詳しく解説しているので、ぜひご覧くださいね。

【Linux】ディストリビューションとは何か?
更新日 : 2020年6月24日

Chrome OS

Chrome OS

画像:Chrome OS

「Chrome OS」は、Google社が前述のLinuxをベースに開発したパソコン向けOS。Linuxの弱点であるGUI機能を補強しているのが最大の特徴で、マウスを使った操作も簡単にできます。

■特徴

  • LinuxにGUI機能がプラスされている
  • アプリをインストールせずに色々な機能が使える
  • オフラインでは使いづらい

また、Chrome OSの場合はWebブラウザの「Google Chrome」上でさまざまな機能を使えます。そのためWindowsなどのOSと違い、多くのアプリをインストールする必要がないのもメリットです。

その一方でWebに依存することとなるため、オフラインではできる作業が限られるデメリットがあります。とはいえChrome OSは「Chromebook」というパソコンを購入するだけで使えるため、比較的安価なので試してみる価値はあるでしょう。

Android

os-android

画像:Android

「Android」はGoogle社が開発した、携帯端末向けのOSです。パソコン向けOSを除けばトップシェアを誇っており、比較的安価なわりに幅広い機能を使えるため高い人気があります。

■特徴

  • 比較的安価で高機能
  • ダウンロードできるアプリが豊富
  • 有害なアプリには注意が必要


Androidユーザーはとても多いので、スマホアプリを開発するならAndroidに対応させることが多いでしょう。そのためAndroidの場合は、多くのアプリから選んで使えるのもメリットです。

その反面、Android用アプリを配信するGoogle Playでは、後述のiOSほどアプリを厳しく監視していません。出回っているアプリが多いことも相まって、有害なアプリに遭遇することもあり得るので注意が必要です。

iOS

「iOS」はApple社が開発した携帯端末向けOSで、Androidに次ぐシェアの高さを持つ人気のOS。スマートフォンの「iPhone」が有名ですが、「iPod touch」などのApple社製品には基本的にこのiOSが搭載されています。

■特徴

  • シンプルで使いやすい
  • ダウンロードできるアプリの安全性が高い
  • 導入コストは高め


iOSはアイコンや操作方法がシンプルで、使いやすいのが魅力のひとつです。国内シェアはAndroidに引けを取らないほど高いので、iOSの情報を探すのに困ることはないでしょう。

また、iOS用アプリを配信するApp Storeではかなり厳しい審査が行われているので、アプリの安全性が高いこともメリットです。ただし、iOSを搭載した製品は比較的高価なものが多いので、コスト面ではAndroidに軍配が上がります。

OSの主な4つの機能

OSの主な4つの機能

画像:OSには4つの機能がある

最後に、プログラミングの際にも関係がありますので、OSの機能を整理しておきましょう。

入出力の制御

OSは外部入力を認識してソフトウェアに伝えることができる

画像:OSは外部入力を認識してソフトウェアに伝えることができる

キーボード操作マウス操作については、OSは「どのキーを押したか」「マウスをどのくらい動かしたか」「マウスの左ボタンを押したか」などを管理しています。

アプリケーション開発者は、OSから「何が入力されたか」「マウスポインタがどこにあるか」「画面上のどのUIをクリックしたか」を受け取ったり、アプリケーションからOSに問い合わせたりして必要な処理を作成していきます。

また、画面表示についても見てみましょう。画面表示もOSの機能ですので、アプリケーション開発者は、OSから画面を描画するための何か(Windowsの場合はウィンドウハンドルとかデバイスコンテキストと呼ばれます)を借りて、様々なものを描画するという流れになります。

タスク管理

タスク管理

画像:OSはタスク管理も行っている

最近のOSでは、アプリケーションを同時に2つも3つも起動できることが一般的になりました。アプリケーションの起動や終了、アプリケーションの切り替えは、OSが管理しています。

OSは、アプリケーションの起動や終了、切り替えが起きたことを「メッセージ」でアプリケーションに通知しますので、アプリケーション開発者は通知されたときの処理を作成することになります。

ファイル管理

OSはファイルの管理もできます

画像:OSはファイルの管理も可能

ファイルに名前を付けたり、ファイルの内容を読んだり、ファイルに書き込んだりといった機能も、OSが管理しています。したがって、ファイル管理についても、OSの機能を利用して行う必要があります。

ただ、前述の「入出力の制御」や「タスク管理」とは異なり、ファイル管理はプログラミングにおいては基本的な機能です。そのため、プログラミング言語がファイル管理を行うための機能を提供しているケースがほとんど。OSの機能であることを意識しなくても、スムーズに開発できるようになっています。

もちろん、プログラミング言語の機能だけでは不足する場合もありますので、OSの機能を利用してファイル管理を行う場合もあるでしょう。

ネットワーク通信

他のコンピュータとやり取りをするネットワーク通信にも、OSの機能が使われています。ネットワーク通信にはプロトコル(ルール)が決められており、最も一般的なのは「TCP/IP」と呼ばれるものです。

TCP/IP通信では、手紙でいうところの「郵便受け」に相当する「ソケット」が欠かせません。コンピュータ間でのやり取りは、相手のソケットに向けてデータを送り合うことで行われます。

ただしネットワーク上のコンピュータは無数に存在するので、「IPアドレス」と呼ばれるネットワーク上の「住所」により相手の宛先を特定します。このようなソケットの管理やデータの送受信を行うのも、OSの役割です。

またWebサイトを閲覧する際にもネットワーク通信が行われており、「HTTPS」と呼ばれる通信プロトコルが一般的です。HTTPS通信では、Web利用者のパソコンからWebサーバーへとWebページの表示要求を送信します。

そして、Webサーバーから返信されたWebページのデータをWebブラウザに表示することで、Web利用者が閲覧できるのです。HTTPS通信を利用したWebサーバーとのやり取りも、OSが行っています。

OSについてもっと知りたいなら

OSについてもっと知りたいなら

画像:もっと知りたくなったら無料カウンセリングがおすすめ

OSってなに?

という疑問にお答えしました。

OSが様々な機能を提供していることと、アプリケーションはOSの機能を利用しながら動作していることを理解していただけたでしょうか? OSの知識は、プログラミングだけでなく広くIT分野で生かせます。ぜひ身につけておきましょう!

また、独学でプログラミング学習を行なっていて、OSの理解を深めアプリなどの開発に結びつけたいなら、弊社「侍エンジニア」の無料カウンセリングを受けてみてください。

弊社では現役生徒500名以上が在籍し、未経験から転職・フリーランスへ多くの卒業生を輩出しておいます。無料カウンセリングでは、プログラミングやIT業界に精通したコンサルタントが、あなたの目標を最短で実現するための学習プランを提案いたします。

下記のカレンダーより空いているお日にちを選んでお気軽にお越しください。全力でサポートいたします。

Writer

侍エンジニア編集部

株式会社SAMURAI

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら