コンピューターの起動やコンピューターでアプリケーションを作動させるときに重要な役割を果たすのがOSです。

それゆえ、OSはコンピューターのシステムの基盤といっても過言ではありません。

しかし、OSと一言に表現しても役割や種類、特徴がさまざまあります。

こちらでは、プログラミングを快適に進めるためにもOSについてその種類や役割を詳しく解説していきましょう。

OSの役割

SE エンジニア 


では、早速OSとは何を示すのか解説して参りましょう。

よく見聞きするOSとは、「Operation System」の略になります。

具体的な例を挙げるますと、アプリケーションの起動や終了はOSが機能することで作動しています。

また、アプリケーションが途中で適切に作動しなくなったときにも強制終了させる役割もOSが担っています。

この他にもOSにはさまざまな役割があるのでご紹介しましょう。


入力・出力の判別

OSの役割の1つには「入力・出力の判別」というものもあります。

具体的な例としては、マウスでの左クリック操作、キーボードにて文章を打ち込む操作、打ち込んだ文字が反映されるなどの入力・出力の判別をOSが担っています。

要するに、入力した内容をそのまま画面に反映するのではなく、マウスのどちらをクリックをしたのか、キーボードではどのキーを打ったのかを判別しています。

さらに、キーボードで文字を打ち込んだときに「どのアルファベットが組み合わさっているのか」を詳細に判別し、コンピューター上での作業を円滑に実現しているのがOSなのです。


外部機器からの入力・出力もサポート

OSは、他にもコンピューター本体とディスプレイを接続することで画面に映像を出力する役割も担っています。

また、マウスとキーボード以外の外部入力機器を判別することで、それによる入力を可能にしているのです。

このOSの役割によりコンピューター上での操作の幅が広がっています。

また、これにより外部機器の種類が増加したり、変化することがあっても問題なく柔軟に対応することができるのです。


ハードウェアの管理

まず、ハードウェアについて再確認しておきましょう。

ハードウェアとは、コンピューターのディスプレイやマウス、キーボードなど、コンピューター関連機器のことをさします。

コンピューターを作動する際に、ハードウェアの1つだけを接続して使用することは現在では少なくなってきているのが現状です。

そのため、マウスとキーボードを同時接続するなど複数のハードウェアを使用する際にハードウェアの操作を可能にしているのがOSになります。


ハードウェアに命令を出す

特に複数のハードウェアを使用しているときには、OSは「どのハードウェアが」「どのような操作が実行されたため」「これを出力しなくてはならない」という一連の動作を一瞬で判断し出力します。

これは、アプリケーションごとにOSが使用可能なハードウェアか否かを判断しているためです。

普段何気なくコンピューターで行う操作や作業も、このOSの機能があるからこそスムーズに実現できるのです。


データファイル管理

普段何気なくファイルを開いて保存することや、新たなファイルが必要な場合では新規作成をすることが可能です。

このようなデータファイルの管理もOSが担っています

OSが、ファイルを正確に保存・編集する仕組みは、図書館の本棚をイメージしていただくとお分かりいただけるはずです。

要するに本棚が保存場所になり、本がファイルに該当します。

図書館の本棚は、どの位置にどの本が入るかがあらかじめ決められています。

データファイルも同様の仕組みであり、指定の場所から正確に本を取り出し、新たなデータ内容を保存して元に戻すのです。

OSは、本棚をこちらの指示通りに取り出したり上書きしたり、勝手に他の場所に動かすことなく保存したりと正確な管理を行なっています。


アプリケーションのマルチタスク管理

コンピューターを起動して作業をするとき、複数のアプリケーションを同時に起動して作業を行うときもあるはずです。

OSは、このような場合でも円滑な操作をできるように管理する役割も担っています


メモリ管理

コンピューターにはメモリが導入されており、OSはそのメモリの管理も担っています。

しかし、このメモリ管理にはCPUも大きく関係していることに注意が必要です。

メモリは、CPUが作業できる範囲を示し、その範囲内でアプリケーションの操作などを実行しています。

それにはCPUのコア数も大きく影響しており、作業範囲内でその作業を行こととなるのです。

シングルコアなら1人、デュアルコアなら2人といったイメージになります。

例えば、シングルコアで4GBのメモリの場合だと、4GBの範囲内で1人が作業を行うイメージということです。


OSとメモリの関係

OSは、メモリに作業を分配する役割を持っています。メモリが大きくなるほどOSが割り振ることのできる作業は増えますが、処理するのはCPUです。

いくらメモリが大きくてもCPUによっては作業が遅くなるため、コンピューターの処理のスピードに繋がってきます。


API提供

APIとは、「Application Programming Interface」の略です。その役割は、利用者とコンピューターの架け橋です。

アプリケーションの起動になくてはならないものがAPIになります。

スマートフォンやコンピューターのソフトを起動する場合、アイコンをクリックすれば起動します。

ですが、APIがないと、起動するたびにコマンドを入力して実行する必要があるためかなり面倒なのです。

ソフトウェアを利用している側が簡単に操作できるよう、サポートしてくれるのがAPIなのです。


OSの種類と特徴

女性プログラマーを横から撮影した写真


OSには種類があります。OSが同じなら、コンピューターのメーカーが違ったとしてもほぼ変わらない使用感になります。

ですが、OSが変わってしまうと使い方は全くわからなくなってしまうのです。

それに、各OSにはそれぞれ特徴もあります。

自分の使用しているOSにはどんな特徴があるのか、またまだ使用経験のないOSの特徴を理解していきましょう


Windows

PC 検索 男


WindowsはMicrosoft社が販売しているOSです。現在使用されているコンピューターの多くはWindowsを使用しています。


Windowsの特徴

Windowsの大きな特徴は、見やすい画面です。

普段何気なく使用しているWindowsの画面ですが、Windows95が発売された当時は画期的なものでした。

デスクトップに、ショートカットが並んでいたり直接ファイルの保存場所として設定できるのも使いやすさの1つですね。


Windowsのメリット・デメリット

最大のメリットは、現在販売されているほとんどのソフトウェアはWindows対応だということです。

他のOSと比べて、圧倒的に対応ソフトウェアが多いため、色々なソフトを使用する機会がある人は重宝します。

しかし、逆に言えばウイルスが入っているソフトウェアがコンピューター内に入る確率がかなり高いということでもあります。

そのため、ウイルス対策が必須となるのです。


Mac

女性 フリーランスエンジニア


Macは、Apple社製のOSです。

Apple社製のコンピューターであるiMacやMacBookに搭載されています。


Macの特徴

まず、Windowsよりシンプルです。ソフトの種類も少ないため大丈夫か?と思ってしまいそうになりますが、実際にはシンプルな分管理が楽です。

特に、映像や絵画のソフトが充実しており、これらを趣味としている人はMacを選んだりしているのです。他にも様々なソフトがありますが、定評のあるソフトばかりです。

Apple社製の製品のみに対応するOSであるため、Apple社製の製品と接続する場合の相性は抜群です。

例 MacBookとiPhone


Macのメリット・デメリット

Macは、内蔵されているソフトウェアもすべてApple社製です。そのため修理しなければならなくなった場合は1回で終わります。

ですが、OSの主流はWindowsです。そのため対応している外部ソフトウェアが少ないのです。

最近は対応しているソフトも増えてきましたが、特にビジネス系のソフトでの対応はまだまだ少ないです。

そのため、Windowsで可能な作業がMacではできないということもあるのがデメリットといえます。

Linux

IT エンジニア


LinuxというOSを聞いたことのある人は少ないかもしれません。

このOSは、WindowsやMacとは異なり、販売されているわけではないのです


Linuxの特徴

Linuxは、カスタマイズすることのできるOSです。

LinuxはOSの中核であるカーネルという部分です。

カーネルは、ハードウェアとソフトウェアのやりとりを管理していますが、カーネルしか存在しないとなると、ソフトウェアを追加しないと機能しなくなってしまうのです。

そのため、Linuxのカスタマイズとはコンピューターの機能を追加していくということになります。

ちなみに、WindowsはLinuxをベースに作られ、MacはLinuxの元となったUnixをベースに作られています。

しかも、そのカスタマイズしたデータは配布されているので自分で使用することが可能ですし、編集を行うこともできます。

ソフトもWindowsのソフトと代替できるようなものがありますし、インターネットもメールも可能です。


Linuxのメリット・デメリット

実際使用している人は少ないのが現状です。

しかし、メリットはカスタマイズ可能で自分の使いやすいように編集できる点といえます。

しかし、WindowsやMacみたいに1つしかあるわけではないため、編集された数だけLinuxは存在します。

世界中で編集が行われ、アップロードされているのでその数は膨大であるため、自分のニーズに合ったものを選ぶことにかなりの時間を要することがデメリットといえるでしょう。


スマートフォンは小さなコンピューター

スマートフォン


私たちが普段使用しているスマートフォンですが、携帯電話というよりはコンピューターと同じような存在です。

そのため、従来の携帯電話にはなかったOSがスマートフォンにも内蔵されています。

そのため、コンピューターに馴染みがなかった人でも、OSの存在を身近に感じるようになったのもそのためです。


Android

プログラマー デスク周り


AndroidはGoogle社が開発したOSです。

Linuxをベースに作られたオープンソースであるため様々なメーカーが開発したスマートフォンに導入されています


Androidの特徴

Androidは、ウィジェットを用いることでカスタマイズの自由度がかなり高くなっています。

実際使用している人でも、人によって画面が全然違うということがよくあります。

Androidのアプリストアからでなくても、インターネットからアプリケーションをダウンロードして使用することができるため、使い方は無限大です。

Androidでないと使用できないアプリケーションも多いので、それも魅力の1つですが、その分ウイルス感染のリスクも高まるのがデメリットの1つになります。


iOS

iOSは、Apple社製のiPhoneに内蔵されています。

Androidのように、様々なメーカーにはなく、Apple社のものにしか内蔵されていません。そのため、機種は限られているのですが、性能のよさから世界中で人気があります


iOSの特徴

Macと同じように、ハードウェアとソフトウェアの製造元が同じです。

また、iOSで使用されているアプリケーションは、厳しい審査をくぐり抜けてきたものたちばかりなので、ウイルスの心配がありません。

それに、AndroidとiOSで同一のアプリケーションが配信されていることが多いので、AndroidからiOSに変えるときに同じアプリケーションを使用することも可能になっています。

中身もMacと同じでかなりシンプルですが、Androidと比べると、ウィジェットが画面に配置できないなど自由度はかなり低く、カスタマイズ性には乏しいのがデメリットになります。


プログラミング向けのOS

実際には「どのOS がプログラミングに向いている」と明確に断言することはできません。

しかし、WindowsやMacでプログラミングする場合には、それぞれにメリットとデメリットがありますので、それを十分に理解してた上で選ぶことが大切です。


Windows

オフィスのパソコンの前にいるクリエイティブな男性


Windowsはやはりシェアが世界一であるため、他のOSに比べて使用できるソフトウェアも多くあります。

プログラミングで開発したものを多く使用してもらえるというメリットがあります。

コンピューター本体のメーカーが違う場合でもOSが同じであれば、操作の方法が同様なため使い慣れている人も最も多いのです。

しかし、Windowsで開発をしてもMac向けのもを開発することはできません

そのため、使用するツールによっては使用できるようになるまでに、時間と手間を要することもあります。


Mac

Macでプログラミングをする場合では、必然的にMac向けの開発を行うことになります

Windowsしかソフトウェアが対応していないという状況はなくなってきているため、問題が生じることも少なくなってきてます。

また、Macで開発する際には使用可能なアプリケーションが充実しているというメリットです。

ただし、Macを取り入れるためには、iMacかMacBookの購入が必須になりますが、金額が高額であるという欠点もあります。

また、Windowsと共同作業をしている場合は、そのまま送信すると文字化けしてしまうため、その対策も必要になるのです。


自分に最適なOSを選ぼう

プログラマー


OSは、改良されて日々アップデートされています。

そのため、円滑な操作やプログラミングを実現したいときには「自分がどんなものを開発したいのか」を明確にすることが重要です。

円滑な操作のためにも用途や使用目的に応じたOSを選ぶようにしましょう。


SHIFTフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。