この記事では、プログラミング初学者向けに OS(オペレーティングシステム)について解説します。
プログラミングやシステム開発を学ぶ上で、OS が何を行っているかを知ることは重要です。
OS の構成要素や OS が何を行っているかについて、解説をしていきます。
OS(オペレーティングシステム)とは
オペレーティングシステム(operating system)とは、コンピューター全体の動作を管理するソフトウェアです。
オペレーティングシステムの主な機能としては、以下の機能があリます。
入力・出力の管理
具体的な例として、マウスの操作やキーボードの入力を受け取り、入力された内容を画面に反映する部分を OS が行っています。
ハードウェアの管理
まず、ハードウェアとはディスプレイやマウス、キーボード、プリンタといった、コンピューターに接続される機器のことを指します。
コンピューターを利用する時には、多くの場合これらのハードウェアを複数接続して使用しています。
マウスとキーボードを同時接続するなど複数のハードウェアを使用する際にハードウェアの操作を可能にしているのが OS になります。
また、馴染みが深いところでいうと USB メモリーをコンピューターに接続した時の管理などもこのハードウェアの管理にあたります。
データファイル管理
ワードやエクセルなどで新しいファイルを作成したり、作成したファイルを開いたりするといったファイル管理も OS の役割の一つです。
OS はファイルの場所を正確に管理し、指定されたファイルの内容を読み取ってアプリケーションに渡したり、アプリケーションからの命令でファイルに書き込みを行ったりします。
アプリケーションのマルチタスク管理
コンピューターを起動して作業をするとき、複数のアプリケーションを同時に起動して作業を行うときもあるはずです。
OS は、このような場合でも円滑な操作をできるように管理する役割も担っています。
メモリ管理
コンピューターにはメモリが導入されており、OS はそのメモリの管理も担っています。
しかし、このメモリ管理には CPU も大きく関係していることに注意が必要です。
メモリは、CPU が作業できる範囲を示し、その範囲内でアプリケーションの操作などを実行しています。
それには CPU のコア数も大きく影響しており、メモリの範囲内でその作業を行うことになります。
シングルコアなら 1 人、デュアルコアなら 2 人といったイメージになります。
例えば、シングルコアで 4GB のメモリの場合だと、4GB の範囲内で 1 人が作業を行うイメージになります。
API の提供
API は「Application Programming Interface」の頭文字をとったもので、OS のソフト(アプリケーション)を作るときに利用できる機能、それにプラスしてその方法をまとめたものと言えます。
ソフトを普段作らない方々にとっては聞き慣れない単語だと思うので具体例を挙げてみましょう。
例えば Windows でソフトを作ろうとした時、当然ウィンドウを表示させなければなりません。ではウィンドウのデザインはどのようにすればよいでしょうか。
作成者が一から作り上げても良いのですが、アプリを作るたびにそのようなことをするのは毎回手間がかかってあまり好ましくありません。
多くの場合は Windows の一般的なウィンドウで良いでしょう。そのウィンドウを簡単に使えるようにすることができれば、ソフト開発がとても効率的になります。
以上で挙げた一例のように、様々なソフトにとって共通の機能となるような提供をすることが OS の役割です。
OS の主な種類
実際に使われている主な OS を紹介します。
パソコンで使われている OS
パソコンで使われている OS は、
- Windows
- MacOS
- Linux
の3種類です。
それぞれの OS について以下で説明します。
Windows
OS の中でも世界中で広く知られて使われている Windows。
ビル・ゲイツによって開発され 1985 年に Microsoft 社が発表しました。
パソコンの OS ではシェア約 90%を占めています。
Windows 98、Windows2000、WindowsXP、WindowsVISTA、Windows7、Windows8、Windows10 と次から次へと新しい OS を発信しています。
MacOS
1984 年に Apple 社が開発した OS。MacOS は Windows の次に世界で広く使われている OS です。
パソコンが発売された当初は、すべての操作をコマンドで行わなければならず、一般のユーザーにとっては使いにくいものでした。
そのようなテキストベースの OS が一般的で合った時代に、MacOS は初めて GUI を搭載した OS として登場し話題となったのです。
GUI とは「Graphical User Interface」の頭文字をとったもので、ビジュアルベースで操作する UI(ユーザーインターフェース)のこと。
UI は簡単に言うと、ユーザーがパソコンを使う時にデータを入力したり、出力したりする仕組みです。
GUI は、今では当たり前の「マウスを使ってアイコンをクリックして操作ができる」ようにした UI です。
Linux
この OS は聞いたことがない方が多いかもしれません。じつは Windows、MacOS に次いで、世界で広く使われている OS です。
その大きな特徴は無償で配布されていることと、自由にカスタマイズができることです。自分がカスタマイズしたものを再配布することもできます。
使いこなすには専門的な知識が必要であり、OS の学習のために使う方も多くいます。
また、個人向けのパソコンよりも Web サービスなどのサーバー用の OS として広く使われています。
スマートフォンで使われている OS
スマートフォンで使われている代表的な OS として、iOS と Android を紹介します。
iOS
Apple 社製のタブレット端末やスマートフォンで使われている OS です。直感的な操作で使いこなすことができるほど扱いやすいのが特徴です。
アプリケーションは Swift、Objective-C で作成することができます。
Android
検索エンジンで有名な Google 社が無償で提供している OS です。
iOS 以外のスマートフォンの OS は、ほぼこれだ!!といっても過言ではありません。
こちらのアプリケーションは Java で開発されています。
まとめ
この記事では、OS(オペレーティングシステム)の役割や主な OS の種類について説明しました。
プログラミングを学ぶ上でも、プログラムから OS の機能を呼び出したりなど深い関係があるので、
OS の大まかな役割や種類による違いなどは理解しておきましょう。