Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Operativni sistemi
  • Softver otvorenog koda ima sljedeća potrebna svojstva. Korištenje softvera otvorenog koda za stvaranje uspješnih komercijalnih proizvoda

Softver otvorenog koda ima sljedeća potrebna svojstva. Korištenje softvera otvorenog koda za stvaranje uspješnih komercijalnih proizvoda


Većina korištenog softvera distribuira se u kompajliranom obliku. Ovo sugerira da izvorni kod takvih programa prolazi kroz poseban kompajler koji ga pretvara u jezik razumljiv kompjuteru. Zauzvrat, softver koji koristi open source, je sušta suprotnost.

Takav se kod, u pravilu, distribuira zajedno s kompajliranom verzijom programa, što omogućava njegovu modifikaciju ili poboljšanje na svaki način kako bi se mogao obavljati širi spektar zadataka. Programeri ovakvih programa vjeruju da će s vremenom open source omogućiti da softverski proizvod postane korisniji i osloboditi ga velikog broja grešaka.

Postoji nekoliko kriterija podobnosti za programe otvorenog koda:

  • besplatna distribucija softverskog paketa, ali istovremeno može biti i dio komercijalnog projekta;
  • obavezna primjena izvornog koda;
  • mogućnost bilo koga da uređuje izvorni kod;
  • mogućnost distribucije modificiranih verzija programa;
  • ne bi trebalo postojati zahtjev da se isključi drugi softver ili da se ometa njegov rad.

Razmotrimo jedan od najupečatljivijih primjera softvera koji prati otvoreni izvorni kod koji je dobio distribuciju širom svijeta. Početkom 1990-ih, finski student Linus Torvalds razvio je potpuno novi operativni sistem baziran na Unixu, koji je danas poznat kao linux. Sistem je pušten pod licencnim ugovorom GNU Opća javna licenca, koji je sadržavao definiciju otvorenog koda sa pravne tačke gledišta. Prilično veliki broj programera je počeo da koristi i poboljšava ovaj operativni sistem. Sakupivši poboljšanja programera širom svijeta u jedinstvenu cjelinu, 1994. Linus Torvalds izdaje Linux verziju 1.0. Prije toga, numeriranje verzija je vršeno počevši od nule.

Vremenom je postojala opšta zabrinutost potrošača u vezi sa nedostatkom garancije, kao i tehničke podrške za takav softver. Tako Red Hat Software kreira službeni Red Hat Linux softverski paket koji uspijeva prodati. Najznačajnija karakteristika takvog tržišnog operativnog sistema bila je garancija i tehnička podrška, što nije manje važno.

Nekoliko drugih kompanija je takođe razvijalo nove verzije Linuxa za prodaju, i ovi paketi su bili dodatno opremljen raznim softverom, među kojima su: Mozilla Internet pretraživač, kreiran na Netscape jezgru, Apache web server, Perl web skript jezik, PNG format datoteke slike i mnogi drugi. Osim toga, postoje verzije navedenih softverskih paketa razvijene za Windows i Android operativne sisteme. Ovo sugerira da su programi otvorenog koda dostupni ne samo za računare, već i za mobilne uređaje.

Sumirajući, vrijedi reći da programi koji dolaze sa svojim otvorenim kodom imaju brojne nedostatke. Prije svega, ovo razne verzije, zbog čega usavršavanje jednog programa može uzrokovati stvaranje novog nezavisnog softverskog paketa. Druga stvar koju treba naglasiti je korištenje zastarjelih programa od strane korisnika, u kojem se neke greške možda neće popraviti, nije moguć rad s novim formatima datoteka i tako dalje. Primjer takvog slučaja su programi Microsoft Word i Open Office. Ako je u prvom paketu napisana neka složena formula, onda je drugi jednostavno ne može pročitati.

Također među softverima otvorenog koda ne postoje tzv specijalnih paketa za knjigovodstvo i izvještavanje. Još jedan nedostatak je direktno vezan za hardver, činjenica je da se pri prelasku sa Windowsa na Linux mora uzeti u obzir da Linux drajveri ne postoje za sve modele računarskih uređaja, što će uzrokovati kvar sistema.

Međutim, ne zaboravimo na pozitivne aspekte takvog softvera, jer open source ima mnogo prednosti. Prvo, distribuira se sav softver otvorenog koda je besplatno. Drugo, takve programi se ponekad pojavljuju mnogo brže komercijalni zbog činjenice da je nekoliko hiljada ljudi uključeno u razvoj odjednom, a nije svaka kompanija u mogućnosti da plati rad nekoliko hiljada programera. Posljednja stvar koju treba napomenuti opcije brzog rješavanja problema, zahvaljujući čemu programi otvorenog koda rade stabilnije od komercijalnih.

Softver otvorenog koda ima svoje obožavatelje, a u posljednje vrijeme, kada je u pitanju razvoj nekakvih "nacionalnih" proizvoda, oni u osnovi podrazumijevaju open source. Paradoksalno, interesovanje za ovu vrstu softvera izazvalo je mnogo distorzija i zabluda koje u praksi onemogućavaju njegovu distribuciju.

Naša kompanija je uključena u open source projekte od 2005. godine - i kroz razvoj vlastitih open source rješenja (OpenVZ, CRIU projekti), učestvujući u drugim open source projektima (QEMU, OpenStack, libvirt, libcontainer, itd.). Tokom 10 godina prikupili smo neke od najčešćih mitova o softveru otvorenog koda. Govorit ću o svakoj od zabluda i objasniti zašto je to pogrešno. Sigurno ćete zapamtiti još toliko, ali, po mom mišljenju, ovih pet je najpaklenijih.


Projekat otvorenog koda je projekat otvorenog koda.

Svaki softverski projekat sastoji se od mnogo artefakata: izvornog koda projekta, informacija o neispravljenim defektima, testnog izvornog koda, dokumentacije. Izvorni kod projekta je samo njegov dio, slobodan pristup kojem ne daje pravo da se cijeli projekt naziva otvorenim kodom. Pored izvornog koda, ostali razvojni artefakti bi trebali biti slobodno dostupni, a što je više artefakata otvoreno, to je projekat otvoreniji za saradnike (ljude koji žele doprinijeti projektu). Osim toga, potrebni su transparentni procesi između svih članova zajednice, otvorena komunikacija u projektu itd. Sve ove mjere samo će doprinijeti razvoju projekta i plodnoj saradnji članova zajednice.

Kvalitet softvera otvorenog koda je lošiji jer svako može napisati kod za njega

Glavni princip otvorenog koda - otvoreni zajednički razvoj - sam po sebi je garancija da se nekvalitetni kod, štake i zakrpe jednostavno ne mogu sakriti od drugih sudionika. Osoba koja učestvuje u takvim projektima spremna je na činjenicu da će njegov rad biti podvrgnut i analizi i kritici, što znači da neće hakovati. Njegova reputacija je na kocki i niko je ne želi izgubiti.

Osim toga, u nekim zajednicama (na primjer, zajednica oko razvoja Linux kernela) postoji strogi princip - samo najbolji, testirani i idealni kod se prihvata u izvorno jezgro. Pokušaj dodavanja nekvalitetnih izmjena bit će odbijen, drugi pokušaj je prepun gubitka ugleda osobe ili kompanije-saradnika.

Odnosno, otvoreni projekat zaista omogućava svakome da učestvuje u pisanju koda, ali u ozbiljnim projektima, zbog visokog ulaznog praga, kod ljudi sa nedovoljnim nivoom stručnosti neće biti prihvaćen.
Većina velikih IT kompanija (IBM, Google, Canonical, Parallels, itd.) ima čitave odjele u kojima su stručnjaci plaćeni za rad na open source projektima i tako indirektno rade na proizvodima kompanije.

Odvojeno, vrijedi spomenuti da su kompanije koje razvijaju proizvode zasnovane na otvorenim projektima zainteresirane za poboljšanje koda otvorenih projekata koji koriste tokom testiranja. Stoga se svi otkriveni problemi moraju popraviti i osigurati da se ovaj popravak doda glavnoj grani projekta kako bi bilo što manje razlika u vašem kodu i kodu otvorenog projekta. Naši proizvodi koriste kod drugih otvorenih projekata, tako da popravljamo probleme pronađene u kodu ovih projekata i šaljemo ih na gore. To je bio slučaj sa ranjivostima u RHEL kernelu: Red Hat je primetio Vladimira Davidova da je otkrio ozbiljne propuste CVE-2014-0203 i CVE-2014-4483 u jednom od ažuriranja jezgra RHEL6 (drugi problem je, inače, pronađen korišćenjem jedan od naših automatiziranih testova, koristeći Linux Test Project). Vasilij Averin je dobio pohvale za pronalaženje CVE-2014-5045, Dmitry Monakhov za CVE-2012-4508. Dobro testiranje Linux kernela je čak primetio i Andrew Morton (ko je ovo?): „Zanima me. Tokom proteklih nekoliko mjeseci, ljudi na @openvz.org su pronašli (i popravili) gomilu nejasnih, ali ozbiljnih i prilično starih grešaka. Kako ste otkrili ove bube?”

Ishod

Zapravo, svi gore navedeni mitovi uglavnom proizlaze od korisnika koji ili tek počinju raditi sa OpenSource softverom ili ga uopće nisu isprobali. Najbolji način da se riješite predrasuda je da počnete blisko surađivati ​​s takvim odlukama.
Nedavno smo objavili novu verziju našeg proizvoda Virtuozzo 7. Ako ste također zainteresirani za stvaranje najbolje tehnologije virtualizacije kontejnera, onda

Napori proizvođača računara da promovišu rješenja podržana snažnom marketinškom podrškom postali su nadaleko poznati. softver otvorenog koda(softver otvorenog koda). U savremenoj službenoj upotrebi na ruskom, ovaj fenomen se obično naziva besplatni softver(SPO).

Suština koncepta se sastoji u nekoliko principa za kreiranje i distribuciju softvera otvorenog koda:

  • dostupnost izvornih kodova za svakoga;
  • politika licenciranja distribucije zasnovana na jednoj od licenci koje je odobrila zajednica (pogledajte web stranicu opensource.org);
  • mogućnost direktnog učešća u razvoju i samostalnom ispravljanju grešaka u softveru;
  • mogućnost promjene nekih softverskih funkcija i prilagođavanja novim uvjetima (u zavisnosti od dostupnosti promjena za cijelu zajednicu);
  • maksimalna kompatibilnost sa otvorenim standardima;
  • sposobnost rada u različitim operativnim sistemima i na više platformi (cross-platform).

Ovi principi se koriste u stvaranju većine

SPO. Treba napomenuti da postoji značajna razlika između besplatno i besplatno ON. Iako većina licenci slobodnog softvera pretpostavlja slobodnu distribuciju, samo ovo svojstvo nije dovoljno da se softver smatra slobodnim softverom.

Otvoreni kod je već postigao neke važne pobjede protiv najjačih proizvođača vlasničkih (vlasničkih) softvera. Konkretno, web server Apache daleko ispred sličnih proizvoda drugih kompanija (uključujući Microsoft) u tržišnom udjelu zbog niske cijene, nezavisnosti od dobavljača, velikog broja iskusnih korisnika i podrške za programere. linux zaobišli sve druge vrste u pogledu ponude Unix za platformu intel, uključujući i dugogodišnjeg lidera SCO. Baze podataka otvorenog koda su snažno prisutne na tržištima operativnih sistema otvorenog koda i popularnih jeftinih internet rješenja. Prijetnja vlasničkom softveru dolazi iz prednosti slobodnog softvera koje su slične onima na Internetu, tj. otvorenost, sloboda prilagođavanja itd.

Besplatni softver već je snažno prisutan u serverskim operativnim sistemima, Internet infrastrukturi, serverima web aplikacija, DBMS-u za mala preduzeća i odjelima baziranim na web bazama podataka sa dinamičkom generiranjem web stranica, tehničkim i ugrađenim računarskim sistemima i softveru za serverske uređaje. Govoreći o infrastrukturi Interneta, treba napomenuti da većina uređaja pokreće operativni sistem i drugi softver otvorenog koda. Ovi uređaji uključuju servere imena domena, rutere, prekidače, firewall, gatewaye, balansere opterećenja, servere aplikacija i baza podataka itd.

S obzirom na ovaj napredak, softver otvorenog koda ugrožava firme čiji glavni izvor prihoda dolazi od naknada za pristup klijentima i naknada za licence za vlasnički softver. Otvoreni kod donosi softveru poslovni model zastarjelosti i komodifikacije na tržištu hardvera, model kojem je teško prilagoditi se tradicionalnom dobavljaču softvera, posebno lideru.

Mnogi dobavljači koji koriste poslovne modele otvorenog koda nisu se od samog početka razvijali kao tradicionalni proizvođači softvera. Kako softver otvorenog koda raste u tržišnom udjelu i snazi ​​na strateškim Internet tržištima, tradicionalni proizvođači softvera identificiraju prijetnje iz otvorenog koda i mogućnosti koje predstavljaju novi poslovni modeli. Naravno, tradicionalni proizvođači softvera imaju priliku da usvoje ove poslovne modele u cijelosti ili djelimično, u zavisnosti od njihovog portfelja proizvoda. Ali čak i tada, open source predstavlja opipljivu i vrlo stvarnu prijetnju načinu na koji softverske kompanije posluju.

Postoje četiri glavne prijetnje zatvorenim kompanijama iz otvorenog koda.

  • Pritisak cijena. Budući da licence otvorenog koda u suštini zahtijevaju slobodnu distribuciju softvera i njegovih modifikacija, cijene za slične tradicionalne proizvode moraju biti smanjene kako ne bi bile inferiorne u odnosu na softver otvorenog koda i kako bi se suzbio gubitak tržišnog udjela. Na primjer, SCO ne mogu uzeti $2,000 za Unix za platformu intel, dok linux dostupan besplatno, a Microsoft monopolizira desktop sektor. Tradicionalni dobavljači mogu, međutim, nadoknaditi neke od gubitaka tako što će svoje softverske proizvode učiniti boljim od softvera otvorenog koda i dodatno naplatiti za to.
  • Prilično dobra funkcionalnost."Dovoljno dobar" softver (ali ne i najbolji) može djelomično istisnuti proizvode tradicionalnih proizvođača softvera, koji su prečesto usmjereni na masovno tržište. Složenija (i skuplja) funkcionalnost u ranim fazama svog razvoja uvijek je usmjerena na relativno malu grupu specijaliziranih korisnika. Ali čak i proizvođači koji posluju na ovom tržištu i dalje moraju jasno shvatiti da će se tržište visokorazvijenog softvera proširiti i produbiti. Ako napredna funkcionalnost ne uspije privući širi krug korisnika, kupci će prirodno kupiti alternative otvorenog koda, iako manje razvijene. Na veoma velikim masovnim tržištima, dominantni proizvođači softvera otvorenog koda, pored povećanja obima ponude, imaju mnogo prostora za rast kroz implementaciju komplementarnih strategija u oblasti proizvoda i usluga. Veličina masovnog tržišta sama po sebi osigurava smanjenje cijena zbog velikog obima ponude, što krajnjim korisnicima omogućava da ostvare opipljiv profit čak i uz neznatno povećanje cijene njihovih proizvoda.

U nekim slučajevima softver otvorenog koda može čak zaobići tradicionalne proizvode u smislu funkcionalnosti. Na primjer, Apache postao prvi od web servera u kojem se pojavila Internet funkcija popularna među provajderima IP aliasing, omogućavajući hostovanje više imena internet domena na jednom sistemu.

  • "mrežni efekti" zbog poznavanja i proučavanja softvera i alata za masovnu upotrebu. Troškovi obuke korisnika o novoj tehnologiji predstavljaju značajan dio ukupnih troškova vlasništva, koji premašuju cijenu samog softverskog proizvoda. Kompanija s velikom bazom korisnika upoznata s proizvodom i pratećim alatima može iskoristiti to poznavanje izdavanjem novih verzija ili ulaskom na susjedna tržišta. Ova vrsta mrežnih efekata može varirati ovisno o vrsti korisnika - programeri softvera koji koriste api, administratori sistema - određeni administrativni alati, korisnici rade sa grafičkim korisničkim interfejsima, a menadžeri uspostavljaju odnose sa dobavljačima. Jednom uspostavljena, ova mreža partnera i korisnika open source rješenja se ne urušava i omogućava rješavanje marketinških problema manjeg reda, poput sticanja pristalica i lojalnosti kupaca.
  • Pritisak standardizacije. Najnovija prijetnja pokreta otvorenog koda su njegovi alati i kultura, koja kao svog neprijatelja vidi sve vrste tehnoloških barijera koje su postavili tradicionalni proizvođači softvera.

U posljednje vrijeme, oblast softvera koja se najbrže razvija smatra se tzv "komercijalnootvorenog koda", one. JV podržan od strane običnih komercijalnih kompanija. Jedan od lidera u ovom pravcu treba smatrati korporacijom sunce, koja razvija nekoliko velikih projekata u ovom sektoru: OpenSolaris OS, DBMS mysql, uredski paket openoffice.org i okruženje virtuelizacije virtuelna kutija. U pravilu postoji nekoliko verzija takvog softvera, uključujući i komercijalne. Prilikom plaćanja licence korisnik dobija tehničku podršku, kao i, u nekim slučajevima, posebne alate za praktičan rad koji nisu dostupni pod otvorenom licencom. Odnosno, ako su potrebe male, kompanije mogu koristiti besplatne ili besplatne verzije softvera, a ako se povećaju zahtjevi, mogu kupiti komercijalna proširenja bez promjene bilo čega u svojoj infrastrukturi i aplikacijama. Tako se komercijalna verzija slobodnog softvera direktno nadmeće s razvojem tradicionalnih kompanija, na primjer microsoft, koji aktivno kreira posebne šeme licenciranja za upotrebu u Internet okruženju (govorimo o serverskom softveru).

Kao rezultat toga, softver otvorenog koda na Internetu igra ulogu u formiranju sistema, podržavajući i razvijajući osnovne principe izgradnje Mreže. Osim toga, upotreba softvera otvorenog koda je relevantna sa stanovišta fokusiranja na pružanje usluga umjesto na prodaju robe. Stoga, prilikom kreiranja Internet sistema, vrijedi se fokusirati na otvorene standarde i softver koji ih implementira, jer će samo na taj način pružiti mogućnost za razvoj poslovanja i dobijanje novih mogućnosti za elektronska tržišta.

Upotreba softvera otvorenog koda za podršku Internet tehnologijama je prirodna i neophodna u smislu skalabilnosti, globalnosti i kompatibilnosti. Na primjer, povećanje broja servera ili drugih infrastrukturnih uređaja ne zahtijeva dodatno ulaganje u softver, što pruža veću fleksibilnost nego kod vlasničkog softvera. Ovo postaje posebno istinito kada cijena softvera premašuje hardversku komponentu projekta. Zahtjevi globalnosti i kompatibilnosti ostvaruju se zahvaljujući dobroj podršci cross-platform open source softvera i korištenja otvorenih standarda, što omogućava održavanje visokog nivoa kompatibilnosti čak i sa mnogim konkurentskim proizvodima i platformama na tržištu.

U svjetlu savremenog razvoja uslužnih aplikacija zasnovanih na web tehnologijama, softver otvorenog koda u kombinaciji sa jeftinim računarima (nettopovi i netbookovi) može značajno zamijeniti tradicionalne desktop i mobilne sisteme, koji su bazirani na operativnom sistemu. Windows i tradicionalni uredski apartmani. Upotreba laganog specijalizovanog OS-a sa GUI-jem baziranim na kernelu linux i moderni web pretraživači omogućavaju vam da obavljate većinu svakodnevnih zadataka na mrežnim platformama koristeći samo softver otvorenog koda.

Softver otvorenog koda ima svoje obožavatelje, a u posljednje vrijeme, kada je u pitanju razvoj nekakvih "nacionalnih" proizvoda, oni u osnovi podrazumijevaju open source. Paradoksalno, interesovanje za ovu vrstu softvera izazvalo je mnogo distorzija i zabluda koje u praksi onemogućavaju njegovu distribuciju.

Naša kompanija je uključena u open source projekte od 2005. godine - i kroz razvoj vlastitih open source rješenja (OpenVZ, CRIU projekti), učestvujući u drugim open source projektima (QEMU, OpenStack, libvirt, libcontainer, itd.). Tokom 10 godina prikupili smo neke od najčešćih mitova o softveru otvorenog koda. Govorit ću o svakoj od zabluda i objasniti zašto je to pogrešno. Sigurno ćete zapamtiti još toliko, ali, po mom mišljenju, ovih pet je najpaklenijih.


Projekat otvorenog koda je projekat otvorenog koda.

Svaki softverski projekat sastoji se od mnogo artefakata: izvornog koda projekta, informacija o neispravljenim defektima, testnog izvornog koda, dokumentacije. Izvorni kod projekta je samo njegov dio, slobodan pristup kojem ne daje pravo da se cijeli projekt naziva otvorenim kodom. Pored izvornog koda, ostali razvojni artefakti bi trebali biti slobodno dostupni, a što je više artefakata otvoreno, to je projekat otvoreniji za saradnike (ljude koji žele doprinijeti projektu). Osim toga, potrebni su transparentni procesi između svih članova zajednice, otvorena komunikacija u projektu itd. Sve ove mjere samo će doprinijeti razvoju projekta i plodnoj saradnji članova zajednice.

Kvalitet softvera otvorenog koda je lošiji jer svako može napisati kod za njega

Glavni princip otvorenog koda - otvoreni zajednički razvoj - sam po sebi je garancija da se nekvalitetni kod, štake i zakrpe jednostavno ne mogu sakriti od drugih sudionika. Osoba koja učestvuje u takvim projektima spremna je na činjenicu da će njegov rad biti podvrgnut i analizi i kritici, što znači da neće hakovati. Njegova reputacija je na kocki i niko je ne želi izgubiti.

Osim toga, u nekim zajednicama (na primjer, zajednica oko razvoja Linux kernela) postoji strogi princip - samo najbolji, testirani i idealni kod se prihvata u izvorno jezgro. Pokušaj dodavanja nekvalitetnih izmjena bit će odbijen, drugi pokušaj je prepun gubitka ugleda osobe ili kompanije-saradnika.

Odnosno, otvoreni projekat zaista omogućava svakome da učestvuje u pisanju koda, ali u ozbiljnim projektima, zbog visokog ulaznog praga, kod ljudi sa nedovoljnim nivoom stručnosti neće biti prihvaćen.
Većina velikih IT kompanija (IBM, Google, Canonical, Parallels, itd.) ima čitave odjele u kojima su stručnjaci plaćeni za rad na open source projektima i tako indirektno rade na proizvodima kompanije.

Odvojeno, vrijedi spomenuti da su kompanije koje razvijaju proizvode zasnovane na otvorenim projektima zainteresirane za poboljšanje koda otvorenih projekata koji koriste tokom testiranja. Stoga se svi otkriveni problemi moraju popraviti i osigurati da se ovaj popravak doda glavnoj grani projekta kako bi bilo što manje razlika u vašem kodu i kodu otvorenog projekta. Naši proizvodi koriste kod drugih otvorenih projekata, tako da popravljamo probleme pronađene u kodu ovih projekata i šaljemo ih na gore. To je bio slučaj sa ranjivostima u RHEL kernelu: Red Hat je primetio Vladimira Davidova da je otkrio ozbiljne propuste CVE-2014-0203 i CVE-2014-4483 u jednom od ažuriranja jezgra RHEL6 (drugi problem je, inače, pronađen korišćenjem jedan od naših automatiziranih testova, koristeći Linux Test Project). Vasilij Averin je dobio pohvale za pronalaženje CVE-2014-5045, Dmitry Monakhov za CVE-2012-4508. Dobro testiranje Linux kernela je čak primetio i Andrew Morton (ko je ovo?): „Zanima me. Tokom proteklih nekoliko mjeseci, ljudi na @openvz.org su pronašli (i popravili) gomilu nejasnih, ali ozbiljnih i prilično starih grešaka. Kako ste otkrili ove bube?”

Ishod

Zapravo, svi gore navedeni mitovi uglavnom proizlaze od korisnika koji ili tek počinju raditi sa OpenSource softverom ili ga uopće nisu isprobali. Najbolji način da se riješite predrasuda je da počnete blisko surađivati ​​s takvim odlukama.
Nedavno smo najavili otvoreni proces razvoja za novu verziju našeg proizvoda Virtuozzo 7. Ako ste također zainteresirani za stvaranje najbolje tehnologije virtualizacije kontejnera, onda

Mark Roberts
Direktor upravljanja proizvodima (direktor, upravljanje proizvodima)
QNX softverski sistemi
e-mail: [email protected]

anotacija

Ovaj članak se fokusira na prednosti, strateška razmatranja, prepreke i mogućnosti povezane s korištenjem softvera otvorenog koda u komercijalnoj proizvodnji. Koristeći Integrirano razvojno okruženje (IDE) zasnovano na Eclipse platformi kao primjer, raspravljat ćemo o razlikama između zaštitnih (zaštitnih) i nezaštitnih (nezaštitnih) licenci izvornog softvera. Kada se integriše ili povezuje otvoreni izvorni kod sa "vlasničkim" zatvorenim izvornim kodom, često je potrebna dužna pažnja i pažnja. Postoje i različita pravna pitanja kojih treba biti svjesna, kao što je mogućnost kršenja patenta. Pokušaćemo i da objasnimo zašto se osnovni principi korišćenja softvera otvorenog koda u okruženju informacionih tehnologija (IT) ne primenjuju na komercijalne proizvode za ugrađene uređaje.

Razvojno okruženje QNX Momentics kao primjer otvorenog koda

Davne 2001. godine, kada su se mnoge softverske kompanije borile da prežive suočene sa opštim kolapsom na berzi IT kompanija, posebno onih povezanih sa elektronskim poslovanjem na Internetu, QNX Software Systems je doneo stratešku odluku da započne razvoj novog integrisanog razvojno okruženje (IDE) za tržište, ugrađeni sistemi. Kompanija je već imala solidno iskustvo u razvoju niza alata koji se koriste u razvoju ugrađenih uređaja, ali je menadžment kompanije shvatio da će im stvaranje IDE-a omogućiti da ostanu na vrhu talasa u visoko konkurentnom okruženju. Odluka o kreiranju IDE-a također je vođena promjenom naglaska na zahtjevima korisnika. Tokom pada poslovne aktivnosti, kupci bez novca postali su zainteresovaniji za rješenja koja bi mogla maksimizirati produktivnost i učiniti ih pokretljivijim (fleksibilnijim) u obavljanju poslova, što bi poboljšalo ukupnu ekonomsku efikasnost.

Za QNX, razvoj IDE-a je bio "klađenje za budućnost" jer su u to vrijeme troškovi i trud oko razvoja projekta bili van domašaja većine proizvođača alata za ugrađene sisteme. Na sreću, QNX je blisko sarađivao sa IBM-om na različitim segmentima tržišta ugrađenih uređaja. Kroz blisku saradnju, IBM je sa QNX-om podelio svoje planove za izdavanje integrisanog razvojnog okruženja otvorenog koda koje je kasnije postalo osnova za Eclipse platformu.

IBM je ponudio da iskoristi iskustvo QNX-a za prilagođavanje IDE tehnologije potrebama programera uključenih u kreiranje ugrađenih aplikacija zasnovanih na jeziku C/C++. Stručnjaci QNX-a su gotovo odmah ukazali na nepobitne privlačne aspekte korištenja open source kodova za IDE. Na primjer, za takvo okruženje bilo bi moguće:

  • eliminirati ovisnost o jednom dobavljaču, što je obično povezano s potrebom licenciranja prozorske platforme;
  • ponuditi izvorni kod za prilagođavanje potrebama kupca;
  • privući ozbiljne igrače u industriji da podrže i stvore ekosistem komplementarnih tehnologija i dodataka;
  • pružiti kupcima stabilnu arhitekturu koja može podržati diferencijaciju proizvoda;
  • omogućavaju programerima ugrađenih uređaja da koriste standardne radne stanice pogodne za rad sa aplikacijama informacionih tehnologija (u najširem spektru aplikacija) kao razvojnu platformu.

Konačno, postojala je posebna mogućnost da IDE platforma uhvati i postane de facto standard, omogućavajući QNX-u da iskoristi tržište za velike ekosisteme programera i alata trećih strana kroz takvu platformu.

Osnovan projekat otvorenog koda Eclipse.org

U novembru 2001. Borland, IBM, Merant, QNX Software Systems, Red Hat i SUSE osnovali su Eclipse Consortium. Početkom 2004. Upravni odbor je reorganizirao Eclipse Consortium u neprofitnu korporaciju pod nazivom Eclipse Foundation.

Od samog početka, Eclipse je bio istinski open source projekat. Projekat je ponudio i besplatne tehnologije otvorenog koda i pristup zajednici najobrazovanijih i najnaprednijih programera u svojoj oblasti. Tako se ova tehnologija pokazala kao univerzalna platforma za integraciju svih vrsta razvojnih alata. Zasnovan je na otvorenoj, proširivoj arhitekturi i jasno je licenciran kao proizvod koji se može slobodno distribuirati bez naknade. Doprinosi članova zajednice projektu Eclipse zasnovani su na standardnom modelu razvoja softvera otvorenog koda (OSS), ali većina članova takođe doprinosi komercijalnom razvoju zasnovanom na Eclipse platformi.

Projekat skladištenja alata

U decembru 2001, QNX je počeo da gradi svoj QNX® Neutrino® RTOS zasnovan na Eclipse IDE. Vizija kompanije je bila da IDE bude visoko funkcionalan, orijentisan na C/C++, sa duboko integrisanim alatima za otklanjanje grešaka, profilisanje, analizu i izgradnju ugrađenih aplikacija. Od samog početka, QNX tim je nameravao da bude višenamenski, višejezični IDE koji podržava više platformi alata. Ovo je uključivalo:

  • nekoliko instrumentalnih platformi: Windows, Solaris, QNX Neutrino RTOS (self-hosted development);
  • višestruke ciljne arhitekture: ARM, MIPS, PowerPC, SH-4, x86;
  • programski jezici C, C++, Java.

Od tada, IDE je nastavio da raste i uključuje podršku za Linux platformu i podršku za dodatne arhitekture procesora, uključujući XScale procesore.

Realizacija projekta pokrenuta je u stilu "ekstremnog programiranja". Kompanija je odabrala tim od 12 najboljih inženjera. Dobili su posebnu prostoriju, bili su izolovani od svih smetnji, projekat im je dat na potpuno raspolaganje.

Grupa je dobila potrebna ovlaštenja za donošenje odluka, uspostavljen je tanak radni raspored, nesklon riziku, sa beta izdanjem proizvoda za 16 sedmica i komercijalnim izdavanjem do 4. jula 2002. Grupa je ispunila sve postavili prekretnice i objavili novi proizvod - nazvan QNX Momentics® IDE - tačno na vreme, demonstrirajući potencijal softvera otvorenog koda za smanjenje vremena izlaska na tržište.

Od ideje do isporuke proizvoda - manje od 7 mjeseci

Nadovezujući se na Eclipse platformu, QNX tim je završio veoma moćan i svestran IDE za razvoj ugrađenog softvera za šest meseci. IDE je podržao razvoj na više platformi za više platformi alata i programskih jezika i podržao je najpopularnije ugrađene ciljne procesorske ploče. Sa platformom Eclipse, QNX je mogao:

  • koristiti GNU kompajlere i alate komandne linije za unakrsni razvoj;
  • implementirati podršku za dodatke treće strane, kao što su IBM WebSphere za ugrađene Java aplikacije i Rational ClearCase za razvoj vođen modelom;
  • kreirati dodatne alate za izgradnju sistema, upravljanje ciljnim uređajima, analizu memorije, profilisanje sistema i aplikacija itd.

Na sl. Slika 1 daje primjer kako Eclipse platforma može smanjiti troškove izgradnje IDE-a, omogućavajući kompanijama da se fokusiraju na više nivoe razvoja gdje se prave prave inovacije. Na primjer, koristeći Eclipse platformu, QNX je mogao lako kreirati nekoliko inovativnih alata za vizualizaciju koji vam omogućavaju da uđete duboko u ugrađeni sistem i prikažete njegovo ponašanje.

Vratite doprinos radu zajednice

Snaga uspješnog projekta otvorenog koda leži u suradnji zajednice programera i stalnom poboljšanju baze koda. Ako kompanija prihvati i dobro koristi open source, onda jednostavno ima obavezu da doprinese zajednici. U tom cilju, QNX je preuzeo vodstvo Eclipse CDT projekta u junu 2002.

Cilj projekta Eclipse CDT (C/C++ razvojni alati) je stvaranje zajedničkog skupa interoperabilnih C/C++ jezičkih alata za Eclipse platformu. Eclipse CDT je ​​pozicioniran kao projekat otvorenog koda, sa upravljačkim pravima od Eclipse Corporation. Da bi započeo CDT projekat, QNX je donirao svoje razvojne resurse i izvorni kod za QNX Momentics IDE projekat. Značajnu podršku projektu dali su i Rational i Red Hat, kao članovi zajednice.

Rice. 1. Sa platformom Eclipse, prodavci alata mogu se fokusirati na najviši nivo radne grupe, gdje se zapravo stvara prava inovacija.

QNX nastavlja da održava CDT projekat, koji je sa inicijalno skromnih 80.000 linija koda porastao na preko 700.000 linija koda danas. Početkom 2006. godine, Eclipse CDT dnevnik napretka projekta procijenio je doprinos QNX-a na 52%. Sljedeći je bio IBM sa doprinosom od 36%. CDT projekat je drugi najpopularniji Eclipse projekat nakon same Eclipse platforme.

Mogu li sebi priuštiti da "poklonim" kod?

Može se činiti da "donirati" svoj kod - znači djelovati suprotno zdravom razumu. Međutim, ako se ispostavi da je funkcionalnost vašeg proizvoda korisna, zašto je onda ne biste doprinijeli zajednici korisnika otvorenog koda. Poduzimajući ovaj korak, možete imati koristi od takve "standardne" ponude implementacije, zajedno s prednostima iskustva podrške za proizvode. Moći ćete imati koristi od rada cijele zajednice usmjerene na poboljšanje kodne baze. Takva strategija može osloboditi vaše vlastite resurse za dodatna istraživanja usmjerena na inovacije i dodavanje funkcionalnosti vašim proizvodima.

Štaviše, mogli biste dobiti određenu kontrolu nad smjerom "standardne" platforme - zarađenu, naravno, svojim doprinosima zajednici! Ako podržavate projekat, ponašajte se kao dobar građanin zajednice, poštujte mišljenja drugih ljudi, cijenite doprinose i savjete drugih članova. Nemojte misliti da će vam neko pokušati "očistiti džepove" kao rezultat korištenja koda i od vas preuzeti kontrolu nad smjerom razvoja platforme.

Na primjer, strategija QNX Software Systems je da iskoristi svoju uključenost u Eclipse dok razvija novu funkcionalnost koja se uključuje kroz standardizirane tačke proširivosti koje su već uključene u Eclipse i CDT platforme. U tu svrhu, QNX namjerava da ostane aktivan član Eclipse zajednice, koristeći postojeću bazu koda i rad trećih strana (plug-ins), pomažući u ispunjavanju stvarnih potreba korisnika kreiranjem vlasničkih ekstenzija. Opisana strategija je ilustrovana na sl. 2.

Rice. 2. Svojim radom možete doprinijeti radu zajednice.

Sažetak pogodnosti

Platforma alata zasnovana na Eclipse je obostrano korisna i za programere aplikacija kao što je QNX i za kupce koji kupuju alate platforme.

Programeri imaju koristi od skraćenog vremena za izlazak na tržište za svoje proizvode i mogućnosti da imaju koristi od istraživanja drugih ljudi (po niskoj cijeni). Ovi rezultati mogu uključivati ​​visokokvalitetni "čist IP" kod koji obezbjeđuju renomirane firme kao što su IBM i QNX. Još jedna prednost za programera je to što dobija jednostavnu i jasnu šemu licenciranja, uključujući komercijalna prava i određenu zaštitu patenta. Štaviše, programer dobija mogućnost rada na više OS platformi koje podržava Eclipse, kao i pristup dobro definisanim tačkama proširenja u Eclipse projektu.

Kupci koji kupe IDE zasnovan na Eclipse-u imaju koristi od platforme alata za razvoj ugrađenih aplikacija sa snažnom podrškom za unakrsnu kompilaciju, lako otklanjanje grešaka i proširenja za upravljanje ciljnim sistemima. Klijentov razvojni tim će cijeniti mnoge karakteristike koje olakšavaju rad, kratko vrijeme potrebno za dodatnu obuku, dobre performanse proizvoda i robusnu platformu koja vam omogućava rad na velikim projektima. Korisnik takođe može imati koristi od Eclipse platforme u svojim aplikacijama (npr. RCP, eRCP, itd.).

Budućnost korporacije Eclipse

Eclipse Corporation je aktivna i energična zajednica. Novi projekti se stalno pojavljuju, nove arhitekture se stavljaju na raspolaganje etabliranim inovativnim kompanijama, a čak i male kompanije mogu komercijalizirati Eclipse platformu stvaranjem novih dodataka koji proširuju postojeću funkcionalnost uz minimalne troškove (vidi sliku 3).

Rice. 3. Eclipse Corporation je živahna i brzo rastuća zajednica programera dodataka.

Poređenje licenci otvorenog koda

Nisu sve licence softvera otvorenog koda jednake. QNX je napravio dobro osmišljen potez sa Eclipse javnom licencom. Ovaj izbor je dijelom vođen potrebama njegovih ugrađenih kupaca, a dijelom željom da kontrolišu (i kapitaliziraju) tehnologiju koja razlikuje proizvode.

Neprofitna korporacija Open Source Initiative () smislila je korisnu definiciju otvorenog koda od 10 tačaka. Trenutno postoji preko 50 OSI odobrenih licenci na web stranici, uključujući Eclipse javnu licencu. Ove licence mogu sadržavati značajne razlike koje treba jasno razumjeti. Ove razlike mogu značajno uticati na intelektualno vlasništvo (IP) programera i sposobnost da ga zaštite. Ovo je najviše istinito u slučaju korištenja otvorenog koda (ili izvedenih djela zasnovanih na otvorenom kodu) u ugrađenim uređajima.

Zaštitna i neodbrambena dozvola

Pod uslovima zaštitne licence, kao što je GPL v2, izvedeno delo se može distribuirati samo zajedno sa odgovarajućim izvornim kodom. Prema uslovima odbrambene licence, garantuje se da će izvorni kod kada se premesti u kategoriju otvorenog koda, ostati u ovoj kategoriji u svim narednim generacijama i izvedenim proizvodima. Kao što ćemo kasnije objasniti, ovaj zahtjev dovodi do određenih problema u slučaju ugrađenih sistema.

Primjeri nezaštitnih licenci su originalne MIT i BSD licence. Nezaštitne licence zadržavaju autorska prava vlasnika, ali daju opsežna prava korisniku, uključujući pravo na modificiranje i neograničenu besplatnu distribuciju (ili ličnu upotrebu) softvera.

Šta znači "virusna licenca"

Neki ljudi GPL nazivaju "virusnom licencom". Ovaj naziv je nastao zbog nesigurnosti pravne definicije pojma "derivativni razvoj". Uz striktno tumačenje definicije, ispada da ako je čak i mali dio GPL licenciranog koda ugrađen u neku vlasničku aplikaciju, onda cijela aplikacija mora biti licencirana kao GPL. Analogija s virusom odmah mi pada na pamet.

Pitanja kompenzacije

Nedavno su pitanja obeštećenja za kršenje IP-a (IP Indemnification) postala glavna tema razgovora za programere. Kao odgovor, neki dobavljači otvorenog koda najavili su da će braniti kupce od tužbi za kršenje patenta ili autorskih prava. A najnovije licence otvorenog koda predviđaju kazne za korisnike koji pokušavaju da ostvare svoja patentna prava protiv drugih korisnika baze koda.

Glavni problemi koji nastaju u komercijalizaciji softvera otvorenog koda

Poređenje ugrađenih i IT aplikacija

Uspjeh prostora otvorenog koda potaknut je usvajanjem Linuxa od strane IT organizacija. Prednost korištenja Linuxa proizlazi iz rada na relativno homogenom i stabilnom hardveru (obično x86 porodica) i korištenja fleksibilne računarske platforme bogate resursima.

Sa ugrađenim softverom stvari su sasvim drugačije. Softver radi na ogromnom broju uređaja sa fiksnim skupom funkcija, koristeći širok spektar hardvera s različitim arhitekturama. Dizajneri ugrađenih uređaja svoju konkurentsku prednost često zasnivaju na određenom skupu funkcija, veličini, performansama, cijeni, vijeku trajanja baterije, pouzdanosti, interoperabilnosti i skalabilnosti. Ove karakteristike se obično implementiraju u softveru niskog nivoa, koji u slučaju Linuxa zahteva direktno povezivanje sa jezgrom OS-a. Prilagođavanje softvera niskog nivoa potrebama korisnika je norma, a ne izuzetak, tako da programeri često dobijaju željenu funkcionalnost promjenom kernela OS-a. Metoda direktnog povezivanja se također koristi ugrađivanjem u fragmente koda kako bi se smanjili troškovi kreiranja biblioteka. Uzeti zajedno, ove prakse veoma otežavaju zaštitu vlasničkog koda pod licencama kao što je GPL (javna domena).

Obično se ovi problemi licenciranja ne odnose na IT aplikacije, jer se vlasnički softver specifičan za preduzeća ne distribuira izvan preduzeća, već se koristi isključivo za interne potrebe. U slučaju ugrađenih uređaja, međutim, oni uvijek distribuiraju derivati ​​softver koji podliježe klauzuli „prisilnog otvaranja“ licenci otvorenog koda, što može ugroziti ključne aspekte vrijednih ponuda otvorenog koda.

Osim toga, ugrađeni proizvodi često imaju dug vijek trajanja, kako u proizvodnji, tako iu servisu. Ugrađeni proizvod koji podliježe uvjetima korištenja otvorenog koda izložen je većem riziku, uključujući nedostatak dugoročne tehničke podrške, potencijalne sigurnosne probleme i kršenje IP-a.

Pitanja licenciranja

Neizvjesnost pravnog statusa

Uprkos utješnim riječima nekih zagovornika licenci otvorenog koda, mnoge od ključnih zabrinutosti koje su izrazili programeri za ugradnju još uvijek nisu detaljno testirani od strane pravosuđa. Kao što je spomenuto, definicija "derivativnog rada" ključna je za sprovođenje određenih uslova licence, iako mnogi pojedinci i organizacije koje prihvataju uslove korišćenja otvorenog koda imaju malo ili nimalo razumevanja značenja ovog izraza.

Neka zaobilazna rješenja koja dozvoljavaju komercijalnim dobavljačima da ugrade "vlasničke" drajvere u Linux (kao što su učitavi moduli kernela) oslanjaju se na argumente "on je rekao, rekla je" umjesto na direktne veze do teksta ugovora o licenci. Zapravo, takvi drajveri koji koriste LKM module su opasno zaobilaženje zahtjeva GPL licence. Idući do krajnosti, stvar se može protumačiti na takav način da se Linux kodna baza može predstaviti kao beskorisna za većinu praktičnih aplikacija ako ne uključuje neke od ovih vrlo "vlasničkih" drajvera. Ova situacija može efektivno obezvrijediti ideju GPL licence.

Nedostatak naknade za kršenje prava intelektualne svojine

U većini slučajeva kada se koristi otvoreni izvorni kod, postoji realna mogućnost da nehotice prekršite tuđa patentna prava. Nekoliko licenci otvorenog koda eksplicitno upućuje na patente, a o impliciranim licencama se ne može suditi. Morate zasebno licencirati sve patente koji se odnose na, na primjer, kodeke otvorenog koda koji implementiraju MP3 algoritme ili druga vlasnička rješenja. U međuvremenu, loši momci (uključujući i Microsoft) su zauzeti izgradnjom portfelja patenata za koje mnogi stručnjaci vjeruju da bi mogli biti ispaljeni na zagovornike otvorenog koda.

Neke licence eksplicitno upućuju na patente. Na primjer, Eclipse javna licenca ima eksplicitno pominjanje patentnih prava, a sadrži i klauzulu o kaznama u slučaju da neko pokuša da ostvari patentna prava na drugačiji način. Eclipse Corporation se također trudi da provjeri kod i odredi njegov izvor porijekla u smislu licenciranja, patenta ili autorskih prava.

Dodatni napori za očuvanje IP-a

Da bi koristila open source, kompanija mora uložiti značajne napore u sljedećim oblastima:

  • upravljanje distribucijom proizvoda;
  • upravljanje licencama;
  • rješavanje pravnih sukoba u pogledu obaveza kupaca;
  • posvećujući dužnu pažnju pravnim pitanjima: održavanje čistoće prava na intelektualnu svojinu, provjeru IP prava na open source, utvrđivanje izvora porijekla koda, praćenje promjena u verzijama licence, na primjer, GPL v3, itd.

Prihvatanje zahtjeva kupaca

Neki veliki kupci, suočeni sa složenošću i neizvjesnošću softvera otvorenog koda, odbili su da se bave proizvodima koji uključuju open source. Ako i dalje želite raditi s ovim klijentima, morate ih pribaviti ili pozvati da uključe uslove komercijalne licence za vaš kod.

Pitanja vezana za IP

Da li uslovi vaše licence otvorenog koda utiču na intelektualnu svojinu koja razlikuje vaš proizvod? Ako da, onda je vaša IP adresa ugrožena.

Ako ugrađeni sistemi koriste mješavinu vašeg vlastitog softvera i softvera otvorenog koda, tada morate razumjeti suštinu, porijeklo i odnos svih komponenti ugrađenog softvera. Bez ovog dubokog uvida u predmet, mogli biste nehotice prekršiti tuđu IP adresu ili čak izgubiti prava na svoj softver.

Bez patentnih licenci i kompenzacije, dugovječni ugrađeni softver, relativno visoka prodajna cijena i obim prodaje ugrađenog uređaja s fiksnom funkcijom čine takve sisteme očiglednom metom za zahtjeve za kršenje patenta od strane gore navedenih "loših momaka" i glavnih konkurenata.

Kao što pokazuje primjer korištenja QNX Momentics IDE-a, postoje mnoge neposredne prednosti softvera otvorenog koda, uključujući smanjeno vrijeme izlaska na tržište, niže troškove razvoja i više slobode za dodavanje funkcija i inovacija vašem proizvodu. Ako nudite svoj softver kao uslugu koja rješava problem korisnika, onda kupca nije briga da li koristite softver otvorenog koda ili ne, on samo plaća za funkciju koja mu je potrebna.

Međutim, trebali biste razumjeti razliku između različitih licenci otvorenog koda i odabrati onu koja najbolje odgovara vašoj aplikaciji i potrebama korisnika. Štaviše, budite spremni da budete odgovorni za obaveze licenciranja softvera koji odaberete. Trebali biste biti svjesni drugih zahtjeva za intelektualnu svojinu (kao što su patentna prava) u vezi sa programskim kodom. Budite oprezni s kodnom bazom koja ne prikazuje poruku o posljedicama kršenja IP adrese. Potražite projekte koji nude obeštećenje i koji na ekranu prikazuju poruku o novčanim donacijama za razvoj koda za kompenzaciju troškova povezanih sa kršenjem autorskih prava ili patenta, itd. Također provjerite je li softver otvorenog koda koji koristite u skladu s vašom politikom intelektualnog vlasništva i izbjegavajte odbrambene licence koje bi vas mogle natjerati da otkrijete karakteristične dijelove vašeg koda. Ako je vaš proizvod ugrađen u sistem, razmislite i o ponudi komercijalnih uslova licenciranja za vaš IP.

Upotreba otvorenog koda u ugrađenim uređajima predstavlja više izazova nego korištenje otvorenog koda u IT aplikacijama, jer je prvo rizičnije. Prije nego što odlučite da koristite bilo koji softver otvorenog koda, procijenite njegovu stvarnu cijenu vlasništva (TTCO) i njegovu prikladnost za vaš projekat.

Konačno, pridružite se zajednici korisnika otvorenog koda i programera kako biste dobili najveću vrijednost i koristi za sebe!

Top Related Articles