Transcript laisva

Laisva, nemokama ir atvirojo kodo programinė įranga

Tomas Blažauskas KTU, 2007

Nagrinėjamos temos • Laisvos,

nemokamos

ir programinės įrangos sąvokos;

atvirojo kodo

• Atvirojo kodo licencijos ir jų skirtumai; • Atvirojo kodo programų saugyklos ir atvirojo kodo programų paieška jose.

Įvadas

• “Laisva”, “nemokama” ir “atvirojo kodo” programinė įranga turi vieną bendrą dalyką – ja galima naudotis nemokamai, tačiau šios sąvokos turi daug skirtumų.

• Skirtumai tarp šių sąvokų neturi didelės reikšmės tol, kol vartotojui pakanka naudoti tokią programinę įrangą, kokia ji yra teikiama. Atsiradus poreikiui modifikuoti ir taikyti programinę įrangą savuose sprendimuose, skirtumai tarp atskirų licencijų tipų įgauna didesnę reikšmę.

• Licencijų tipai gali plačiai įtakoti programinės įrangos pasirinkimą.

Laisva programinė įranga (1)

• Laisva programinė įranga pasaulyje suprantama dvejopai: laisva nuo apmokestinimo (ši samprata plačiai paplitusi tarp programinės įrangos vartotojų) ir suteikianti naudojimo laisvę programinė įranga.

• Kalbant apie naudojimo laisvę suteikiančią programinę įrangą, bus naudojamas terminas „laisva programinė įranga“, o laisva nuo apmokestinimo programinė įranga bus įvardinama kaip „nemokama programinė įranga“.

Laisva programinė įranga (2)

• • Laisva programinė įranga, kaip ją apibrėžia FSF (Free Software Founation) organizacija, yra programinė apribojimų.

įranga, kurią galima kopijuoti, tyrinėti, modifikuoti ir platinti be Laisva programinė įranga turi tenkinti tokius keturis principus (arba užtikrinti tokias keturias „laisves“): – – – – Laisvė naudotis programa (vykdyti programą) bet kuriuo tikslu (laisvė 0); Laisvė tyrinėti ir modifikuoti programą pritaikant ją savo reikmėms (laisvė 1); kopijuoti ir platinti programą (laisvė 2); Laisvė tobulinti programą ir patobulinimus į viešumą (laisvė 3).

išleisti šiuos

Laisva programinė įranga (3)

Programinės įrangos licencijos pasižymi tokiomis apibendrintomis savybėmis:

Laisva programinė įranga (4) • Išskiriami trys pagrindiniai laisvos programinės įrangos tipai:

– Programinė įranga, kuriai taikomos Copyleft nuostatos (tarp kurių žinomiausia licencija yra GNU GPL). – Programinė įranga teikiama su BSD tipo licencijomis.

Viešos nuosavybės programinė įranga.

Nemokama programinė įranga

• Nemokama programinė įranga (freeware) yra nuosavybės teisėmis apsaugota programinė įranga, kuria nemokamai leidžiama naudotis neribotą laikotarpį.

• Nemokamos programinės įrangos kūrėjai kartu su programine įranga neteikia programos išeitinių tekstų.

• Tuo siekiama išlikti vieninteliais programinės įrangos autoriais, bei išlaikyti savo rankose tolesnę programinės įrangos kūrimo kryptį.

• Nustojus kurti nemokamą tampa laisva programine įranga).

programinę įrangą, jos tobulinimas dažnai perleidžiamas kitiems programuotojams nemokamos programinės įrangos teisėmis arba pateikiami išeitinius tekstus atvirojo kodo bendruomenei (tai yra,

Atvirojo kodo principai (1)

Remiantis atvirojo kodo apibrėžimu (Open Source Definition, OSD), atvirasis kodas reiškia ne tik prieigą prie išeitinio kodo.

Atvirojo kodo programinės įrangos platinimo sąlygos turi atitikti šiuos kriterijus:

1.Laisvas platinimas

Licencija neturi uždrausti kam nors parduoti ar perduoti programinės įrangos kaip po programinės įrangos paketo dalies, kurią sudaro programos iš kelių skirtingų šaltinių. Licencija neturi reikalauti honoraro ar kokio kito mokesčio už tokį pardavimą.

2.Išeitinis kodas

Programa privalo turėti išeitinį kodą bei turi leisti platinimą išeitiniu kodu, o taip pat sukompiliuota forma.

Atvirojo kodo principai (2)

3. Išvestiniai darbai

Licencija turi leisti atlikti modifikacijas bei kurti išvestinius darbus, o taip pat turi leisti tuos darbus platinti su tokia pat licencija kaip ir išeitinis kodas.

4. Autoriaus išeitinio kodo neliečiamumas

Licencija gali uždrausti platinti modifikuotą išeinamajį kodą, tiktai tuo atveju, jei ji leidžia platinti originalų kodą kartu su pataisymų failais (patches), kurie leistų modifikuoti galutinį produktą kompiliacijos metu.

Licencija gali reikalauti, kad modifikuoti produktai turėtų kitokį pavadinimą ar versijos numerį, nei autoriaus originalus produktas.

5. Jokios diskriminacijos prieš asmenis ar grupes

Licencija neturi diskriminuoti jokio asmens ar asmenų grupės.

Atvirojo kodo principai (3)

6. Jokių apribojimų panaudojimo sritims

Licencija neturi uždrausti programos naudojimo tam tikroje specifinėje srityje. Pavyzdžiui licencija negali uždrausti naudoti programos komerciniams tikslams, arba genetinių tyrimų atlikimui.

7. Licencijos platinimas

Teisės ir pareigos apibrėžtos licencijoje, turi liesti visus, kuriems yra išplatinama programinė įranga ar jos išeitinis kodas. Licencija neturi būti platinama su kokia nors kita papildoma licencija, kurią būtų privaloma vykdyti arba su ja sutikti.

Atvirojo kodo principai (4)

8. Licencija neturi būti specifinė produktui

Teisės priskirtos programai neturi priklausyti nuo to ar ji yra programinio paketo (distribucijos) dalis. Visos šalys, kurioms programa yra išplatinta turi gauti tokias pačias teises, kaip ir tie, kurie gauna programą kartu su visu programiniu paketu.

9. Licencija neturi riboti kitos programinės įrangos

Licencija neturi riboti programinės įrangos platinamos kartus su licencijuojamomis

atžvilgiu

programomis.

Pavyzdžiui, laikmenoje privalėtų būti atvirojo kodo.

technologijos ar naudojamos sąsajos tipo.

licencija neturi reikalauti, kad visa programinė įranga platinama toje pačioje

10.Licencija turi būti neutrali technologijų

Nei viena licencijos sąlyga neturi priklausyti nuo individualios

GNU bendroji viešoji licencija (GPL)

GNU Bendra Viešoji Licencija (angl. GNU General Public License arba GPL) yra laisvosios programinės įrangos licencija, kuri buvo sukurta GNU projektui, šiuo metu tai viena populiariausių atvirojo kodo licencijų.

GNU projektas buvo inicijuotas 1984m., kurio tikslas buvo sukurti laisvą Unix šeimos operacinę sistemą. Dabar GNU programinė įranga labai paplitusi ir dažnai naudojama: Unix bei Linux operacinės sistemos, įvairios taikomosios programos - The Gimp (piešimo programa), OpenOffice.org (biuro programų paketas) ir daugelis kitų.

GPL licencijos aspektai

• Pagrindiniai GPL licencijos aspektai: – Kiekvienas gali platinti originalius išeities kodus. Kiekvienoje kopijoje būtina įtraukti atitinkamus garantijos nebuvimo ir autorinių teisių įspėjimus. Galima imti pinigus už fizinį kopijos perdavimą bei garantinį aptarnavimą.

– Kiekvienas gali taisyti pagal savo poreikius išeities kodus ir lygiai taip pat platinti savo pakeistą versiją (nurodant keistuose failuose autorių atlikusį keitimus ir keitimų datas): – Kiekvienas gali platinti programą išeities tekstų ir vykdomųjų programų forma, įsipareigodamas paprašius pateikti išeities kodus (siūlymas apie išeities tekstus pateikimą esant reikalui turi būti įtrauktas į platinamą paketą).

GPL licencijos aspektai

• Pagrindiniai GPL licencijos aspektai (tęsinys): – Draudžiama kopijuoti, modifikuoti, licencijuoti ar platinti kitaip, nei numatyta licencijoje.

– Programos modifikavimo metu licencija negali būti pakeista.

– Licencija nesuteikia jokios garantijos - visą riziką dėl programos naudojimo prisiima kiekvienas naudotojas asmeniškai.

– Jei norima įtraukti programos dalis į kitą laisvą programinę įrangą platinamą pagal kitą licenciją, siūloma kreiptis į įtraukiamų dalių autorius prašant jų sutikimo.

GNU laisvoji viešoji licencija (LGPL)

LGPL yra laisvos programinės įrangos licencija publikuota FSF. Ji buvo sukurta ieškant kompromiso tarp griežtų Copyleft tipo licencijų (kaip GNU GPL) ir paprastesnių BSD tipo licencijų leidžiančių laisvesnį laisvos programinės įrangos panaudojimą.

• LGPL licencija buvo sukurta turint omenyje programinių bibliotekų laisvesnį naudojimą, kadangi GPL licenciją turinčios bibliotekos negali būti panaudotos uždaro kodo komerciniuose projektuose.

• Pagrindinis skirtumas tarp GPL ir LGPL licencijų yra tas, kad pastaroji gali būti naudojama programų teikiamų ne (L)GPL licencijų pagrindu.

LGPL licencijos pagrindiniai aspektai

LGPL licencijos pagrindiniai aspektai: – LGPL licenziją turinčią biblioteką galima naudoti uždaro kodo projektuose tol, kol šie projektai naudoja nepakeistą bibliotekos versiją. LGPL licenzijoje nurodyta, jog bet kuris asmuo bet kada savo kopijos licenziją gali pakeisti į GPL.

– LGPL licenzija vis dar reikalauja, jog su ją naudojančiu uždaru kodu prireikus būtų galima sujungti naujesnę suderinamą šios bibliotekos versiją.

– LGPL taip pat reikalauja palikti vartotojui teisę pačiam aiškintis sukompiliuotos uždaro kodo programos veikimą, atlikti atvirštinę inžineriją ir savo darbo vietoje naudoti pakeistas tokios programos versijas.

– Kaip kraštutinė priemonė kai kuriais atvejais gali būti naudojama sujungimo (linking exception) išimtis. Sujungimo išimtis anksčiau minėtų reikalavimų nekelia.

BSD licencijų šeima

BSD licencija - viena iš licencijų skirtų atviro kodo programinei įrangai. Pradžioje ji buvo naudojama Berklio Programinės įrangos Unix tipo operacinės sistemos pakete.

Iš to ir kilo licencijos pavadinimas.

BSD licencija yra liberalesnė už GPL – ji nedraudžia naudoti programinio kodo uždaruose komerciniuose projektuose.

BSD licencija reikalauja tik naujos programinės įrangos licencijoje išsaugoti originalios programos autorius ir neskelbti jų vardo naujo gaminio reklamoje be autorių sutikimo.

• Šiuo metu egzistuoja kelios plačiai paplitę originalios BSD licencijos modifikacijos - NetBSD, FreeBSD, OpenBSD, Xiph.Org Foundation licencijos.

Atvirojo kodo programų saugyklos

• Egzistuoja programų specializuoti saugojimui, portalai skirti platinimui atvirojo ir kodo kūrimui bendradarbiaujant (toliau šie portalai bus vadinami saugyklomis).

• Šie portalai, be įrankių skirtų atvirojo kodo programų kūrimui bendradarbiaujant, kaupia įvairią statistiką apie projektus, registruoja aktyvumą. Pagal teikiamus rodiklius galima susidaryti nuomonę apie atvirojo kodo kokybę, brandą bei tinkamumą konkrečiam projektui.

Atvirojo kodo programų saugyklos • Populiariausios yra šios atvirojo kodo programų saugyklos:

SourceForge. Didžiausia ir plačiausiai žinoma atvirojo kodo projektų saugykla, prižiūrima VA Software kompanijos. Turi apie pusantro milijono registruotų vartotojų ir talpina daugiau nei 140 tūkstančių projektų. Be programų kūrimo palaikymo priemonių teikia projekto aktyvumo, srauto statistiką.

GNU Savannah. FSF projektas skirtas išskirtinai laisvos programinės įrangos kūrimui ir palaikymui. Naudojama ta pati programinė įranga, kuri taikoma SourceForge saugykloje. Taikoma griežtesnė projektų kontrolė, projektų teikėjai turi nurodyti kuri laisvos programinės įrangos licencija taikoma jų projektui.

BerliOS. Įkurtas FOKUS (Atvirų komunikacijų Fraunhoferio institutas).

Pagrinde skirtas atvirojo kodo programinės įrangos kūrimui. Be programų kūrimo palaikymo priemonių teikia projekto aktyvumo, srauto statistiką.

Atvirojo kodo programų saugyklos • Populiariausios yra šios atvirojo kodo programų saugyklos (tęsinys):

GForge. Kaip ir GNU Savannah, GForge projektas atsirado VA Software uždarant išeitinius tekstus (GForge pagrindas – paskutinė atvira VA Linux (tuometinė VA Software) sistemos versija). Be programų kūrimo palaikymo priemonių teikia projekto aktyvumo, srauto statistiką.

Freepository. Išleista kaip atvirojo kodo programinė įranga. Neuždeda jokių licencinių apribojimų projektams. Talpina daugiau nei 12 tūkstančių projektų. Be minėtų saugyklų naudojamos ir kitos paplitusios atvirąjį ir uždarąjį kodą talpinančios saugyklos. Tai –

gna.org

,

Novell Forge

,

Sarovar

,

Tigris.org

ir neseniai atsiradusi (2006m.) google sistema (

Google Code

).

SourceForge naudojimas atvirojo kodo paieškai

Greitoji paieška Išsamioji paieška

SourceForge naudojimas atvirojo kodo paieškai

Paieškos rezultatų lentelė

Projektų rango skaičiavimas SourceForge sistemoje Į rango skaičiavimo komponentai:

srautas

, Rangas matuojamas formulę įtraukiami

komunikavimo

ir tokie statistiniai

kūrimo aktyvumas

.

įtraukiant paskutinių septynių dienų duomenis.

• Matuojant srautą, vertinama į srautą orientuota statistika: – Kiek kartų vartotojai parsisiuntė programinę įrangą; – Kiek kartų vartotojai atvėrė pagrindinį projekto puslapį; – Kiek kartų vartotojai atvėrė įvairius projekto puslapius. • Matuojant komunikavimą, vertinama į komunikavimą orientuota statistika: – Kaip buvo naudojamas projekto veiklos (Tracker) įrankis; – Kiek pateikta pranešimų projekto diskusijų sistemoje ; – Kiek pateikta pranešimų projekto susirašinėjimo sistemoje.

• Matuojant kūrimo aktyvumą, vertinama į programinės įrangos kūrimą orientuota statistika: – Kiek padedama programinės įrangos failų į projekto saugyklą; – Kada buvo išleistas paskutinis failas (naudojant failų publikavimo sistemą); – Kada paskutinį kartą prie sistemos jungėsi projekto administratoriai .

SourceForge statistinių duomenų pateikimas

Projekto kaupiamų statistinių duomenų pateikimas grafikais. Paspaudus grafiką, galima gauti išsamesnę informaciją.

Sėkmės!

Sėkmės darbe!