Maybaygiare.org

Blog Network

Körbar

se även: objektfil

körbara filer kan handkodas på maskinspråk, även om det är mycket bekvämare att utveckla programvara som källkod på ett högnivåspråk som lätt kan förstås av människor. I vissa fall kan källkoden anges i monteringsspråk istället, som förblir läsbar samtidigt som den är nära associerad med maskinkodsinstruktioner.

högnivåspråket sammanställs i antingen en körbar maskinkodfil eller en icke-körbar maskinkodsobjektfil av något slag; motsvarande process på källkoden för monteringsspråk kallas montering. Flera objektfiler är länkade för att skapa den körbara filen. Objektfiler-körbara eller inte-lagras vanligtvis i ett containerformat, till exempel körbart och länkbart Format (ELF) eller bärbar körbar (PE) som är Operativsystemspecifik. Detta ger struktur till den genererade maskinkoden, till exempel att dela den i sektioner som .text (körbar kod),.data (initialiserade globala och statiska variabler), och .rodata (skrivskyddad data, såsom konstanter och strängar).

körbara filer innehåller vanligtvis också ett runtime-system som implementerar runtime – språkfunktioner (t.ex. schemaläggning, undantagshantering, anropande statiska konstruktörer och destruktorer etc.) och interaktioner med operativsystemet, särskilt att skicka argument, miljö och returnera en utgångsstatus, tillsammans med andra start-och avstängningsfunktioner som att släppa resurser som filhandtag. För C görs detta genom att länka i crt0-objektet, som innehåller den faktiska ingångspunkten och gör inställning och avstängning genom att ringa runtime-biblioteket.

körbara filer innehåller således normalt betydande ytterligare maskinkod utöver den som direkt genereras från den specifika källkoden. I vissa fall är det önskvärt att utelämna detta, till exempel för utveckling av inbyggda system, eller helt enkelt för att förstå hur kompilering, länkning och lastning fungerar. I C kan detta göras genom att utelämna den vanliga körtiden och istället uttryckligen ange ett länkskript som genererar ingångspunkten och hanterar start och avstängning, till exempel att ringa main för att starta och returnera utgångsstatus till kärnan i slutet.

Lämna ett svar

Din e-postadress kommer inte publiceras.