コンピュータが起動した時点でOSがロードされると、OSはハードウェア情報をどのように知っていますか、ioの指示があるか、ブートプログラムがBIOSから情報を取得していますか?OSは物理メモリの実際のサイズをどのように知っていますか?
6
A
答えて
9
マザーボードのファームウェア(BIOS、ACPIインターフェイスまたはEFIとも呼ばれます)は、OSがシステム内のRAMとROMの物理的なマッピングを見つけることを可能にします。例えば
が、これはブートのLinuxの出力です:デスクトップやラップトップPCのようなマシンでは
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 0000000000098c00 (usable)
[ 0.000000] BIOS-e820: 0000000000098c00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000bfea0000 (usable)
[ 0.000000] BIOS-e820: 00000000bfeae000 - 00000000bfeb0000 type 9
[ 0.000000] BIOS-e820: 00000000bfeb0000 - 00000000bfec0000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000bfec0000 - 00000000bfef0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bfef0000 - 00000000c0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000ffc00000 - 0000000100000000 (reserved)
[ 0.000000] BIOS-e820: 0000000100000000 - 0000000c40000000 (usable)
3
5
によってOSに与えられ、 BIOSベースのシステムからブートするOSは、INT 0x15、AX = 0xE820を使用してQuery System Address Map関数に問い合わせます。
UEFIベースのOSは、通常、GetMemoryMap()インターフェイスを使用して物理メモリマップを取得します。