MENU

YouTube

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

プロフィール

よし

IT/情報技術を独自の視点で噛み砕いて可視化し、初心者の方にもわかりやすく解説していきます!


\Follow me/
サイト新規開設!

オペレーティングシステムとは? 〜OSが果たす3つの役割〜

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

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

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

オペレーティングシステムにはWindowsやmacOSなどの種類があるのはご存知かもしれません。しかし、「オペレーティングシステムは具体的に何をしているのか?」「なぜオペレーティングシステムが必要なのか?」を説明できる方は、意外と少ないように思います。そんな疑問に答えながら、「オペレーティングシステムとは?」、「OSとは?」について、初心者の方にも分かりやすく解説していきたいと思います。

ほな、いきましょう!

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

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

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

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

これらアプリケーションは、タッチスクリーンやディスプレイ、スピーカーなどのハードウェアを使用してユーザーに機能を提供しています。例えば、メッセージアプリは、スピーカからメッセージ受信音を鳴らし、タッチスクリーンからの文字の入力を受け付け、ディスプレイにメッセージや写真を表示することで実現されています。

アプリケーションとは? アプリケーションとは? ~価値を生み出すソフトウェア~ 順番待ち

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

このように、一つしか無い物を複数の人が使用しようとする場合、秩序が乱れないように管理者を立て、その人が共有物の使用時間や順番を管理することでしょう。その管理者がオペレーティングシステムです。

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

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

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

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

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

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

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

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

オペレーティングシステムはアプリケーションを停止させたり助けたりする

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

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

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

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

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

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

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

で実現しています。

ハードウェアの使用可否を決める

アプリケーションがハードウェアを直接的に制御できるようにしてしまうと、一つのアプリケーションがハードウェアを使い続けてしまう可能性が出てきます。そのため、オペレーティングシステムがハードウェアの使用権を管理し、例えば、「まずはアプリAが使ってください。」「はい、終了時間が来たのでアプリAは使用をやめてください。次はアプリBが使ってください。」と使用時間を管理しています。これを「スケジューリング」と呼びます。

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

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

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

メモリとストレージの違い メモリとストレージの違い ~どちらも記憶装置、でも○○が違う!~ アプリケーションはメモリを使用

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

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

さて、オペレーティングシステムはアプリAにもアプリBにもそれぞれ専用のノートを与えます。このノートはオペレーティングが管理している大きなノート、つまり、メモリの一部を、アプリA、アプリBそれぞれに「専用のノートだよ!」と言って与えたものです。ノートに例えると、アプリAに与えたページとアプリBに与えたページは異なります。そのため、オペレーティングシステムはアプリAが書き込んだ内容もアプリBが書き込んだ内容も読み取ることができますが、アプリAやアプリBからは自分に与えられた専用ノートしか見えません。そのため、例えば、アプリAがどのページにデータを書き込んでも、別物であるアプリBのノートを上書きすることはありません。また、アプリAがアプリBのノートを覗き見することもできません。

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

アプリA、アプリBそれぞれ専用に与えられたメモリのアドレスを「仮想アドレス」とよび、オペレーティングシステムが管理しているメモリのアドレスを「物理アドレス」とよびます。オペレーティングシステムはアプリAの仮想アドレスXへのアクセスは物理アドレスではYだと、アドレスを変換して実際のメモリにデータを読み書きしています。

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

よし

実際には一つしかないメモリやCPUなどのハードウェアを、複数あるかのようにに見せかけるソフトウェア技術のことを、ITの世界では「仮想化」と呼びます。オペレーティングシステムが共有物であるメモリを仮想化してくれるおかげで、アプリケーションからは自分専用のメモリに見えのです。

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

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

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

オペレーティングシステムがハードウェアの処理を一元管理

この問題を解決するために、オペレーティングシステムがハードウェアを操作する処理を一元管理しています。そのおかげで、アプリケーションは「この音を鳴らしてください」とオペレーティングシステムに依頼するだけで、スピーカーから音を出力を表示することができます。

デバイスドライバがメーカの差異を吸収

スピーカーにも色々な種類のスピーカーがあり、そのハードウェアの操作はハードウェアのメーカーごとに異なってる場合がほとんどです。そして、この操作の差異は「デバイスドライバー」と呼ぶオペレーティングシステムの一部であるソフトウェアが対処しています。そのため、アプリケーションはいつだって「この画像を表示してください」とお願いさえすればよいのです。

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

注釈

    ここに挙げた役割を果たすための実際の仕組みや挙動は、オペレーティングシステム種類によって異なります。

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

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

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

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

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

パソコンOS

デスクトップ向けOS

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

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

ファイルのアイコンをクリックするればファイルが開き、戻るボタンを押せばページが戻るのはご存知でしょう。本来であれば、これら操作を実現するには難しい命令文をオペレーティングシステムへ伝える必要があります。しかし、パソコン向けのオペレーティングシステムでは、そのような命令文をユーザへ要求することはありません。代わりに視覚的なアイコンやボタンを表示し、クリック一つであらゆる操作を可能としています。そして、ユーザの使い勝手を向上しています。

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

GUI

ところで、アイコンやボタンなどを用いて視覚的かつ直感的にオペレーティングシステムに処理を依頼することができるようにしたインターフェース「GUI: Graphical User Interface」と呼びます。「インターフェース(I/F: Interface) 」とは、ある物とある物の接点を指します。この文脈では、ユーザとオペレーティングシステムとの接点を意味します。

サーバOS

サーバ向けOS

サーバーに使用されるオペレーティングシステムとしては、「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年時点でのマーケットシェア

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

2010年の年始時点で、Windowsが全世界で使用されているオペレーティングシステムのマーケットシェアの約9割以上を占めていることがわかります。当時、パソコンと言えば会社、個人共にマイクロソフトのWindowsを搭載したパソコンがほとんどで、AppleのMacを所用している人はごく少数という状況でした。また、スマートフォンのiPhone 3Gが発売されたのが2008年後半でしたので、この当時はスマートフォンを使用している人はほとんどおらず、スマートフォン向けオペレーティングシステムのシェアはほとんどありません。

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

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

次に、10年後に当たる2020年のシェアを見てみましょう。2020年の年始時点で、AndroidがWindowsを抜き全世界で最も使用されているオペレーティングシステムに躍り出たことが伺えます。そのマーケットシェアは約4割を占めています。スマートフォン向けOSであるAndroidとiOSの合計シェアは50%を超えていることから、パソコンに比べてスマートフォンやタブレットが、この10年で急速に普及したことが伺えます。

よし

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

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

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

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

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

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

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

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

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

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

GoogleのAndroidとAppleのiOS

次に、GoogleがAndroidを、AppleがiOSやmacOSといったオペレーティングシステムを開発する理由について考えます。これまで説明してきたように、スマートフォンに代表される現代のコンピューターにはオペレーティングシステムは必須です。

OSの行動化

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

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

アプリケーションとは? アプリケーションとは? ~価値を生み出すソフトウェア~ アプリケーションの動作にオペレーティングシステムが必要

そのため、例えば、ある企業がスマートフォン向けのアプリケーションを開発しようとした場合、必ずAndroidかiOSに頼らなければなりません。このように、あるモノを動作させるのに必ず必要となる土台「プラットフォーム」と呼びます。「アプリケーションはAndoridやiOSなどのプラットフォームの上で動作している」と表現することができます。

OS開発のビジネスモデル

そして、アプリケーションを開発する企業が、そのアプリをユーザへ有償で提供する場合やアプリ内で課金をする場合など、その売上の一定額をGoogleやAppleへ収める決まりになっています。つまり、他社の開発したアプリケーションが売れれば、オペレーティングシステムの開発元であるGoogleやAppleにもお金が入るビジネスモデルなのです。

よし

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

まとめ

最後に、振り返りながらここまでの内容をまとめていきます。オペレーティングシステムの役割を紐解きながら、「オペレーティングシステムとは?」、「OSとは?」について解説してきました。

まとめ

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

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

でした。

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

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

を説明しました。

そして、

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

について考察しました。


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

よし

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

ほなね!