Vad är öppen källkod?
Öppen källkod är mjukvara vars källkod är fritt tillgänglig att läsa, använda och vidareutveckla, enligt villkoren i en licens. Det är fundamentet som nästan all modern utveckling vilar på. Fritt betyder dock inte kravlöst: licenserna skiljer sig åt, och styrkan i granskning och community följs av att förvaltningsansvaret blir ert eget.
Öppen källkod är en av de bärande idéerna i modern mjukvara, och samtidigt ett begrepp som lätt missförstås. Många hör “gratis” och stannar där, men bilden är mer nyanserad än så. Här är vad öppen källkod faktiskt är, varför det oftast är en styrka, och vad du bör ha koll på.
Definitionen
Öppen källkod (open source) är mjukvara vars källkod är fritt tillgänglig att läsa, använda och vidareutveckla, i enlighet med villkoren i en licens. I stället för att bara få den färdiga, förseglade produkten får vem som helst tillgång till själva ritningen – och rätten att bygga vidare på den.
Det står i kontrast till sluten, proprietär mjukvara, där koden är en företagshemlighet och du bara ser slutresultatet. Öppen källkod är i praktiken det fundament som nästan all modern utveckling står på: operativsystem, programmeringsspråk, databaser och otaliga byggstenar som utvecklare världen över delar, granskar och förbättrar tillsammans. Nästan varje system som byggs i dag vilar på lager av öppen kod.
Gratis är inte kravlöst
Den vanligaste missuppfattningen är att öppen källkod helt enkelt är gratis, punkt. Det stämmer att man oftast slipper licensavgift, men det är inte samma sak som att det är fritt fram utan villkor.
Varje projekt med öppen källkod kommer med en licens, och licenserna skiljer sig åt. En del är mycket tillåtande och låter dig göra i stort sett vad du vill. Andra ställer villkor – den mest kända sorten, copyleft, kan kräva att om du bygger vidare på koden och sprider resultatet, så måste även din egen kod bli öppen. För ett kommersiellt system kan det få stora följder. Att förstå vilken licens en komponent har är därför ingen formalitet, utan en fråga som kan påverka hela affären.
Varför det oftast är en styrka
Trots villkoren är öppen källkod i de allra flesta fall ett klokt val, av flera skäl.
- Granskning. När koden är öppen kan många oberoende ögon läsa och granska den. Fel och sårbarheter hittas och rättas ofta snabbare än i sluten kod, som bara leverantören ser inuti.
- Community. Populära projekt bärs av stora gemenskaper som utvecklar, dokumenterar och svarar på frågor. Kunskapen finns tillgänglig för alla, i stället för inlåst hos en enda leverantör.
- Ingen leverantörslåsning. Med öppen kod är du inte utlämnad till ett enskilt företags prislista, färdplan eller fortlevnad. Går ett projekt i stå kan andra ta vid, eftersom koden är fri.
Det är därför frågan sällan är om man ska använda öppen källkod, utan vilken och hur.
Ett konkret exempel
Säg att ni bygger en ny webbtjänst. I stället för att skriva allt från grunden vilar den på öppna byggstenar: ett ramverk för själva applikationen, ett bibliotek för inloggning, en databas. Allt är öppen källkod, fritt att använda, och sparar er månader av arbete.
Men med det följer ett ansvar. Var och en av de komponenterna uppdateras löpande, ofta just för att täppa till upptäckta säkerhetshål. Om ingen håller dem aktuella sitter ni efter ett tag på gammal kod med kända sårbarheter – en öppen dörr för den som letar. Fördelen med öppen källkod är alltså verklig, men den kommer med ett skötselansvar.
Förvaltningsansvaret blir ert
Det här är kärnan att ta med sig. Till skillnad från en köpt produkt med supportavtal finns det ingen leverantör som per automatik ansvarar för en öppen komponent. Ansvaret för att hålla den uppdaterad och säker landar hos den som använder den – ni, eller er utvecklingspartner.
Det är inget argument mot öppen källkod; fördelarna överväger nästan alltid. Men det bör vara ett medvetet val, med någon som håller ordning på vilka komponenter systemet vilar på och ser till att de underhålls. Vill ni ha hjälp att gå igenom vad ert system bygger på och hur det hålls säkert över tid, hör av er så tittar vi på det tillsammans.
Vanliga frågor
Vad är öppen källkod, enkelt förklarat?
Det är mjukvara där själva källkoden – ritningen – är öppen för vem som helst att läsa, använda och bygga vidare på. Motsatsen är sluten kod, där du bara får den färdiga produkten och inte ser hur den fungerar inuti. Öppen källkod är byggstenar som utvecklare världen över delar och förbättrar tillsammans, och som ligger till grund för det mesta som byggs i dag.
Betyder öppen källkod att det är gratis?
Oftast går det att använda utan licensavgift, men gratis är inte samma sak som kravlöst. Varje projekt kommer med en licens som bestämmer vad du får och inte får göra. Vissa är mycket tillåtande, andra ställer villkor – till exempel att din egen kod också måste bli öppen om du bygger vidare. Kostnaden ligger sällan i licensen utan i drift och förvaltning.
Är öppen källkod säkert att använda?
Oftast är det en styrka. Att koden är öppen betyder att många ögon kan granska den och hitta fel, till skillnad från sluten kod som bara leverantören ser. Populära projekt är ofta mycket väl genomlysta. Men öppenheten sköter sig inte själv – man måste hålla komponenterna uppdaterade, eftersom kända sårbarheter i gammal kod annars blir en väg in.
Vad menas med att välja fel licens?
Licenser för öppen källkod skiljer sig åt i vad de kräver. En tillåtande licens låter dig använda koden fritt, medan en så kallad copyleft-licens kan kräva att det du bygger vidare också blir öppet. Använder ett kommersiellt projekt en sådan komponent utan att förstå villkoren kan ni tvingas öppna er egen kod. Därför är licensfrågan värd att ta på allvar.
Vem ansvarar för öppen källkod vi använder i vårt system?
Ni själva. Det finns ingen leverantör med supportavtal bakom en öppen komponent – ansvaret för att hålla den uppdaterad och säker landar hos den som använder den, alltså er eller er utvecklingspartner. Det är inte ett argument mot öppen källkod, men det bör vara ett medvetet val, med någon som håller koll på uppdateringar och sårbarheter över tid.