För att köra applikationskod på en ny dator utan operativsystem (OS) behöver du en
bar-metall närma sig. Detta innebär att koden interagerar direkt med hårdvaran och förbi OS helt. Detta är betydligt mer komplicerat än att bara installera en applikation på ett standard OS. Här är vad som är involverat:
1. bootloader: Du behöver en bootloader - ett litet program som körs före operativsystemet. Dess uppgift är att initialisera hårdvaran (minne, CPU, etc.) och ladda din applikations kod i minnet. Populära bootloaders inkluderar grub, men för bara metall kommer du sannolikt att använda en enklare, anpassad bootloader skriven på monteringsspråk eller ett mycket lågnivåspråk som C.
2. Hårdvaruabstraktionslager (HAL): Detta lager ger ett konsekvent gränssnitt till hårdvaran oavsett de specifika PC:s komponenter. Eftersom du inte använder ett operativsystem måste du skriva dina egna funktioner för att interagera med hårdvaran (t.ex. läsa från disken, komma åt nätverkskortet, visas på skärmen). Detta är mycket hårdvaruspecifikt och kräver vanligtvis detaljerad kunskap om PC:s arkitektur och dess chipset.
3. Applikationskod: Detta är huvuddelen av ditt program. Det kommer att ringa funktioner i HAL för att interagera med hårdvaran och utföra sina uppgifter. Språk som C och C ++ används ofta för bara metallprogrammering eftersom de möjliggör kontroll på låg nivå. Rust vinner också popularitet för sina minnesskyddsfunktioner.
4. Byggsystem: Du behöver ett build -system (som Make eller CMake) för att sammanställa din kod (bootloader och applikation) till ett format som hårdvaran kan förstå (vanligtvis en binär bild). Detta innebär ofta att använda en tvärkompilerare eftersom målmaskinen (datorn utan operativsystem) inte har någon kompilator.
5. firmware: I vissa fall, särskilt om du interagerar med hårdvarufunktioner på låg nivå (som vissa styrenheter), kan du behöva arbeta med eller till och med ändra firmware. Detta är mycket specialiserat arbete.
6. felsökningsverktyg: Felsökning av bar-metallkod kan vara extremt utmanande. Du behöver specialiserade felsökningsverktyg, potentiellt en JTAG -felsökare eller liknande hårdvara, för att gå igenom koden och identifiera problem.
kort sagt: Att driva en applikation på en bar med bara metall är ett betydande företag som kräver avancerade programmeringsfärdigheter, intim kunskap om datorarkitektur och specialiserade verktyg. Det är mycket mer komplicerat än att skriva och driva en applikation i en operativsystemmiljö. Det genomförs vanligtvis endast för högt specialiserade inbäddade system eller programmering på låg nivå där ett operativsystem inte är genomförbart eller önskvärt (t.ex. realtidssystem med mycket strikta prestandakrav).