xxoo什么意思
En exekverbar fil ?r en programinneh?llande datafil som – till skillnad fr?n en informationslagrande fil – ?r avsedd att exekveras (k?ras), av en processor via ett operativsystem. Exekverbara filers markering ?r operativsystemsberoende. I Windows anv?nds fil?ndelsen ".exe", medan Unix-liknande operativsystem anv?nder "x"-attributet (execute) i filens metadata. N?gra exempel p? exekverbara filformat ?r: PE, ELF, COFF och COM.
Bin?ra exekverbara filer
[redigera | redigera wikitext]En bin?r exekverbar fil ?r slutresultatet efter kompilering av ett programs k?llkod.
Struktur
[redigera | redigera wikitext]I sin enklaste form inneh?ller en exekverbar fil maskininstruktioner f?r en viss typ av processor, samt data som hanteras av dessa instruktioner. Vissa program inneh?ller operativsystemsspecifika systemanrop och h?nvisningar till programbibliotek, vilka vid exekvering beh?ver finnas tillg?ngliga f?r att programk?rningen skall lyckas. I vissa operativsystem inneh?ller exekverbara bin?ra filer mer information ?n maskininstruktioner och data. Den f?rsta delen av filen brukar d? vara en header, som ber?ttar f?r operativsystemet hur filen skall hanteras, inklusive instruktioner f?r l?nkaren, samt h?nvisningar (liksom ett register) till andra delar av filen. Det kan ocks? f?rekomma avlusningsrelaterad information och metadata.
Exekvering
[redigera | redigera wikitext]Operativsystemen definierar hur inneh?llet i filen skall tolkas. I synnerhet d? programmet l?nkas och exekveras av ett skilt program och inte direkt av operativsystemk?rnan kan systemet st?dja flera olika typer av exekverbara filer, som d? tolkas p? olika s?tt, antingen genom explicita instruktioner i headern eller s? att en programstubb tolkas olika i olika milj?er och d?rmed leder till hopp till olika kod.
Vid exekvering l?ser operativsystemet in filen fr?n sekund?rminne till prim?rminne p? ett s?dant s?tt att minnesadresseringar i den nya adressrymden st?mmer. Programmet tilldelas beh?vliga resurser och programpekaren s?tts till programmets startadress, varvid programmet startas. Huruvida exekveringen lyckas beror p? samspelet mellan filens format och inneh?ll och operativsystemets f?rv?ntningar. D? programmet avslutas ?tertar operativsystemet de tilldelade resurserna.
Indirekt exekverbara filer
[redigera | redigera wikitext]Det finns filer som formellt hanteras p? liknande s?tt som exekverbara filer, trots att de inneh?ller skript eller andra datorprogram som processorn inte direkt kan tolka. Programkoden f?r skriptspr?k kan lagras i en fil som markeras exekverbar. P? s? s?tt erh?lls en icke-bin?r exekverbar fil.
I Unix-liknande system finns en gammal konvention om att exekverbara filer som b?rjar med de tv? tecknen "#!" (hexadecimalt: 0x23 0x21) skall "exekveras" s? att operativsystemet ist?llet exekverar programmet som n?mns strax efter denna "magiska siffra", men ger filnamnet som indata ?t detta program. Skript inleddes vanligen med "#!/bin/sh" och tolkades d?rmed av Bourne shell, men vilken som helst skriptspr?kstolk kunde anv?ndas – eller vilket annat program som helst.
P? motsvarande s?tt k?rs COM- och BAT-filer i DOS och Windows. H?r ?r det kommandotolken (eller "skalet") som exekverar filen p? olika s?tt beroende p? fil?ndelse.
D? operativsystemet inte direkt st?djer exekvering via godtyckliga program kan man l?ta operativsystemet exekvera ett program som f?rbereder l?mplig exekveringsmilj? och l?ta detta program tolka programfilen, oberoende av huruvida operativsystemet uppfattar programfilen som exekverbar. Detta ?r vanligt f?r till exempel Java-program.