Åpen kildekode/Introduksjon
Definisjon
[rediger]Det er vanskelig å gi en enkelt definisjon på hva åpen kildekode er. Det kan kalles en bevegelse av programvareentusiaster, det kan være et enkelt program, det kan være et juridisk prinsipp - listen er lang, og alle elementene hører like mye hjemme i den. Men som en meget vid og generell definisjon kan man si at åpen kildekode er en filosofi i forhold til produksjonsrutiner, som gir tilgang til produktet i dets oprinnelige form. Sett i forhold til programmer, er dette å ha tilgang til kildekoden til programmet. I motsetning til lukket kildekode, hvor man kun har tilgang til selve programmet, gir åpen kildekode også tilgang til koden bak programmet i sin opprinnelige form.
Hva er kildekode?
[rediger]Når man skal få en datamaskin til å utføre noe, må den vite hvordan den skal gjøre det. På lik linje med at man kan forklare et menneske hvordan man skal lage en kake ved hjelp av en matoppskrift, kan man forklare en datamaskin hvordan den skal gjøre det og det. Se på dette eksempelet:
Hvis alder er større enn eller lik 18, og kjønn er gutt, mal bilen blå.
Dette er et eksempel skrevet på norsk. Det kan mennesker forstå, men en datamaskin kan ikke forstå noe av dette. Derfor finnes det egne dataspråk, som er laget slik at datamaskiner - og mennesker - kan forstå dem. Her er samme instruks som ovenfor, skrevet med et dataspråk:
PHP
if ($alder >= "18") && ($kjønn == "gutt"){ malBil("blå"); }
Ruby
mal_bil "blå" if alder >= 18 and kjønn == "gutt"
Noen nærmere forklaring på akkurat hvordan dette virker er ikke nødvendig, men slik ser dette ut, oversatt frå norsk til dataspråk. Det finnes flere ulike dataspråk, og alle har forskjellige egenskaper og oppbygging (dette eksempelet er PHP). Det vanligste navnet på dataspråk er kode.
Alle programmer er skrevet med et slikt språk. For at programmet skal kunne brukes, må det gjennom noe som heter kompilering. Dette gjør koden om til et kjørbart program, som for eksempel en EXE-fil eller liknende. Det vil si at når man har et brukbart program, har man ikke koden til det, men en kompilert versjon av den.
Her kommer prinsippet med åpen kildekode inn. Det som skiller åpen fra lukket kildekode er at koden, altså programmet på dataspråk som er forståelig for både maskin og menneske (se eksempelet over), er offentlig tilgjengelig. Dette er ikke vanlig for programmer som Photoshop, Windows eller Office - hadde man hatt tilgang til kildekoden, kunne jo hvem som helst ha lastet ned den på lovlig vis, og dermed fått programmet gratis.
Men programmer som Open Office, Linux, GIMP (og mange fler) er av typen åpen kildekode. Det vil si at man i tillegg til å kunne få tak i en ferdig kompilert versjon, kan få tak i kildekoden til programmet.