OSってなんだっけ?「Windows」はOS?初心者にもわかりやすく徹底解説!
こんにちは、PLEN Roboticsのインターン生、鈴木です!
夏が過ぎ去りすっかり秋ですね~🎑
ということで今回は、言われてみれば..なんだっけ?OSについて学ぼう!という回です!これを読めばOS博士になれること間違いなし!
OSとは
ずばりOSとは、「オペレーティング・システム(Operating System)」のこと。コンピューター全体を制御し、ユーザー(人間)がコンピューターを使えるようにするという役割があります。
要は、人間と機械とを仲介する基本的なソフトウェアのことです。
つまりOSは、人間がデバイスを直感的に操作するための画面を持っています。
また全部で4種類あるソフトウェアは、それぞれ「ハードウェアに近い、遠い」で表現されます。
それで言うと、OSはハードウェアに2番目に近いソフトウェアなのです。
ハードウェアに最も近いソフトウェア「ファームウェア」についてはこの記事を読んでみてください。↓↓
OSとファームウェアの違いは?
さて、上記のファームウェアについての解説記事を読んた方は疑問が残ったかもしれません。
「OSとファームウェアの違いは何なんだ!」と。
「ファームウェアとは電子機器に組み込まれたハードウェアの基本的な制御をするために存在するソフトウェアのこと。」とありましたからね。
ですがファームウェアはどちらかというと機器を制御するためのプログラムなので、ハードウェアの一部と言ってもいいかもしれません。
それに対してOSはユーザーが操作することが前提となっています。
アプリを使うためには、誰もがOSの画面を操作することになりますが、ユーザーがファームウェアを意識するのはアップデートのときだけですからね。
「Windows」はOS?
はい、そうです。「Windows」は、パソコンのOSとして75%のシェアを誇っています。他には「macOS」もよく聞きますよね。
スマホであれば「iOS」や「Android」、サーバーであれば「Linux」がメジャーなOSです。
また「サムスン」が作っても、「ソニー」が作っても、OSが「Android」であれば全部「Android」のスマホになります。
どうしてOSは必要?
OSが必要な理由は3つあります。
1.ハードウェア抽象化のため
コンピューターは世界中で色々なメーカーが作っていますよね。中には自分で部品を買ってきて作ってしまう人もいたりします。
そのためメーカーが違うパソコンでも、計算する・文字を書くなどの機能を同じように実現するためにOSが必要です。
2.リソース管理のため
複数のアプリを同時に使用する場合、お互いに独立して操作できるように、計算装置や記憶装置などの限られたリソースを配分します。
3.利用効率向上のため
複数のタスクを実行する場合にリソースの割り当ての順番や時間を工夫することで作業効率を向上させることができます。
これは特に、大量のアクセスが集中するウェブサーバーなどで重要ですね。
OSは具体的にどんな仕事をしている?
OSの主な役割は5つあります。
1.タスク管理
パソコンなどの汎用機は一度に複数の作業をします。
例えば、Slackでやりとりしながらブラウザで調べ物をして、Googleスライドで資料を編集するなど、平行して複数の処理を行う場合ってありますよね。
そういった場合に、OSはタスクを管理して適切なスケジュールを作成して実行します。
CPUが処理を行うにあたり、タスクを「実行状態」「待機状態」「実行可能状態」に分けることで優先順位を付け必要なメモリを割り当てることができます。
2.メモリ管理
CPUが処理を行うにあたり、必要なメモリを確保、終了後にメモリを開放します。
3.ファイル管理
ファイルの保存形式を決め、階層構造に格納します。同じフォルダ内では同じファイル名で保存できないですよね。ファイル管理の方法を決める、それもOSの役割です。
4.入出力管理
読み書きの権限や暗号化も担当しています。キーボード、マウス、マイク、カメラなど周辺機器との接続を制御し、入出力の管理を行います。
5.APIの提供
アプリとOSとの接点であるAPIを提供しています。APIの提供によって、アプリの開発者はOSと共通する部分の開発を一からしなくても済むようになります。
「PLEN Cube」のOSは何だろう?
そう、弊社のプロダクトである顔認証AIアシスタント「PLEN Cube」も内部で色々な処理をしています。
ということでずばり「PLEN Cube」のOSは、「Ubuntu」という「Debian」を母体にしたもので、「Linux」系です。
ちょっと何言ってるか分かりませんよね。(笑)
安心してください。一つひとつ説明します!
実は「Linux」はOSのコアの部分であって、それだけではOSとして機能しません。OSとしてはそれ以外のソフトウェアも必要になります。
それをパッケージしたものがこちら。↓
つまり「Distribution」が「Linux」の派生系です。
またその中のひとつが「Debian」です。
さらに「Debian」を初心者でも使いやすいものにしたものが「Ubuntu」と思ってもらって大丈夫です!「Ubuntu」はサーバーOSに分類されます。
要するに、「Linux」の親戚ということですね!
またOSのコアの部分を「カーネル(Kernel)」といいます。
カーネルは、ファームウェアの助けを借りながらコンピューターの全ハードウェアの基本的な制御を担当します。
というわけでOSについての解説は以上!
「結局OSって何だっけ?」に答えられるように曖昧なところは復習しておきましょう♪
またプログラミングに興味が湧いた方はこちらの記事も合わせてどうぞ!
この記事を気に入っていただけた方はスキとフォローをお願いします✨
YouTubeでの解説動画もご覧ください~!