初めまして、本年度サイオステクノロジー株式会社に入社いたしました新卒の藤原です。
本投稿、[新卒が作る自作OS]では、我々が自作OSを作るにあたり、詰まったところや、備忘録的に残しておきたいところなどをまとめておこうという趣旨の投稿です。
間違っている認識も多々あるかとは存じますが、どうか温かい目で見てくださると幸いです。
前回『[新卒が作る自作OS] OSの全体像』では、
私たちが作るOSの全体像についてまとめ、色々な機能を実装していく必要があることが分かりました。
今回はOSってどうやって起動するの?ということについて、まとめていきたいと思います。
OSが起動する仕組み
OSの起動の仕方は、フロッピーとHDDの場合では若干異なりますが、今回はフロッピーの場合について以下の図を使って説明したいと思います。
左側のシーケンス図に従って、OSが起動します。右側のBIOSとフロッピーの図はその補足です。
①電源ON
- PCの電源を入れます。
②BIOS起動
- PCが起動するとBIOSが起動します。
- BIOSは周辺機器の初期化などの処理(Power On Self Test; POST)を行います。
- そしてPCに接続されたドライブ(フロッピーやHDDなど)の中から起動ドライブを選択します。
③ブートセクタのロード
- BIOSは選択したドライブの先頭セクタをロードします。
- この先頭セクタのことを、フロッピーではブートセクタと呼びます。
- BIOSがブートセクタを読み込み、ブートセクタのプログラム(Initial Program Loder; IPL)を呼び出します。
④システムファイルのロード
- IPLはOSのシステムファイルを読み込みます。
⑤OS起動
- ④によりIPLがOSを呼び出し、OSが起動します。
用語
BIOS:
Basic Input Output System; BIOSはPCのマザーボードに組み込まれた最も低レベルな入出力をサポートするファームウェアです。
今回は実際のPCではなく仮想マシンを利用しているので、仮想マシン上のBIOSを用いています。
セクタ:
コンピュータがフロッピーディスクを読み込む際の最小単位がセクタです。(1セクタ=512バイト)
システムファイル:
OS本体の処理が記述されたファイルのこと
まとめ
今回はフロッピーディスクからOSを起動する仕組みについてまとめました。
- 電源ON
- BIOS起動
- ブートセクタのロード
- システムファイルのロード
- OS起動
次回以降は、OSのシステムファイルを作成しつつ、詰まったところ、理解に苦しんだところなどをまとめていけたらと思います。
最後までお読みいただきありがとうございます。ではまた。