miniatyr|400px|Skrivbordsmiljön Xfce under Linux, med Mozilla Firefox (visande Wikipedia), VLC media player, Gimp, Vim, en kalkylator och en kalender, alla program med öppen källkod, Wikipedia med fritt innehåll.
Öppen källkod, öppen programvara eller öppenkod (engelskan: open source), avser oftast datorprogram vars källkod inte är proprietär utan är tillgänglig att använda, läsa, modifiera och vidaredistribuera för den som vill. Detta gör att programutvecklare kan återanvända programkod som andra har utvecklat i egna projekt utan att betala licensavgifter till kodens ägare, och kan anpassa koden till sina användares behov utan att hindras av immaterialrättsliga restriktioner. Som motprestation erbjuder utvecklarna vanligen sina modifikationer tillbaka till den ursprunglige upphovspersonen eller till den som för tillfället underhåller programvarans officiella version, som kan välja att göra dem till en del av den officiella versionen. De mest framgångsrika öppen källkodsprojekten är vanligen uppbyggda kring en internet-community av ett stort antal bidragsgivare, som samverkar för att programvara och dokumentation ska utvecklas snabbt samt testar och inspekterar koden för att säkerställa att den fungerar som tänkt.
Relaterade begrepp miniatyr|stående|Logotyp för öppen hårdvara, engelska: "Open Source Hardware".
Öppen källkod ska inte sammanblandas med gratisprogram (freeware) och shareware.
Öppen källkod är väsentligen identiskt med det äldre begreppet fri programvara och det nyare begreppet libre software, begrepp som emellertid är starkare förknippade med Richard Stallman och en ideologiskt inriktad rörelse som verkar för stark copyleft, se nedan.
Vidare begrepp som även kan tillämpas på annat än källkod är crowdsourcing, öppen innovation och öppet innehåll, exempelvis öppna digitala lärresurser. Det engelska begreppet open source kan även avse öppen hårdvara (open source hardware), exempelvis elektroniska kretsar eller mekaniska konstruktioner, såsom bilprojektet OScar (open source car), vilka inte hindras av patent, upphovsrätt och designskydd. I denna artikel åsyftas emellertid endast programvara.
Öppen källkod ska inte sammanblandas med proprietära öppna system, exempelvis kommersiella öppna operativsystem såsom Open VMS och Unix, och öppen arkitektur såsom IBM PC.Shane Greenstein, Victor Stango, Standards and Public Policy, Cambridge University Press, 2007, sid 90. Öppna system i denna äldre betydelse bygger på öppna standarder, det vill säga publikt tillgängliga specifikationer för gränssnitt. Dessa möjliggör utveckling av kompatibla plattformar och tredjepartsprodukter, eventuellt mot licensavgift för Frand-patent, samt portering av operativsystem till andra plattformar, men ger inte rätt att självständigt utveckla den egentliga produkten.
Etymologi och alternativa definitioner Begreppet öppen källkod spreds först av Open Source Initiative, som grundades 1998 av Eric S. Raymond och Bruce Perens. Definitionen på öppen källkod konstruerades efter den senares Debian Free Software Guidelines.
Begreppet "öppen källkod" kan beteckna: En licens för program, vilka skyddas av upphovsrätten, som (genom att tillåta till exempel modifiering och vidarespridning av programmet) faller under OSI:s definition på öppen källkod, se nedan; Ett program som är distribuerat med en sådan licens; En programvaruutvecklingsprocess som är förknippat med sådan programvara; Kulturella företeelser som är förknippat med sådan programvara.
En programvarulicens för öppen källkod skall enligt Debian Free Software Guidelines och därmed OSI:s kriterier: tillåta obegränsad vidaredistribution tillåta distribution av källkod och motsvarande kompilerade kod (men får göra undantag för patchar) tillåta modifieringar och härledda versioner, och att dessa distribueras under samma licensvillkor inte diskriminera person, grupp eller användningsområde, exempelvis förhindra kommersiell användning vara tillämplig för alla till vilka programmet distribueras, och inte specifik för något system inte kräva att all annan programvara som sprids på samma medium måste vara öppen källkod, eller lägga andra begränsningar på annan programvara som distribueras med den licensierade programvaran.
Debian ger GPL, BSD och "" som exempel på öppna licenser.
Affärsmodell och incitament
Öppen källkod kan finansieras genom reklam eller avgifter för distribution av den kompilerade koden, även om det senare var vanligare förr när CDROM och DVD var ofta använda distributionsmedium. Utvecklingen kan också finansieras (direkt eller indirekt) av personer, organisationer och företag som behöver koden för sin verksamhet.
Vissa projekt för öppen källkod ger stora inkomster åt något bakomliggande företag, till exempel genom försäljning av dokumentation, support, konsultuppdrag eller relaterade icke-öppna program, eller som del av skräddarsydda lösningar för specifika kunder.
De flesta projekt med öppen källkod administreras av enskilda eller organisationer utan ekonomiskt vinstsyfte, med många oavlönade bidragsgivare. Öppen källkod kan till betydande del även finansieras av myndigheter och institutioner som vill kunna samarbeta om utvecklingen med andra med liknande behov av programvara i sin verksamhet och som vill ha stort inflytande över utformningen av den programvara man använder. Utvecklingen finansieras även av företag som vill reducera utvecklingskostnader genom att återanvända annan öppen källkod i sina produkter. Inte sällan har projekt med öppen källkod startats som demonstrator eller proof-of-concept av doktorander och forskare som vill få spridning för sina forskningspublikationer, eller som vill kunna utveckla forskningsverktyg i samverkan med studenter och andra forskare utan att hindras av licensavgifter och restriktioner.
Upphovspersonen har rätt att använda sin egen kod under flera olika upphovsrättsliga villkor. Det förekommer därför att företag finansierar sin utveckling enligt affärsmodellen freemium genom att använda den öppna källkoden också i en proprietär programversion. Den senare versionen kan ha fler funktioner som vissa användare är beredda att betala för och den blir marknadsförd genom att den öppna och kostnadsfria version får stor spridning. Om den öppna versionen använder copyleft-licens (se nedan) måste företaget säkerställa att den proprietära versionen inte inkluderar kod från andra bidragsgivare som endast släppts under copyleft-licenser. Om den öppna versionen istället använder public domain-licens kan företaget använda andra bidragsgivares öppna källkod även i den proprietära versionen.
Licensformer
Vid öppen källkod attribueras ofta varje källkodsfil med (c) (copyright) följt av upphovspersonernas namn och datum, och förses med uppgift om under vilka immaterialrättsliga villkor koden får spridas och användas. Det finns ett stort antal programvarulicenser för öppen källkod, med varierande villkor.
Licenser av typen copyleft syftar till att säkerställa att bidragsgivare delar med sig av sin vidareutveckling av koden. Den som säljer eller sprider koden till andra (men inte den som kör sin egen kod) måste därför distribuera den öppna källkoden med den kompilerade programvaran, åtminstone om koden har ändrats.
Licenser för svag copyleft tillåter att koden kombineras med proprietär programvara genom länkning och anrop mellan programkompontenter, medan stark copyleft förhindrar detta (utom då programkomponenten med copyleft anropas på sätt som inte påverkas av upphovsrätten). Stark copyleft brukar inte användas för operativsystemets systembibliotek och andra centrala programbibliotek såsom drivrutiner och vissa grafikbibliotek. Detta därför att stark copyleft skulle hindra användarna från att köra proprietära tillämpningsprogram på operativsystemet ifråga, och skulle begränsa programbibliotekets spridning. Stark copyleft används vid vissa applikationsprogram för att hindra bidragsgivare från att ta sig runt kravet på att dela med sig av sina modifieringar genom att paketera sin kod som en avgränsad proprietär programkomponent som länkas samman med den öppna källkoden.
Den mest spridda copyleft-licensen torde vara GNU GPL (med stark copyleft). FSF har också publicerat GNU LGPL (med svag copyleft), och den ändå mer restriktiva GNU AGPL (som hindrar bidragsgivare från att ta sig runt kravet på att dela med sig av källkoden genom att inte distribuera den kompilerade koden men köra den som Software as a service på en ASP-server i ett datornätverk).
Tillåtande licenser (permissive licenses), exempelvis public domain, lyder inte under copyleft-villkor. Det innebär att den som modifierar, säljer eller annars sprider programvaran inte är skyldig att göra källkoden tillgänglig. Flertalet tillåtande licenser förutsätter att upphovspersonen attribueras och att licensvillkoren nämns. Kända exempel är ursprunglig och modifierad BSD-licens och Apache License.
De problem som gäller när man försöker kombinera programkomponenter med potentiellt inkompatibla licensformer kallas licensspridning. En tillåtande licens kan (med vissa undantag) omvandlas till en mer restriktiv licens, exempelvis från public domain till copyleft, men inte i omvänd riktning (utom av upphovspersonerna själva, då de kan parallellpublicera sina egna kodrader under flera licensformer). Programkod under de flesta tillåtande licenser kan kombineras med varandra, med proprietär programkod eller programkod med copyleft. I de senare fallen är det i praktiken den proprietära licensen respektive copyleft-licensen som gäller för det kompilerade programmet (medan de ursprungliga licenserna gäller för enskilda källkodsfiler).
Distribution Det är fullt möjligt för en utomstående att kopiera och sälja program med öppen källkod. Eftersom vem som helst som fått tag på programmet kan erbjuda det vidare gratis tenderar program med öppen källkod att finnas tillgängliga på Internet för gratis nedladdning. Det betyder inte att sådana program inte kan säljas, i själva verket ingår i licensen ofta krav på att den som fått programmet skall få ge det vidare mot betalning. I priset ingår ofta distributionsmedium, installation eller möjlighet till support.
För utvecklarna är det ofta en fördel att programmet används av så många som möjligt. Dels innebär det att flera personer kan bidra till utvecklingen, dels att programmet blir mer känt och därmed attraktivare. Köpstarka kunder kommer i många fall att ändå vända sig till de ursprungliga utvecklarna, dels för att säkert få den officiella versionen, dels för att de som utvecklat programmet kan erbjuda konsulttjänster, då de känner programmet väl.
Community Karaktäristiskt för öppen källkodsprojekt är att programmen utvecklas, testas och underhålls av oberoende personer, organisationer och företag som koordinerar sitt samarbete via ett community på internet.
Arbetssättet skiljer sig från utveckling av klassisk proprietär källkod där det vanligen är ett enda företag som utvecklar och tillhandahåller programmet eller en avgränsad komponent i produkten, och hemlighåller källkoden för andra företag, och där företagets anställda har tydliga ansvarsområden. Dock finns det även inom öppen källkods-projekt vanligen en fast hierarki med en eller ett fåtal personer som har sista ordet om vad som kommer att bli en del av den officiella produkten. Den som beslutar vilka bidrag som får föras in i det slutliga projektet kallas (med liknande betydelse som kommittent).
Alternativa versioner kan underhållas parallellt med den officiella, inom projektet. Så är självklart fallet med kod som inte ännu uppfattas som mogen, men det finns ingen principiell skillnad mellan kod som avvisats för att de ledande rösterna inte tror på den och kod som endast behöver finslipning. Ibland utvecklas den alternativa versionen (förgreningen) som ett skilt projekt, men man strävar i allmänhet efter att så långt som möjligt hålla koden kompatibel med den officiella versionen.