Programmering

Hva er programvare med åpen kildekode? Open source og FOSS forklart

Kildekoden som utsteder kommandoene og håndterer dataene som lar programvaren gjøre det den gjør, ligger til grunn for hver programvare du bruker. Spørsmålet om hvem som skal ha rett til å se på, endre eller omfordele kildekoden har lenge vært en av grunnleggende ideologiske skillelinjer innen databehandlingen.

Tilhengere av åpen kildekode-programvare, som navnet antyder, kommer ned på siden av åpenhet; de føler at folk skal ha rett til å få tilgang til kildekoden til programvaren de bruker. Som vi ser, skjønt, er det i praksis mye variasjon som faller under merket. Ulike typer åpen kildekode-programvare finnes i omtrent alle nisjer du kan tenke deg - faktisk, åpen kildekode dominerer mange av dem.

Hva er programvare med åpen kildekode, hva er gratis programvare - og er de forskjellige?

En kortfattet definisjon av programvare med åpen kildekode er at det er programvare hvis underliggende kode kan undersøkes, endres og distribueres. (Det er en lengre og mer offisiell definisjon som vi kommer litt inn på.) De "endrede og omfordelte" delene er virkelig nøkkelen til åpen kildekodefilosofi. Til tross for hva navnet kan antyde, åpner du bare kildekoden din slik at folk kan se på den, gjør den ikke åpen kildekode.

På noen måter er begrepet "åpen kildekode-programvare" et retronym: I de første tiårene av datavitenskap var programvarens kildekode tilgjengelig som en selvfølge og fritt utvekslet mellom forskere og bransjeforskere. Datamaskiner var få og langt imellom og forventes å bli endret mye av brukerne sine, så folk trengte tilgang til koden. På mange måter ble programvare sett på som et tillegg til maskinvare; først i 1974 ble det til og med lovlig fastslått at programvare var underlagt copyright. Men da mikrocomputer-tiden begynte på slutten av 1970-tallet, begynte bransjen å skifte til den posisjonen at programvare var noe som hadde en økonomisk verdi i seg selv, og at tilgangen til den underliggende koden kunne og burde begrenses for å beskytte programvareskaperne. rettigheter. Bill Gates 'berømte åpne brev fra 1976 til hobbyister som klager over den utbredte piratkopiering av Microsofts første produkt, Altair BASIC-tolk, er et vannskillingsdokument for dette skiftet.

Mens disse nye ideene raskt ble tatt opp av den raskt voksende programvareindustrien, presset noen mennesker tilbake mot dem. En av de tidligste motstanderne var Richard Stallman, som grunnla Free Software Foundation (FSF) i 1985. Den "gratis" i fri programvare er ment å betegne brukernes frihet til å endre og distribuere kode slik de vil; det er ingen regel mot å belaste penger for gratis programvare i denne forstand. Skillet trekkes ofte mellom "fri som i gratis øl" og "fri som i ytringsfrihet", med fri programvare som er i sistnevnte leir.

Likevel gjorde ideen om gratis programvare mange mennesker i den private industrien, som tross alt ikke var fans av å gi bort ting, nervøse. I 1998 laget Christine Peterson uttrykket “åpen kildekode” delvis som et forsøk på å gjøre ideen mer tilgjengelig for nykommere, særlig de som jobber i profittfirmaer. Selv om Stallman har motstått begrepet open source, og sa at det vender seg bort fra de opprinnelige politiske og filosofiske ideene om fri programvare, har det blitt den dominerende setningen som beskriver dette konseptet. Venn-diagrammet over gratis og åpen kildekode-programvare overlapper nok til at noen ganger blir de to kombinert under akronymet FOSS (gratis og åpen kildekode-programvare). Generelt sett er all fri programvare åpen kildekode, selv om en liten del av programvaren med åpen kildekode har lisensvilkår som betyr at den ikke er gratis (mer om åpen kildekode-lisensiering om et øyeblikk).

Konseptet med gratis og åpen kildekode-programvare ga opphav til en annen definisjon av retronym: "proprietary software,” hvilken som helst programvare som ikke er åpen kildekode.

Programvarelisenser for åpen kildekode

Alle rettigheter og ansvar som er involvert i programvare med åpen kildekode, er etablert av lisensene som programvaren distribueres under. Da den juridiske doktrinen om at programvare var underlagt opphavsrett ble etablert, begynte programvarelisenser å bli skrevet for å gi en kontrakt mellom opphavsrettseieren og brukeren, og ga brukeren tillatelse til å utføre programvaren på en personlig datamaskin.

Opprinnelig eksisterte programvarelisenser for å begrense brukeradferd og beskytte programvareprodusentens rettigheter. Men advokater for fri programvare innså at de kunne invertere lisensens opprinnelige formål: En programvarepakkelisens kunne i stedet kreve at den underliggende koden var tilgjengelig for alle som bruker programvaren, og at brukerne hadde rett til å redigere og distribuere den koden. Den første programvarelisensen for åpen kildekode (selv om den går forut for begrepet) er sannsynligvis GNU Emacs kopieringstillatelsesvarsel, utgitt i 1985 for versjonen av Emacs teksteditor skrevet av FSFs Stallman.

Siden den gang har antallet gratis og åpen kildekode-lisenser spredt seg, og hver av dem setter litt forskjellige vilkår for bruk av den lisensierte koden; Wikipedia har et ganske bra diagram med detaljer om de viktigste lisensene. Per definisjon gir noen av disse open source-lisensene brukerne de tre grunnleggende frihetene til å kunne lese, redigere og distribuere kildekoden; hovedområdet der de er forskjellige, er i vilkårene de pålegger omfordeling:

  • Tillatelseslisenser lar deg distribuere hvilken som helst kildekode, men du vil. Du kan for eksempel ta kildekoden utgitt under en tillatelig lisens, innlemme den i din egen programvare, og deretter slippe den programvaren under en proprietær lisens. BSD-lisensen er en av de mest berømte tillatelseslisensene.
  • Copyleft lisenser kreve at omfordelt kode som inneholder lisensiert kode, også skal frigis under en lignende lisens. De forskjellige versjonene av GNU Public License (GPL) fra FSF er copyleft lisenser, og deres mål er å kreve at utviklere betaler det videre ved å dele fordelene de mottok ved å innlemme åpen kildekode i prosjektet.

Det er interessant å merke seg at ideene bak disse lisensene har spredt seg utover programvareverdenen. Creative Commons er en lovlig infrastruktur for å bruke lignende vilkår på skriftlige eller visuelle kunstneriske verk.

Open Source Definition og Open Source Initiative

Åpen kildekode er i sin natur ikke kontrollert av en enkelt enhet eller organisasjon. I 1998 grunnla en gruppe fremtredende utviklere, inkludert Bruce Perens og Eric S. Raymond, Open Source Initiative (OSI), en ideell organisasjon dedikert til fortalere for åpen kildekode innen den større programvareindustrien. OSI forsøkte og mislyktes i å merke begrepet open source i 1999; likevel er deres formelle åpen kildekodedefinisjon, etter konsensus, rammeverket som alle lisenser som kaller seg åpen kildekode, følger. I tillegg til friheten til å undersøke, modifisere og distribuere kode som vi allerede har diskutert, forbyr Open Source Definition lisenser som diskriminerer bestemte grupper eller personer, som forhindrer at koden brukes til et bestemt formål eller forsøksfelt, eller fra å kjøre på en bestemt enhet eller enhetstype.

Åpen kildekode utvikling og åpen kildekode prosjekter

Utvikling ved hjelp av åpen kildekode foregår i alle slags miljøer, fra universiteter til store selskaper, og følger ofte de samme mønstrene som enhver annen type programvareutvikling. Men det er en bestemt type åpen, samfunnsutviklingsprosess som er knyttet til åpen kildekode. I sitt innflytelsesrike essay "The Cathedral and the Bazaar" skisserte Eric S. Raymond sin visjon for denne prosessen, hvor alle kan få tilgang til koden, og oppdateringer blir lagt til kodebasen fra en bredt distribuert gruppe utviklere som dypper inn og ut som deres interesse tilsier.

Åpen kildekodeutvikling av denne typen er organisert rundt open source-prosjekter. Disse fungerer noen ganger på en enkelt programvare og noen ganger et helt relatert sett med applikasjoner. Versjonskontrollprogramvare holder alles bidrag på linje. GitHub er sannsynligvis den mest populære.

Noen ganger startet av en enkelt person, er åpen kildekode-prosjekter generelt selvorganiserte, små internettfellesskap, og selv om alle kan bidra til ethvert prosjekt, jobbes de fleste vanligvis med et relativt lite sett med utviklere. Noen ganger kan et prosjekt sponses av et profittfirma som planlegger å bruke programvaren det produserer, til og med å gå så langt at prosjektets mest fremtredende utviklere blir lønnet.

Eksempler på åpen kildekode

Programvare med åpen kildekode er faktisk allestedsnærværende og skaper mye av grunnlaget for det moderne Internett. Det kanskje mest kjente open source-prosjektet er Linux, den åpne kildekoden Unix-varianten som driver millioner av servere. Andre fremtredende og ekstremt avgjørende prosjekter inkluderer Apache-webserveren, MySQL-databasen og WordPress. Tallrike utviklingsrammer frigjøres som åpen kildekode, fra Ruby on Rails til Microsofts .Net Core.

Åpen kildekode har vært mindre vellykket med å produsere hjemmeprogramvare beregnet på vanlige brukere. Til tross for de høye kostnadene for proprietære programvarepakker som Microsoft Word og Adobe Photoshop, klarte open source-kolleger som OpenOffice og GIMP aldri å finne en nisje utover diehard entusiaster, i stor grad fordi open source-fellesskapet tradisjonelt har prioritert funksjoner og fleksibilitet fremfor enkelhet bruk. (Filformatlåsing fra proprietære leverandører har ikke hjulpet.) Selv Linux, hvis talsmenn har hevdet siden slutten av 1990-tallet at open source OS bare er ett år unna å dominere skrivebordet, har aldri klart å hoppe til forbrukerrom. Generelt brukes åpen kildekode til infrastruktur langt mer enn til sluttbrukerprogramvare. Men bevegelsen fra monolitisk programvare du kjører lokalt til SaaS-apper har vært en velsignelse for åpen kildekode, siden skybasert infrastruktur i stor grad er basert på stabler dominert av åpen kildekode.

Husker du hva vi sa om profittbedrifter som støtter åpen kildekode? Ofte produseres disse prosjektene under en tillatelseslisens, slik at disse selskapene kan sette åpen kildekode i kjernen av deres proprietære tilbud mens de opprettholder en egen åpen kildekode-kode parallelt som et fellesskapsprosjekt. For eksempel har Android mobile OS Linux i sin kjerne; alle Apples mobile og stasjonære operativsystemer er basert på Darwin, et operativsystem med åpen kildekode som opprinnelig stammer fra BSD Unix. Selv Googles Chrome er basert på en åpen kildekode-nettleser som heter Chromium.

Open source-fellesskapet og open source-bevegelsen

Åpen kildekode er mer enn bare en utviklingsprosess; det er en filosofi som folk brenner for, og det er et sosialt fellesskap som alle med programmeringsevner kan delta i. Det er faktisk en hel serie med lokalsamfunn, som Linux Foundation uttrykker det. (Eksistensen av ideelle organisasjoner som Linux Foundation og OSI er et viktig aspekt av samfunnet.) Florian Effenberger har et flott essay om hvordan open source-fellesskapet beriket livet hans.

Du vil ofte høre folk snakke om åpen kildekode eller fri programvarebevegelse, som har en konnotasjon av politikk og fortalervirksomhet. Mange mennesker i åpen kildekode har presset på for å ta i bruk utbredt programvare av flere kilder: De mener at åpen kildekode produserer iboende bedre kode, eller de synes tilgang til kildekode er en grunnleggende rettighet som databrukere burde ha glede av, eller en kombinasjon av de to. Dette aspektet av samfunnet virker litt mindre synlig i dag, men kanskje det er fordi åpen kildekode på mange måter har vunnet. Tilbake i 2001 sa daværende Microsoft-administrerende direktør Steve Ballmer at Linux, på grunn av sin åpen kildekode-lisens, var "en kreft som knytter seg i åndsverk til alt den berører." I dag er Microsoft en omfattende bruker og produsent av programvare med åpen kildekode. Det er de siste to tiårene med open source-historie i et nøtteskall.

Åpne kildekode programvare

Ønsker du å komme i gang med å surfe og fikle med open source-prosjekter? Ta en titt på prosjekt- og applikasjonssiden til opensource.com, GitHubs utforsk-fane eller programvarekartet for Open Source Development Network. Det er nok for nysgjerrige mennesker på alle ferdighetsnivåer.

$config[zx-auto] not found$config[zx-overlay] not found