Om man skriver ett program gör man det i ett programmeringsspråk, till exempel C, C++, Java etc. Det kan till exempel se ut så här (java):
Kod:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Vad man sedan gör är att skicka den här koden, som kallas källkod, till en kompilator (programvara) som kompilerar den. Kompilatorn översätter den till en exekverbar fil, ibland i flera steg. Man kallar ofta den exekverbara filen/filerna för binaries, och på Windowsdatorer slutar den typen av filer med ändelsen .exe.
Medan en rad kod i källkoden (ett statement) kan motsvara 1, 10 eller 10000 processorinstruktioner, översätter kompilatorn källkoden till lång följd av processorinstruktioner. När ett program väl har kompilerats till en .exe-fil, går det inte längre (läs: mycket svårt) att gå in och skriva om programmet.
Fri programvara betyder att den exekverbara filen är gratis. Öppen källkod betyder att utvecklaren tillgängliggör källkoden så att andra utvecklare enkelt kan gå in och ändra den, kompilera om programmet, och skapa ett nytt program baserat på det gamla.