0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OSと命令セットはどこで帳尻が合うのか

0
Last updated at Posted at 2025-12-23

ふと、「ARM版のOSをx86のPCにインストールしたらどうなるんだろう?」などの疑問が浮かび調べてみました。

1240_1.png

UEFI、ブートローダー、OSともに実行の仕方は通常のプログラムと同様「CPUに命令を渡す」だけで行われるのですが、プログラムが書き込まれている場所が異なります。
UEFIはマザーボードのROMに書き込まれていますが、ブートローダーやOSはストレージに書き込まれています。
なお、UEFIの仕様はかなりはっきりと定まっていて、公開されています。1私はちゃんと読めていませんが…。

この前提で、CPUの命令セットについて考えると以下のようになります。

  • CPUが対応する命令セットはあらかじめ決まっている。
  • 起動直後最初に読み出されるプログラムである2UEFIは、CPUの対応する命令セットの範疇で命令を発行してブートローダーに制御を渡す。(PC出荷時に設計されている)
  • ブートローダーはCPUの命令セットに合うようにビルドしてインストールされている。※CPUの命令セットの範疇であるかのチェックは実行時には行われない。もし範囲外だった場合例外が発行され、起動が止まる。)
  • ブートローダーはOSカーネルに制御を渡す。OSカーネルはCPUの命令セットに合うようにビルドしてインストールされている。
  • なお、ブートローダーもOSカーネルも、拡張命令セットを変に使わないようにビルドされている。

以上です。

  1. UEFI Specifications

  2. 厳密にはそうとも限らないらしい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?