はたらく OS
OSとはオペレーションシステム(英: Operation System)の略であり、パソコンを動かすのになくてはならない基本ソフトの事です。
ハードウェアとアプリケーションソフトウェアの間を取り持っている無くてはならない存在です。
では、どのように動いているのでしょうか。
① OSは通常 HDD(ハードディスク) にインストールされており、当たり前ですが電源がOFFの時は動いていません。電源がONになると、ハードウェアにあるBIOS
が働きOSに「起きて!仕事だよ!!」と連絡をいれます。
BIOS
BIOS ( バイオス ) とは Basic Input/Output System (ベーシック インプット/アウトプット システム)の略であり、ROMに組み込まれマザーボードに搭載されており、OSを起動させるためのファームウェアです。
現在は UEFI・BIOS
(Unified Extensible Firmware Interface) が使われています。理由はBIOSよりもセキリュティにすぐれ、大容量ドライブをサポートでき、起動が早いなどUEFIはBIOSの後継、拡張されたものになります。
② BIOSから「起きて!」の連絡が入るOSですが、悲しいかなその声はダイレクトには届きません。ブートローダーと言う「OS起動用のソフトウェア」が間に入ります。
ブートローダー
ROMに組み込まれている小さなプログラム。役割は寝ているOSを起こすこと。OSを起こすためにROM上にいる小さなプログラム達と力を合わせて仕事を行います。ただ起こすだけでは無く、OSがメモリ上で働けるように準備をしておいてくれる優しい子です。
③ やっと起きたOSさん、そのOSの核を担っているのが カーネル と言う部分になります。
カーネル (kernel)
メモリの制御やCPUの制御を行います。ハードウェアとアプリケーションとの架け橋のような存在で、ユーザーから直接の指示を受け付けないプログラムです。
アプリケーションがハードウェアに直接命令できるとしましょう。そうすると、色々なアプリケーションが好き勝手にメモリやCPUなどを使ってしまい大混乱が引き起こされます。その混乱を防ぐためカーネルが間に入り割り当てを調整してくれます。パソコン内の交通整備をしてくれてるいます。
※ カーネルとユーザーがやり取りを行うにはシェルというプログラムを使います。
シェル
シェルはカーネルとユーザーの中間役です。ユーザーからみてカーネルの周りをすっぽり覆っている「殻」(shell) のように見えることからシェルと呼ばれます。
④ 寝起きのOS (カーネル) に対し、容赦無く様々なアプリケーションからの要求が来ます。それらの要求はシステムコールが間に入り行われます。
システムコール
シェルがユーザーとカーネルとのやり取りの中間役なら、システムコールはアプリケーションとカーネルのやり取りの中間役になるアプリケーションプログラムです。API とも呼ばれます。
⑤ こうして様々なアプリケーションが働きパソコンを動かしています。OSによってパソコンは動く事が出来るようになりますが、そのOSも中で色々な働きをしているプログラムによって成り立っている事がわかりました。
OSってまだまだ奥が深いです............
参考にした記事
https://www.pc-master.jp/mainte/bios.html
https://behind-memoirs.hatenablog.com/entry/2017/11/14/021856
https://wa3.i-3-i.info/word15558.html
http://www.tohoho-web.com/ex/shell.html
http://www.cc.kyoto-su.ac.jp/~hirai/text/shell.html
http://curtaincall.weblike.jp/portfolio-unix/api