Multiboot-specifikation

Multiboot -specifikationen är en öppen standard som beskriver hur en starthanterare kan ladda en x86 - operativsystemkärna . Specifikationen tillåter alla kompatibla boot-loader-implementationer att starta upp alla kompatibla operativsystemkärnor . Således tillåter det olika operativsystem och starthanterare att arbeta tillsammans och samverka, utan behov av operativsystemspecifika starthanterare. Som ett resultat tillåter det också enklare samexistens av olika operativsystem på en enda dator, vilket också kallas multi-booting .

Specifikationen skapades ursprungligen 1995 och utvecklades av Free Software Foundation . GNU Hurd , VMware ESXi, Xen och L4 mikrokärnor måste alla startas med den här metoden. GNU GRUB är referensimplementeringen som används i GNU-operativsystemet och andra operativsystem. Från och med juli 2019 är den senaste versionen av Multiboot-specifikationen 0.6.96, definierad 2009. En inkompatibel andra iteration med UEFI- stöd, Multiboot2-specifikationen , introducerades senare. Från och med april 2019 är den senaste versionen av Multiboot2 2.0, definierad 2016.

Teknisk översikt

Medan Multiboot definierar en rubrik som en struktur, som måste finnas i bildfilen som helhet, i Multiboot2 har fält eller grupp av fält en typtagg, som gör att de kan utelämnas från Multiboot2-huvudet.

Inom OS-bildfilen måste rubriken vara i de första 8192 (2 13 ) byten för Multiboot och 32768 (2 15 ) byte för Multiboot2. Laddaren söker efter ett magiskt nummer för att hitta rubriken, som är 0x1BADB002 för Multiboot och 0xE85250D6 för Multiboot2.

I rubriken pekar entry_addr på koden där kontrollen överlämnas till operativsystemet. Detta tillåter olika körbara filformat (se Jämförelse av körbara filformat ) . Om OS-kärnan är en ELF-fil ( Executable and Linkable Format ), vilket den är för Linux-kärnan, kan detta utelämnas för Multiboot2. ELF-formatet är mycket vanligt i världen med öppen källkod och har ett eget fält ( e_entry ) som innehåller ingångspunkten.

Innan du hoppar till OS-startpunkten måste starthanteraren tillhandahålla en startinformationsstruktur för att berätta för operativsystemet hur det lämnade systemet; för Multiboot är detta en struct, och för Multiboot2 har varje fält (grupp) en typtagg och en storlek.

Se även

externa länkar