For nylig har jeg været forsker i Open Source licens spørgsmål. Før jeg begyndte at forske jeg havde meget lidt idé om sande betydning af Open Source selv om jeg har brugt Linux (en open source OS) for mere end 4 år!

Du skal være undrende, hvorfor skulle du læse dette? Baseret på mine erfaringer der er masser af ressourcer, som findes på Internettet, som vil tale om disse spørgsmål, men ingen af dem går ud fra en grundlæggende niveau, dvs fra et niveau, hvor selv en novice IT person kan også forstå, hvad der foregår.

Kommer fra en baggrund som ingeniør, jeg vil gerne begynde med meget grundlæggende og derefter bygge videre på det emne, for at sikre, at jeg forstår de fleste af de detaljer - mindre / større.

Forudsætninger

  1. Jeg vil bruge ordene "program" og "software" i flæng.
  2. Når jeg henvise til en Open Source operativsystemet (OS), jeg generelt betyde en Linux OS.

Hvad mener du med Open Source?
Faktisk er der mange mennesker tror, at Open Source betyder kun, at kildekoden skal være åben, dvs tilgængelige for alle. Men gæt hvad? De er forkerte. Det er ikke hele korrekt definition af Open Source. Der er flere andre kriterier , der skal opfyldes, før vi kan kalde noget som Open Source software.

Er Open Source betyder, at jeg er nødt til at bruge GPL licens?
Noways. Når du ved, at dit program er en Open Source, skal du beslutte en passende licens til det baseret på din strategi (hvis du er et selskab), brug og biblioteker (Hvis nogen), som du har brugt til at skrive dit program. GPL er blot en af de flere type af Open Source licenser, selv om det er en af de mest populære licenserne i Open Source samfundet.

Kan jeg sælge min open source program?
Ja. Der er ingen begrænsning på hvor meget du kan opkræve betaling for din Open Source program, du har udviklet. Altså for eksempel antage, at du beslutter at vælge en GPL licens til din Open Source program, og du ønsker at sælge den; Ifølge GPL licens ord, du kan sælge det, selv om der er én undtagelse (relateret til kildekoden) til det, som jeg synes er temmelig indlysende nu. Definitionen af fri software (= Open Source Software) omfatter retten til at sælge dine kopier af programmet.

Behøver jeg at frigive kildekoden, når jeg sælger mit program (Open Source eller Lukket / Farmaceutiske)?
Faktisk kan det være en smule forvirrende, så jeg vil igen starte fra et meget grundlæggende niveau.

Typisk hvis du ikke ønsker at frigive kildekoden til det offentlige så dit program ikke er teknisk en Open Source program. I dette tilfælde er det et lukket / proprietært software, så længe det ikke er "afledt" fra andre program. Vi vil komme ind på spørgsmålet om, hvad der anses som "afledt", senere som det der ikke er nogen egentlig enighed om dette.

Altså for eksempel, hvis du bruger en Debian eller Ubuntu Linux OS og du beslutter dig for at skrive et simpelt program (test.c) i C sproget vha. en editor som vi eller emacs, og du kompilere det ved hjælp af GCC compiler, så vil din resulterer binære / program (test) kan kaldes proprietær software, og du kan sælge det til offentligheden uden at slippe kildekode, så længe følgende betingelser er opfyldt:

1. Deres program ikke indeholder direkte en del af GPL licenseret software / bibliotek.

2. Deres program er fremstillet af nogen af GPL licenseret software / bibliotek.

Men på dette tidspunkt kan du vælge at gøre din software Open Source ved at vedtage en Open Source licens som f.eks GPL. Antag, at du beslutter at vælge GPL licens for din test.c program. Nu kan du stadig sælge din binære for et gebyr / afgift, men på samme tid, du har til at frigive kildekoden også sammen med den binære fil. Derfor er det kaldes Open Source.

Desuden bør man huske på, at engang valget af licens er ikke udelukkende baseret på os. For eksempel antage, at du i høj grad brug koden af GPL licens bibliotek i din test.c program. Så som standard dette program (test.c) vil blive betragtet som afledt software, og du bliver nødt til at bruge GPL licensen for dit program, og anerkender, at du har brugt koden fra så-og-så bibliotek a.ka. den "viral effekt" af GPL. Du kan stadig sælge dette software (test.c), men nu du er forpligtet til at frigive kildekoden sammen med den binære hvis du beslutter dig for at distribuere det til offentligheden under GPL licensen .

Nu kan du spørge, hvad nu hvis jeg ikke har til hensigt at distribuere det og bare holde det for mig selv eller min organisation. Skal jeg stadig nødt til at frigive kildekoden siden brugte jeg en masse kode fra en GPL baseret bibliotek?
Ingen ved alle I dette tilfælde, er du ikke forpligtet til at frigive kildekoden og du beslutter at gøre noget med din software (test.c) internt.

Det er uklart for mig, hvad der udgør en afledt software? Det er forvirrende. Er der andre bedre løsning?
Desværre er der ingen generel enighed om, hvad man kan kalde som afledte software. Men heldigvis er der en bedre løsning, der vil holde dig væk fra at overtræde nogen form for licens aftale - brug en LGPL licens bibliotek, som også er kendt som Lesser GPL, som er mere som en eftergivende / proprietær licens. Før vi forstå den vigtigste forskel mellem LGPL og GPL er det nødvendigt at forstå, hvad der betragtes som "afledt".

Nogle mennesker i samfundet mener, at hvis dit program dynamisk links til en software bibliotek derefter dit program ikke kan kaldes som "afledt" software. Men hvis du statisk link softwaren biblioteket til dit program, så er det der kaldes en "afledt" software, og dermed kan du ikke kræve helt som din egen software. Men for biblioteker, der er baseret på GPL licensen nogle mennesker mener endda dynamisk linke til dit program (test.c) som også er en "afledt" software.

Løsningen - LGPL
Så for at holde sig væk fra disse tvetydighed, der er mange biblioteker, der nu frigivet under Lesser GPL (LGPL) licens. Betyder, at du kan linke til dem, bibliotek (statisk eller dynamisk) til dit program (test.c), og du kan stadig vælge at beholde din kode proprietære (lukket source program). Selvom du vil være forpligtet til at frigive alle de ændringer, du kan ende op yder til LGPL biblioteket kode i din test.c program.

For eksempel er GNU C biblioteket frigivet under LGPL og det er derfor det er så populært og udbredt. Faktisk de fleste af de open-source software biblioteker er frigivet under LGPL licens. Men der er grunde , som man gerne vil frigive et bibliotek under GPL i stedet LGPL

Derfor er det meget vigtigt, at du beslutter dig for, hvilken type licens (sige for eksempel GPL eller LGPL) bibliotek, du ønsker at bruge i dit program afhængig af din strategi.

Hvordan kan jeg tjene penge, hvis jeg slippe mit program under GPL licens (med kildekode)? Er det ikke et paradoks?
Du ved, hvad jeg også netop bruge til at tænke det samme, og det var en af de vigtigste grund til, at jeg ønskede at lave noget research om alt dette. I virkeligheden er der det virkelige liv eksempler , hvor folk har været at tjene penge, selv efter frigivelse af deres software under GPL licensen for over 10 år.

Jeg tror, en af de væsentligste årsag bag dette er en simpel økonomisk / erhvervslivet princippet om offeromkostninger tid . For eksempel, selv om jeg frigive en software til min kunde under GPL, ville de stadig komme til mig for at gøre nogle ændringer / tilpasning til det stykke software, selvom de har kildekoden til det. Selvfølgelig kunden kunne gøre det ved sig selv eller kan leje en programmør, men der vil være en masse over hovedet omkostninger forbundet ved at gøre det som for eksempel at få at vide, det stykke software, fortrolige med biblioteker, osv. Somebody har at gøre arbejdet (at foretage ændringer / tilpasninger), så hvorfor ikke den oprindelige person / firma, der gjorde det.

Jeg mener, at dette blog har allerede været en lang, så jeg vil gerne slutte det her. I fremtiden, hvis ikke nogle mere forskning på dette, eller hvis jeg får mere information om det, vil jeg sende det ind i en ny blog.

Indtal en kommentar, hvis du har spørgsmål eller forslag.

Tak for opholdet denne lange!

Random Stillinger