MENU

YouTube

「YouTube」始めました!
、だからさらに・・・分かる!

プロフィール

よし

「IT」をこよなく愛する大手メーカーの現役エンジニア
IT技術を独自の視点で、初心者の方にもわかりやすく解説します!


\Follow me/
YouTube始めました!

オペレーティングシステムとは? OSが必要な理由

オペレーティングシステムとは?

どうも、みなさんこんにちは、よしです。

この記事では、「オペレーティングシステムとは?」「OSとは?」について解説します。

「なぜオペレーティングシステムが必要なのか?」
「オペレーティングシステムは具体的に何をしているのか?」
そんな疑問に答えながら、「オペレーティングシステムとは?」、「OSとは?」について、初心者の方にもわかりやすく解説していきます。

ほな、いきましょう!



よし

「YouTube」で動画解説もしています!

オペレーティングシステムは共有物の管理者

スマートフォン内のアプリケーションの数

皆さんは、スマートフォンにアプリケーションをいくつインストールしていますか?音楽アプリや動画アプリ、メッセージアプリや地図アプリなど、沢山のアプリケーションをインストールして使用していることでしょう。

アプリケーションはハードウェアを使用して機能を提供

これらアプリケーションは、タッチスクリーンやディスプレイ、スピーカーなどのハードウェアを使用してユーザーに機能を提供しています。

アプリケーションとは? アプリケーションとは? アプリはなぜアプリと呼ばれるのか?

例えば、メッセージアプリは、スピーカーからメッセージ受信音を鳴らし、タッチスクリーンからの文字の入力を受け付け、ディスプレイにメッセージや写真を表示することで実現されています。

ハードウェアの使用完了待ち

しかし、パソコンやスマートフォンにはそれらハードウェアは基本的に一つしか備わっていません。そのため、例えば、あるアプリケーションがスピーカーを使用している場合、他のアプリケーションはそのスピーカーが空きになるまで使用することはできません。

このように、一つしか無い物を複数人で使用する場合、秩序が乱れないように共有物の使用時間や順番を「管理者」を立てて管理することでしょう。

この管理者がオペレーティングシステムです。

オペレーティングシステムとは?

オペレーティングシステムの定義

「オペレーティングシステム」略して「OS: Operating System」とは、アプリケーションに対してハードウェアの使用管理などを行うソフトウェアです。

オペレーティングがアプリケーションのハードウェア使用可否を決める

あるアプリケーションがスピーカーを使用する場合、「今からスピーカーを使っていい?」とオペレーティングシステムに尋ねます。するとオペレーティングシステムは、「使っていいよ」とか「別のアプリケーションが使っているからもう少し待って」と、ハードウェアの使用を管理します。

オペレーティングシステムは交通整備の状況と似ている

まさに、警察官が旗を振りながら交通整備を行っている様子に似ています。このように、オペレーティングシステムのおかげで、共有物であるハードウェアを一つのアプリケーションが占有することなく平等に使用できるのです。

オペレーティングシステムの役割

オペレーティングシステムの役割概要

オペレーティングシステムの仕事は警察の仕事に似ています。悪いことをするアプリケーションを捕まえ、困っているアプリケーションを助けてくれる、コンピューターには欠かせない存在です。

オペレーティングシステムは主に3つの役割を果たします。

  • アプリケーションがハードウェアを共有することを可能にする(占有するのを取り締まる)
  • アプリケーションが他のアプリケーションのデータを盗み取る、壊すことを防止する
  • アプリケーションがハードウェアを簡単に使用できるようにする(ハードウェアに依存した処理を隠蔽化する)

これらを簡略化して説明しましょう。

OSの役割 ハードウェアの占有を防止

こちらは、先ほど例に挙げた、一つしかないハードウェアを共有できるように管理する仕組みです。言い換えると、オペレーティングシステムは、一つのアプリケーションがハードウェアを独占しないように取り締まっています。これは、

  • オペレーティングシステムがハードウェアの使用権を管理すること
  • オペレーティングシステムはハードウェアの使用可能時間を小分けにして、各アプリケーションへ公平に割り当てること

で実現しています。

アプリケーションがハードウェアを直接的に制御できるようにしてしまうと、一つのアプリケーションがハードウェアを使い続けてしまう可能性が出てきます。

オペレーティングシステムの役割(ハードウェアの占有を防止)

そのため、オペレーティングシステムがハードウェアの使用権を管理し、例えば、「まずはアプリAが使ってください。」「はい、終了時間が来たのでアプリAは使用をやめてください。次はアプリBが使ってください。」と使用時間を管理しています。

これを「スケジューリング」と呼びます。

このように、オペレーティングシステムはアプリケーションがハードウェアを使用できる順番をスケジューリングすることで、一つのアプリケーションがハードウェアを占有することを取り締まっています。

OSの役割 データの盗聴・破壊を防止

アプリケーションは自分が処理しているデータをメモリに保存しながら動作しています。例えば、テキストエディタで文書を書いている際、「戻る」ボタンで編集前の状態に戻すことができるのは、タイピングした過去の文書をアプリケーションがメモリに保存しているからです。

メモリとストレージの違い メモリとストレージの違い どちらも記憶装置、でも○○が違う!

メモリアドレスとは?

メモリにデータを読み書きするには、「アドレス」と呼ばれる場所を特定する値を使用します。メモリをノートに例えると、「どのページのどの行か」がアドレスにあたります。

オペレーティングシステムはアプリケーションごとにメモリを分離

さて、オペレーティングシステムはアプリA、アプリBそれぞれに専用のノートを与えます。このノートはオペレーティングシステムが管理している大きなノート、つまり、メモリの一部を、アプリA、アプリBに「専用のノートだよ!」と言って与えたものです。アプリAに与えたページとアプリBに与えたページは異なります。

そのため、オペレーティングシステムはアプリAが書き込んだ内容もアプリBが書き込んだ内容も読み取ることができますが、アプリAやアプリBからは自分に与えられた専用ノートしか見えません。

オペレーティングシステムの役割(データの盗聴・破壊を防止)

つまり、アプリAがどのページにデータを書き込んでも、別物であるアプリBのノートを上書きすることはありません。また、アプリAがアプリBのノートを覗き見することもできません。

仮想アドレスと物理アドレス

アプリA、アプリBそれぞれ専用に与えられたメモリのアドレスを「仮想アドレス」とよび、オペレーティングシステムが管理しているメモリのアドレスを「物理アドレス」とよびます。

仮想アドレスと物理アドレスの変換テーブル

オペレーティングシステムはアプリAの仮想アドレスXへのアクセスは物理アドレスではYだと、アドレスを変換して実際のメモリにデータを読み書きしています。

このようにして、オペレーティングシステムは、あるアプリケーションが別のアプリケーションのデータを盗み取ったり、破壊したりすることを防いでます。

よし

実際には一つしかないメモリやCPUなどのハードウェアを、複数あるかのように見せかけるソフトウェア技術のことを、ITの世界では「仮想化」と呼びます。

オペレーティングシステムが共有物であるメモリを仮想化してくれるおかげで、アプリケーションからは自分専用のメモリに見えるのです。

OSの役割 ハードウェアの使用を簡単化

アプリケーションからのハードウェアアクセス

通常、ハードウェアを操作するには複雑な手順を踏む必要があります。そして、あるアプリケーションがスピーカーというハードウェアから音を鳴らそうとする場合、その複雑な手順をアプリケーションごとに実装していては非常に効率が悪くなります。

オペレーティングシステムの役割(ハードウェアの使用を簡単化)

この問題を解決するために、オペレーティングシステムがハードウェアを操作する処理を一元管理し、効率化を図っています。

デバイスドライバーとは?

また、スピーカーにも色々な種類があり、そのハードウェアの操作はハードウェアのメーカーごとに異なってる場合がほとんどです。この操作の差異は「デバイスドライバー」と呼ぶオペレーティングシステムの一部であるソフトウェアが対処しています。

そのおかげで、アプリケーションは「この音を鳴らしてください」とオペレーティングシステムに依頼するだけで、スピーカーから音を出力することができます。

このように、オペレーティングシステムはハードウェアに依存した処理を隠蔽化し、アプリケーションがハードウェアを簡単に使用できるようにしています。

よし

この例の場合、厳密にはアプリケーションはどちらのデバイスドライバーへ仕事を依頼するのかを区別する必要があります。この状況を回避するために、アプリケーションはさらに「ミドルウェア」と呼ぶソフトウェアを介してオペレーティングシステムへアクセスすることが一般的です。

ミドルウェアとは、アプリケーションとオペレーティングシステムの間に入り、アプリケーションがアクセスしやすいように、オペレーティングシステムの機能を隠蔽化しているソフトウェアです。

オペレーティングシステムの種類

オペレーティングシステムが搭載される様々な機器

オペレーティングシステムには、いくつかの種類が存在します。その理由は、使用用途や目的によってコンピューターに求められる優先事項がそれぞれ異なり、それに応じたオペレーティングシステムが開発されてきたためです。

オペレーティングシステムは大きく次の4つに分類できます。

  • パソコンOS:Windows・macOSなど
  • サーバーOS:RHEL・CentOSなど
  • スマートフォンOS:Android・iOSなど
  • 組み込みOS:ITRONなど

これらオペレーティングシステムを、優先事項という観点から、比較してみましょう。

パソコンOS

デスクトップ向けOS

デスクトップパソコンやノートパソコンに使用されるオペレーティングシステムとしては、マイクロソフトの「Windows」やアップルの「macOS」が有名です。パソコン向けOSに求められる優先事項はユーザーの使い勝手です。

ディレクトリやファイルをクリック操作

ファイルのアイコンをクリックすればファイルが開き、戻るボタンを押せばページが戻るのはご存知でしょう。

本来であれば、これら操作を実現するには難しい命令文をオペレーティングシステムへ伝える必要があります。しかし、パソコン向けのオペレーティングシステムでは、そのような命令文をユーザーへ要求することはありません。

代わりに視覚的なアイコンやボタンを表示し、クリック一つであらゆる操作を可能とすることで、ユーザーの使い勝手を向上しています。

このように、パソコン向けのオペレーティングシステムは、使い勝手を優先した設計となっています。

GUI

ところで、アイコンやボタンなどを用いて視覚的かつ直感的にオペレーティングシステムに処理を依頼することができるようにしたインターフェース「GUI: Graphical User Interface」と呼びます。

「インターフェース(I/F: Interface) 」とは、ある物とある物の接点を指します。この文脈では、ユーザーとオペレーティングシステムとの接点を意味します。

サーバーOS

サーバー向けOS

サーバーに使用されるオペレーティングシステムとしては、「RHEL: Red Hat Enterprise Linux」や「CentOS」などがあります。サーバー向けOSに求められる優先事項は処理速度です。

 Webサーバー

「サーバー」とは、特定の機能を提供するコンピューターです。

例えば、検索画面で検索結果をクリックしてアクセスすると、アクセスしたページが表示されます。これは、アクセスされた時に自分のページをアクセス元へ届けるという特定の機能を持ったコンピューターがあるからです。このような役割を持つサーバーを特に、「Webサーバー」と呼びます。

Webサーバは同時アクセスに応答できる必要がある

Webサーバーは、沢山のパソコンやスマホから同時にアクセスされても、素早く自分のホームページをアクセス元へ届けてあげる必要があります。

Webサーバーは自分のページを届けることが仕事であって、そのサーバー(コンピューター)自体でドキュメントを作成したりすることはないでしょう。そのため、デスクトップ向けオペレーティングシステムに備わっているGUIは不要であり、そういった機能を削ることで素早く動けるようにしています。

このように、サーバー向けのオペレーティングシステムは、処理速度を優先した設計となっています。

スマートフォンOS

スマートフォン向けOS

スマートフォンに使用されるオペレーティングシステムとしては、「Android」や「iOS」が有名です。スマートフォン向けOSに求められる優先事項は消費電力、つまり、駆動時間です。

スマートフォンの消費電力を抑えてバッテリを長持ち

スマートフォンやタブレットは主に持ち運んで使用するため、パソコンやサーバーとは異なり、スマホを電源に接続しながら使用することは少ないでしょう。そのため、消費電力を極力抑え、一回の充電でできるだけ長く使用できることが望まれます。

また、パソコンと違い画面サイズが限られているため、たくさんのウインドウを同時に開く必要はありません。基本的には、最前面に表示されているアプリケーション以外は、休憩することで消費電力を抑えることができます。

このように、スマートフォン向けのオペレーティングシステムは、消費電力を抑えることを優先した設計となっています。

組み込みOS

組み込み向けOS

組み込み機器に使用されるオペレーティングシステムとしては、「ITRON」などがあります。組み込みOSに求められる優先事項は、性能の低いコンピューターでも動作することです。

特定の機能を提供する機器

「組み込み機器」とは、電子レンジや炊飯器などのように、特定の機能のみを提供する機器を指します。

例えば、炊飯器はご飯を炊くことに特化した組み込み機器と言えます。一般的に、組み込み機器には、その機能を提供するのに必要最小限なハードウェアのみが搭載され、パソコンのような汎用性を持ちません。炊飯器はインターネットに接続することもなければ、ディスプレイに映像を出力することもないからです。また、最終製品の価格を抑えるという目的もあります。

炊飯器のような組み込み機器

そのため、CPUやメモリも、性能の低いものが使用されるのが一般的です。そういった環境においても、オペレーティングシステムとしての役割を果たす必要があります。

このように、組み込み機器向けのオペレーティングシステムは、性能の低いコンピューターでも動作することを優先した設計となっています。


ストップウォッチ

他にも、組み込み機器向けのオペレーティングシステムには、他のオペレーティングシステムに比べて優先している事項があります。それは、「ある処理を開始するまでの時間の最悪値を保証する」設計となっていることです。

簡単に言うと、「ある事象が発生した場合、必ず決まった時間内に応答できること」を保証しています。これを「リアルタイム性」と呼びます。

リアルタイム性とは?

リアルタイム性が求められる制御として頻繁に例に挙がるのがエアバッグです。車が衝突した場合、エアバッグを即座に開く必要があります。必ずある時間内に応答できることが保証されていなければなりません。

このように、組み込み機器向けのオペレーティングシステムの中でも、特にリアルタイム性を実現するオペレーティングシステムを、「リアルタイムオペレーティングシステム(RTOS:Real Time Operating System)」と呼びます。

よし

エアバッグは、「たまに応答が遅れる場合があります」という設計は、人命に関わるため絶対に許されません。そういった場面で、組み込みOSが使用されます。

オペレーティングシステムのマーケットシェア

ここから、オペレーティングシステムのグローバルでのマーケットシェアをもとに、どの種類のオペレーティングシステムが多く利用されているのか、その内訳は時代とともにどう推移してきたのかを見てみましょう。

2010年時点でのOSマーケットシェア

2010年のOSマーケットシェア

2010年の年始時点で、Windowsが全世界で使用されているオペレーティングシステムのマーケットシェアの約9割以上を占めていることがわかります。

当時、パソコンと言えば会社、個人共にマイクロソフトのWindowsを搭載したパソコンがほとんどで、AppleのMacを所用している人はごく少数という状況でした。

また、スマートフォンのiPhone 3Gが発売されたのが2008年後半でしたので、この当時はスマートフォンを使用している人はほとんどおらず、スマートフォン向けオペレーティングシステムのシェアはほとんどありません。

2020年時点でのOSマーケットシェア

2020年のOSマーケットシェア

次に、10年後に当たる2020年のシェアを見てみましょう。2020年の年始時点で、AndroidがWindowsを抜き全世界で最も使用されているオペレーティングシステムに躍り出たことが伺えます。そのマーケットシェアは約4割を占めています。

スマートフォン向けOSであるAndroidとiOSの合計シェアは50%を超えていることから、パソコンに比べてスマートフォンやタブレットが、この10年で急速に普及したことが伺えます。

よし

Androidのシェアが高い理由は、Androidの開発元であるGoogleの戦略にあります。

GoogleはAndroid OSを「オープンソース」として公開しており、他社が自社製品のOSにAndroidを搭載することを許可しています。そのため、オペレーティンシステムの開発費を削減しようと、多くの企業がスマートフォンやタブレットのOSにAndroidを採用しています。

出典:StatCounter https://gs.statcounter.com/os-market-share

オペレーティングシステムの考察

ここでは、オペレーティングシステムについて、別の視点から掘り下げて考えてみましょう。

オペレーティングシステムは必ず必要か?

オペレーティングシステムのイメージ図

ところで、オペレーティングシステムは必ず必要なのでしょうか?これまでの説明を要約すると、オペレーティングシステムとは、「コンピューターの治安を維持する警察官」と喩えることができます。

住人が増えれば秩序を保つ仕組みが必要

人間界と同様に、アプリケーションという住人が増えると、治安や秩序を保つ仕組みが必ず必要になります。現在のコンピューターは非常に多機能であり、また第三者が作成したアプリケーションをインストールすることが一般的でしょう。そのため、オペレーティングシステムは、ほとんどのコンピューターで必要なソフトウェアと言えます。

但し、オペレーティングシステムを用いない機器も存在します。単機能で第三者のアプリケーションをインストールすることがないような小規模な機器などがそれに当たります。人間界でも、もし仮に住人が親しい知り合いのみで構成されるのであれば、警察官は不要でしょう。

なぜ各社がオペレーティングシステムを開発するのか?

GoogleのAndroidとAppleのiOS

次に、GoogleがAndroidを、AppleがiOSやmacOSといったオペレーティングシステムを開発する理由について考えます。

これまで説明してきたように、スマートフォンに代表される現代のコンピューターにはオペレーティングシステムは必須です。

OSの高度化

しかし、オペレーティングシステムに求められる要求は年々高度化、複雑化しており、誰もが容易に開発できるソフトウェアではなくなりつつあります。だからこそ、オペレーティングシステムを所有することは他社に比べて競争優位となったわけです。

アプリケーションはオペレーティングシステムのサポートを受けて動作し、オペレーティングシステムに依存しています。

アプリケーションとは? アプリケーションとは? アプリはなぜアプリと呼ばれるのか?

アプリケーションの動作にオペレーティングシステムが必要

そのため、例えば、ある企業がスマートフォン向けのアプリケーションを開発しようとした場合、必ずAndroidかiOSに頼らなければなりません。

このように、あるモノを動作させるのに必ず必要となる土台「プラットフォーム」と呼びます。「アプリケーションはAndroidやiOSなどのプラットフォームの上で動作している」と表現することができます。

OS開発のビジネスモデル

そして、アプリケーションを開発する企業が、そのアプリをユーザーへ有償で提供する場合やアプリ内で課金をする場合など、その売上の一定額をGoogleやAppleへ収める決まりになっています。

つまり、他社の開発したアプリケーションが売れれば、オペレーティングシステムの開発元であるGoogleやAppleにもお金が入るビジネスモデルなのです。

よし

2020年代の前半は、オペレーティングシステムに代表されるプラットフォームのシェアを握った企業、例えば、GoogleやApple、FacebookやAmazonやMicrosoftがIT業界の覇権を握ったと言えるでしょう。

まとめ

最後に、振り返りながらここまでの内容をまとめていきます。

オペレーティングシステムの役割を紐解きながら、「オペレーティングシステムとは?」、「OSとは?」について解説してきました。

まとめ

オペレーティングシステムの主な役割は、

  • アプリケーションがハードウェアを占有するのを取り締まること
  • アプリケーションが他のアプリケーションのデータを盗み取る、壊すことを防止すること
  • アプリケーションがハードウェアを簡単に使用できるようにすること

でした。

また、オペレーティングシステムには、

  • 使用用途に応じたいくつかの種類が存在すること
  • 2020年時点でスマートフォン向けOSがマーケットシェアの50%以上を占めていること

を説明しました。

そして、

  • オペレーティングシステムは必ず必要か?
  • なぜ各社がオペレーティングシステムを開発するのか?

について考察しました。


ということで、今回は以上になります。

よし

ここまで、記事をお読み下さり、ありがとうございました。

「YouTube」で動画解説もしていますので、質問のある方はコメント欄へお気軽にメッセージください!

ほなね!