こんにちは! インストラクターの佐野です。
って思っている方は多いのではないでしょうか。調べて説明を読んでもわからない、理解ができない...そんな声を多くいただきます。そこで、今回は「OS」について徹底的に解説します。
いままでモヤモヤしていたものが、一気に解消されること間違いないでしょう!
この記事の目次
OSとは?
OSの定義
まずはWikipediaの説明を見てみましょう。
オペレーティングシステム(Operating System, OS)は、コンピュータにおいて、ハードウェアを機能毎に抽象化したインターフェースを利用者またはアプリケーションソフトウェアに提供するコンピュータプログラムである。
引用元:Wikipedea
上の通りに説明されていますが、これではわかりませんよね。OSとはOperating System(オペレーティング・システム)の略で、直訳すると「動作システム」となります。
OSはアプリ開発になくてはならないもの
OSは、普段私たちが「当たり前だと思う機能」を提供してくれています。たとえば、
- キーボードから文字を入力すると、入力した文字が画面に表示される
- マウス・タッチパッドなどを操作すると、操作した位置がわかる
- イヤフォンを指すと、イヤフォンから音が聞こえる
などの機能です。「そんなのパソコンだから当たり前でしょ?」と思われるでしょう。
しかし、これらの基本的な機能はパソコンの機能ではなく、OSによって実現されている機能なのです。ちなみに、OSによって実現されている機能は、アプリケーション開発者があらためて作成する必要がありません。
なぜ、OSについて理解を深める必要があるのか?
プログラミングではOSとアプリの役割分担を理解する
OSは「コンピューターの仕組み」といえるほど、コンピューターの土台を支えているソフトウェアです。OSを知ることはコンピューターの仕組みを知ることでもあり、プログラミングのポイントを知ることにつながります。
プログラミングを進めていくと、事細かにプログラムを書いていないのに、他のアプリケーションと同様に動作することがでてきます。それはほとんどの場合、「OS」が提供する機能を利用しているのです。
アプリケーションを開発するときは、OSについてしっかりと理解しておくことで、必要以上に悩まずスムーズに開発できるなど、様々なメリットがあるでしょう。逆に、OSの仕組みや動作が理解できていないと、
- プログラムが理解できない
- 実装方法がわからない
- バグの原因になる
などの影響が出ることがあります。OSの仕組みや動作をしっかりと理解し、OSの動きを考えたコードを書くことで、高品質なアプリケーションをスムーズに作れるようになるでしょう。
開発時に必要なキーワードを理解する
何かを記録したり、記録してある内容を利用する場合は、「ファイル」を使います。ファイルが保存されている場所は、「ディレクトリ」とか「フォルダ」と呼びますね。
これらのキーワードは、プログラミングをするときは絶対に知っていなければいけないキーワードです。ここまでは、プログラミングを経験したことがなくても知っていますね。
それでは、ボタンをクリックしたときに、OSからプログラムに「メッセージ」が送信されることは知っていますか?「メッセージ」の代わりに「イベント」が発生するという言いかたもあります。
このようなキーワードを数多く知っておくことで、プログラミングがスムーズになるでしょう。
複数のOSを使用するには?
OSによって開発環境が異なることはお分かり頂けましたね。
しかし、
色々な環境で開発したいけど、パソコンをいくつも用意するのはきつい・・・
といった悩みをお持ちになる方も多いと思います。そんな悩みを解決してくれるのが「VirtualBoX」です。
「VirtualBoX」は使用環境に仮想環境を構築して、他のOSをインストールすることができるソフトです。「Virtualbox」を導入することにより、たとえばMac環境でWindowsやLinuxなど複数のOSを切り替えて使用することが可能になります。
詳しくはコチラの記事を参考にしてください。
OSの理解を更に深めるには
OSもプラグラミング言語で作られています。こちらの記事では、弊社インストラクターと共に初心者向けのプログラミング言語を一挙に解説しています。ぜひ参考にしてくださいね。

プラグラミングを学ぶには
OSはC言語など、初心者が学ぶには難易度が高い言語で作られています。プログラミングを学習して、OSやコンピュータの理解を深めたい! そんな方もいらっしゃるのではないでしょうか?
このような方は、ぜひ弊社「侍エンジニア」の無料体験レッスンをご利用ください。専属コンサルタントが、あなたに最適な学習プランや言語選定を提案させていただきます。
実際にIT業界に精通しているコンサルタントと話すことでOSについての理解も深まるはずです。どうぞお気軽にお越しください。
OSの種類
代表的なOS
- Windows
- Mac OS
- iOS
- Linux
- Android
プログラミングをするにあたっては、対象となるOSについて知っておけば、そのほかのOSについて事細かに知っておく必要はありません。ただ、どんな種類があるのか、くらいは一般常識として知っておいた方がいいでしょう。
Windows
WindowsはMicrosoft社が開発したOSです。パソコンで使用されているOSの中では、世界で最もユーザーが多いOSです。一般的にWindowsと言うと、「Windowsがインストールされたパソコン」のことを指しています。
Windowsには、
- Windows XP
- Windows 7
- Windows 8
- Windows 10
など、たくさんのバージョンがあることはご存知のとおりです。最近ではバージョンを言及することが面倒になり、また、Windowsが普及しすぎたため、パソコン自体が「Windows」と呼ばれている場合もあります。
これがOSとパソコンを混同する1つの要因になっているかもしれませんね。
Mac OS
Mac OSはApple社が作ったOSです。銀色のアルミボディが特徴的なMac(パソコン)にインストールされています。なめらかに操作できるタッチパッドや、Windowsにはないシンプルさで、最近では人気があります。
カフェにいくとMacを使っている人がいるという光景も当たり前になってきましたね!
iOS
iOSは、Apple社がMac OSを携帯端末用に改良して作ったOSです。iPhoneやiPadなどにインストールされています。もとはMac OSから作られたこともあり、Mac OSとの相性は抜群です。
ユーザーの使いやすさを徹底的に追い求めた、洗練されたデザインや機能には感服の一言です。
Android
Google社がLinuxを携帯端末用に改良して作ったOSです。Xperia、Galaxyなどのスマートフォンやタブレットに入っています。
自由に改良できるLinuxをもとに作っているため、スマートフォンやタブレットなどを開発するメーカーによって積極的にカスタマイズされ、特徴のある様々な端末が発売されています。ここがAndroidの魅力の1つです。
Linux
WindowsやMacが有料なのに対して、Linuxは無料で使えます。また、Linuxには、誰でも自由に改良できるという特徴もあります。Linuxは誰でも自由に改良できるので、車、科学で使われるスーパーコンピューター、ロボットなど、いたるところで利用されています。
サーバーで使用されているOSの中では、世界で最もユーザーが多いOSです。
OS市場のシェア推移
2003年から2018年までのパーソナルコンピュータで利用されたOSのシェアを表した動画です。Windows系が揺るぎなくシェアのほとんどを占めていますが、ジワジワとmacOSやLinuxもシェアを拡大させているのがわかります。
OSの機能
最後に、プログラミングの際にも関係がありますので、OSの機能を整理しておきましょう。
入出力の制御
キーボード操作マウス操作については、OSは「どのキーを押したか」「マウスをどのくらい動かしたか」「マウスの左ボタンを押したか」などを管理しています。
アプリケーション開発者は、OSから「何が入力されたか」「マウスポインタがどこにあるか」「画面上のどのUIをクリックしたか」を受け取ったり、アプリケーションからOSに問い合わせたりして、必要な処理を作成していきます。
また、画面表示についても見てみましょう。画面表示もOSの機能ですので、アプリケーション開発者は、OSから画面を描画するための何か(Windowsの場合はウィンドウハンドルとかデバイスコンテキストと呼ばれます)を借りて、様々なものを描画するという流れになります。
タスク管理
最近のOSでは、アプリケーションを同時に2つも3つも起動できることが一般的になりました。アプリケーションの起動や終了、アプリケーションの切り替えは、OSが管理しています。
OSは、アプリケーションの起動や終了、切り替えが起きたことを、「メッセージ」でアプリケーションに通知しますので、アプリケーション開発者は、通知されたときの処理を作成することになります。
ファイル管理
ファイルに名前を付けたり、ファイルの内容を読んだり、ファイルに書き込んだりといった機能も、OSが管理しています。したがって、ファイル管理についても、OSの機能を利用して行う必要があります。
ただ、前述の「入出力の制御」や「タスク管理」とは異なり、ファイル管理は、プログラミングにおいては基本的な機能です。そのため、プログラミング言語がファイル管理を行うための機能を提供しているケースがほとんどで、OSの機能であることを意識しなくても、スムーズに開発できるようになっています。
もちろん、プログラミング言語の機能だけでは不足する場合もありますので、OSの機能を利用してファイル管理を行う場合もあるでしょう。
その他の機能
その他にもOSが提供している機能がたくさんありますが、ここでは、最後にネットワーク通信を紹介します。最近は、HTTPサーバーなどとデータをやり取りするアプリケーションが増えてきています。
インターネットを通じてデータをやり取りする場合は、TCP/IPという方式を利用します。TCP/IPを利用するには、OSから「ソケット」と呼ばれるモノを借りて、データをやり取りします。
OSについてもっと知りたいなら
OSってなに? という疑問にお答えしました。
OSが様々な機能を提供していることと、アプリケーションはOSの機能を利用しながら動作していることを理解していただけたでしょうか? OSの知識は、プログラミングだけでなく広くIT分野で生かせます。ぜひ身につけておきましょう!
また、独学でプログラミング学習を行なっていて、OSの理解を深めアプリなどの開発に結びつけたいなら、弊社「侍エンジニア」の無料体験レッスンを受けてみてください。
弊社では現役生徒500名以上が在籍し、未経験から転職・フリーランスへ多くの卒業生を輩出しておいます。無料体験レッスンでは、プログラミングやIT業界に精通したコンサルタントが、あなたの目標を最短で実現するための学習プランを提案いたします。
下記のカレンダーより空いているお日にちを選んでお気軽にお越しください。全力でサポートいたします。