Zadaci otvorenog koda. Vrste licenci za pravo korištenja softvera otvorenog koda

Peter Van Valkenburg, voditelj istraživanja u Coin Centeru i član upravnog odbora Zaklade Zcash, objašnjava zašto Razvoj softvera otvorenog koda važan je za izgradnju povjerenja i osiguranje sigurnosti u blockchain mrežama.

Računalni kod koji je u osnovi svih glavnih kriptovaluta i otvorenih blockchain projekata razvijen je kao softver otvorenog koda. Regulatori i kreatori politika koji pokušavaju razumjeti kriptovalute, ali nisu upoznati s takvim softverom, mogu biti zavedeni na pomisao da su te sustave (i da bi ih trebali) razviti od strane jedne ili više komercijalnih tvrtki. Dok se većina dobro poznatog softvera doista razvija na ovaj način (kao što je Microsoftov Windows ili Oracleov RDBMS), to nije slučaj s projektima otvorenog koda, a ta razlika može i treba oblikovati javno mnijenje. Softver otvorenog koda nastaje u suradnji, slobodno se distribuira, javno se objavljuje i razvija kao proizvod zajednice, a ne kao vlasništvo jedne tvrtke ili pojedinca. U ovom slučaju ne postoji monopol, ne postoji niti jedna tvrtka ili pojedinac koji bi kreirao i prodavao softver ili ga posjedovao. Baš kao što ne postoji nijedna tvrtka koja posjeduje Bitcoin mrežu, ne postoji niti jedna tvrtka koja proizvodi softver koji radi na računalima povezanim s Internetom i formira mrežu. Ova decentralizacija ima neke temeljne prednosti koje mogu biti teško razumljive ljudima koji nisu upoznati s razvojem softvera. Za bolje razumijevanje snage i prirode otvorenog izvornog koda, moglo bi biti korisno steći malo uvida u jedan posebno uspješan dio softvera otvorenog izvornog koda. Govorimo o operativnom sustavu Linux.

Otvoreni kod posvuda

Teško je izračunati koliko puta dnevno koristite Linux jer je upravo taj operativni sustav temelj rada većine poslužitelja na Internetu. Kad god posjetite Facebook, Google, Pinterest, Wikipediju i tisuće drugih velikih stranica, servise koje vam te (tako različite) stranice pružaju, imate posla s računalima koja najvjerojatnije pokreću operativni sustav Linux. Linux se može naći mnogo bliže; Velike su šanse da ga imate pri ruci. Recimo da je operativni sustav Android pametnih telefona baziran na Linuxu. Ako imate Chromebook, onda koristite prijenosno računalo temeljeno na Linuxu. Ovaj operativni sustav se sve više koristi u televizorima, termostatima, multimedijskim sustavima u zrakoplovima, automobilima itd.

Zašto je ovo zanimljivo? Budući da Linux nije proizvod jednog programera ili čak skupine programera; za razliku od MacOS-a ili Windowsa, nije ga razvila jedna ili čak desetak korporacija. Linux ima tisuće suradnika. Kao što je Linux Foundation, neprofitna organizacija koja promiče otvoreni razvoj operativnog sustava, izvijestila 2015. godine, otprilike 14.000 programera iz više od 1.300 različitih tvrtki doprinijelo je isječcima koda. Samo u 2015. godini 2355 programera je prvi put sudjelovalo u poboljšanju koda. Dakle, ekstrapolacijom se može izračunati da je do 2017. oko 18.000 ljudi dalo priloge, a taj broj će rasti.

Tko bi prije pet godina (1991.) mogao pomisliti da se operativni sustav svjetske klase može kao čarolijom sastaviti u jedinstvenu cjelinu od fragmenata slobodnih radova nekoliko tisuća programera razasutih diljem svijeta i povezanih samo sablasnim nitima interneta?

Prednosti otvorenog koda

U svojoj knjizi Raymond govori o tome kako je open source revolucionaran način stvaranja tehnologije. Linux, s tisućama neovisnih programera koji rade u načinu javne suradnje, primjer je modela otvorenog koda. Kriptovalute slijede isti model, ali o tome ćemo u nastavku.

Raymond je istaknuo nekoliko prednosti modela otvorenog koda. Ključni u kontekstu naše rasprave su sljedeći:

  • Svaki dobar komad softvera počinje zadovoljavanjem osobne želje programera. Većina programera projekata otvorenog koda motivirana je željom da osobno koriste proizvode koje stvaraju. Oni nisu vezani ugovorom koji ih obvezuje stvoriti nešto za drugoga; imaju osobnu potrebu koju zadovoljavaju. Tako se javlja kvalitativno drugačija motivacija, generirajući detaljno poznavanje problema.
  • Dobri programeri znaju što napisati. Veliki znaju što prepisati (i ponovno upotrijebiti). Kada se razvoj odvija otvoreno, redundantnost se može izbjeći, a problematičan, složen ili redundantan kod može se identificirati i pojednostaviti.
  • Kada izgubite interes za program, vaša posljednja dužnost prema njemu je prenijeti ga u ruke kompetentnog nasljednika. Ljudi se pridružuju i napuštaju projekt otvorenog koda na temelju svojih interesa i kompetencija. Nitko ne zapne radeći na projektima koji više nisu zanimljivi. Pojavljuju se svježe glave, nudeći različita gledišta na dugogodišnje probleme ili nove perspektive razvoja.
  • Gledati na korisnike kao na kolege programere najlakši je način za poboljšanje koda i učinkovito otklanjanje pogrešaka u softveru. Mnogi korisnici otvorenog izvornog koda pomažu identificirati probleme i čak pružaju rješenja. Granica između potrošača i proizvođača softvera otvorenog koda je nejasna: rad na softveru je transparentan, odvija se pred očima javnosti, a sudjelovanje u procesu stvaranja dostupno je svima.
  • Ako postoji dovoljno velika baza beta testera i programera, gotovo svaki problem će se brzo identificirati, a njegovo rješenje će vjerojatno nekome biti očito. Ovaj postulat se zove Linusov zakon u čast Linusa Torvaldsa, tvorca jezgre Linuxa, koji je dugo vremena ostao glavni programer ovog operativnog sustava. Kada je proces razvoja koda zatvoren, programeri riskiraju da propuste slabu točku ili da ne primijete određenu grešku. Razvoj među iskusnim korisnicima s jedinstvenom perspektivom povećava vjerojatnost identificiranja i ispravljanja grešaka, čineći softver otvorenog koda sigurnijim i otpornijim.

Rezultat ovog razvoja je visoko pouzdan softverski kod koji su kreirali korisnici za korisnike. Cilj nije stvoriti nešto što obogaćuje tvrtku koja proizvodi i prodaje proizvode, već riješiti problem koji je dovoljno uobičajen da velika zajednica talentiranih programera rado pridonosi. Osobe bez znanja programiranja imaju velike koristi od ovog modela. Čini se da se besplatni softver materijalizira iz ničega, besplatno dostupan svima i ažuriran sve dok su i korisnici na stručnoj razini zainteresirani za njegovo korištenje.

Pravo i slobodni softver

Trenutno zakonodavstvo podržava iu nekim slučajevima potiče razvoj softvera otvorenog koda. On je, kao i sav softver, zaštićen autorskim pravima, ali njegovi autori izdaju kod pod licencom koja dopušta svakome da ga koristi i mijenja bez posebnog dopuštenja ili bilo kakvog plaćanja autorima (to jest, licenca koju je razvio Massachusetts Institute of Technology - MIT).

Neke licence uključuju zahtjeve da se izvedenice softvera moraju izdati pod istim uvjetima. Zahvaljujući ovoj shemi, baza otvorenog koda raste i širi se. Taj je fenomen poznat kao licenca slobodnog softvera ili LGPL-3 - Lesser General Public License.

Otvoreni kod u projektima kriptovaluta i tokena

Linux je možda najveći i najvažniji primjer modela otvorenog koda, ali postoje i drugi. To uključuje sve glavne kriptovalute i blockchain projekte. Svi oni stvaraju računalne mreže koje sudionicima omogućuju postizanje dogovora o zajedničkim podacima (blockchain kriptovalute).

Softver koji svakom sudioniku daje mogućnost povezivanja na mrežu naziva se klijent i softver je otvorenog koda. Često klijentski softver razvija nekoliko nepovezanih sudionika kao najjednostavniju verziju mrežnog softvera (tj. tzv. referentni klijent), na temelju kojeg se može izraditi softver za rudarenje, novčanik, mjenjačnica ili drugi softver kompatibilan s mrežom. izgrađena.

Bitcoin Core klijent rezultat je rada više od 450 neovisnih programera koji su dali više od 15 000 ukupnih doprinosa kodu. Softver je besplatan za korištenje i modificiranje prema MIT licenci za besplatni softver, a cijela povijest razvoja dostupna je za pregled u javnom repozitoriju na Githubu, usluzi u oblaku koja svakome omogućuje stvaranje računa, učitavanje novog koda i praćenje promjena. Ako je repozitorij koji stvorite otvoren za javno gledanje, komentare i prijedloge promjena, tada čak ne trebate platiti Github račun.

Javni repozitorij također prati takozvane forkove izvornog klijenta. Fork stvara klon izvornog softvera, koji se zatim može modificirati za jednu ili drugu svrhu bez mijenjanja izvorne memorije. Programeri mogu slobodno forkirati Bitcoin Core repozitorij na Githubu kako bi stvorili određene aplikacije koje su kompatibilne s Bitcoinom (na primjer, novčanik za pametne telefone) ili novu kriptovalutu koja više nije kompatibilna s Bitcoin mrežom i podrazumijeva stvaranje novu mrežu kriptovaluta (na primjer, ovo je bilo s Litecoinom ili Zcashom). Do danas je izvorni Bitcoin Core klijent račvan više od 10 000 puta, a nova spremišta koja se pojavljuju pokazuju da se stvaranje izvedenih proizvoda nastavlja.

Ethereum trenutačno ima najmanje 121 repozitorij, od kojih se svaki fokusira na određeni aspekt projekta (na primjer, programski jezici za pisanje pametnih ugovora, grafički preglednici za interakciju krajnjeg korisnika s Ethereum mrežom, kompatibilni klijenti za sudjelovanje u mreža, itd.). Postoji čak osam projekata usmjerenih na razvoj klijenata kompatibilnih s Ethereumom, a na najpopularnijim klijentima (go-ethereum i Parity) rade stotine neovisnih programera. Kod Ethereuma i njegova kompletna povijest, poput koda i povijesti Bitcoina, dostupni su za javno gledanje na Githubu i drugim mrežnim spremištima, a sav kod je objavljen pod licencom LGPL-3, što zahtijeva da svi budući izvedeni radovi budu objavljeni pod ista licenca.

Čak i nedavni projekti koje pokreću komercijalni startupi pokazuju predanost vjerovanju otvorenog koda. Tvrtka Zcash razvija Zcash protokol putem javnog repozitorija. Nekoliko vodećih programera ne radi za tvrtku, a posebno stvorena neprofitna organizacija posvećena je osiguravanju postupnog prijelaza s razvoja pod vodstvom tvrtke na razvoj koji pokreće zajednica. Baza izvornog koda Zcash izdana je pod licencom MIT-a. Protocol labs, programer Filecoina, namjerava stvoriti sličan otvoreni model i već ga je testirao u svom IPFS projektu, radeći s kodom u otvorenim spremištima i puštajući ga pod licencom MIT-a.

Zašto je otvoren izvor važan

Kriptovalute i javni lanci blokova mogu pružiti funkcionalnost koja bi bila regulirana da dolazi od jedne korporacije. Centralizirani izdavatelji digitalnih valuta, kao što su Liberty Reserve ili E-gold, bili su financijski servisi i morali su se registrirati u Upravi za suzbijanje financijskog kriminala Ministarstva financija SAD-a i dobiti licencu za prijenos novca u svakoj državi. Ako se takvi tokeni prodaju radi privlačenja ulagača, oni mogu predstavljati vrijednosne papire, u kojem će slučaju biti potrebna registracija pri Komisiji za vrijednosne papire i burzu SAD-a. Ova ograničenja imaju smisla jer centralizirane usluge dolaze s rizikom da strana u središtu sheme neće uspjeti ispuniti svoja obećanja da će adekvatno testirati proizvod i učiniti ga sigurnim.

Međutim, tehnologije poput Bitcoina mogu ponuditi sličnu funkcionalnost budući da su otvorene i vlasničke mreže. Ovdje nema nikakve korporacije. Korisnici se pridružuju tim mrežama, a softver otvorenog koda potiče ih na suradnju. U konačnici, svi se sudionici slažu oko svakog podatka potrebnog za stvaranje valute. Decentralizacija počiva na dva stupa: mehanizmima otvorenog konsenzusa i softveru otvorenog koda. Da kod nije otvorenog koda, kako bi sudionici (ljudi koji se ne poznaju na Internetu) mogli razumjeti i vjerovati sustavu kojem se pridružuju?

Zapravo, projekti tokena temeljeni na vlasničkom kodu mogu jednostavno biti centralizirane usluge koje se skrivaju iza profesionalnog slenga i "blockchain gobbledygook". Međutim, "pravi" projekti imaju kod koji stvara decentraliziranu mrežu koja omogućuje sudionicima da vjeruju jedni drugima, imaju zajedničku motivaciju i kažnjavaju varalice, a sama je decentralizirana. Razvijen je pred stotinama entuzijasta, dostupan je svima u svijetu za korištenje i modificiranje i potpuno je neovisan o korporativnim interesima.

Napori proizvođača računalne opreme da promoviraju rješenja, potkrijepljeni snažnom marketinškom podrškom, postali su nadaleko poznati softver otvorenog koda(softver otvorenog koda). U suvremenoj službenoj upotrebi na ruskom jeziku ovaj se fenomen obično naziva besplatni softver(SPO).

Bit koncepta sastoji se od nekoliko principa za stvaranje i distribuciju softvera otvorenog koda:

  • dostupnost izvornih kodova za sve;
  • politika licenciranja distribucije na temelju jedne od licenci koje je odobrila zajednica (vidi opensource.org);
  • mogućnost samostalnog izravnog sudjelovanja u razvoju i ispravljanju pogrešaka u softveru;
  • mogućnost promjene nekih softverskih funkcija i prilagodbe novim uvjetima (ovisno o dostupnosti promjena cijeloj zajednici);
  • maksimalna kompatibilnost s otvorenim standardima;
  • sposobnost rada u različitim operacijskim sustavima i na više platformi (cross-platform).

Ovi principi se koriste za stvaranje većine

SPO. Vrijedno je napomenuti da postoji primjetna razlika između besplatno I besplatno PO. Unatoč činjenici da većina softverskih licenci otvorenog koda omogućuje besplatnu distribuciju, samo to svojstvo nije dovoljno da bi se softver smatrao besplatnim.

Otvoreni izvor već je izvojevao niz važnih pobjeda nad najjačim proizvođačima vlasničkog softvera. Točnije, web poslužitelj Apache je daleko ispred sličnih proizvoda drugih tvrtki (uključujući Microsoft) u smislu tržišnog udjela zbog niske cijene, neovisnosti o dobavljačima, prisutnosti mnogih korisnika s iskustvom u administraciji i podrške programera. Linux nadmašio je sve ostale vrste u smislu količine ponude Unix za platformu Intel, uključujući i dugogodišnje vodstvo SCO. DBMS-ovi otvorenog koda zauzimaju jaku poziciju na tržištima operativnih sustava otvorenog koda i popularnih jeftinih internetskih rješenja. Prijetnja vlasničkom softveru dolazi od prednosti softvera otvorenog koda, koje su slične onima na Internetu, tj. otvorenost, sloboda prilagodbe itd.

Besplatni softver već ima snažnu prisutnost u sektoru poslužiteljskih operativnih sustava, internetske infrastrukture, poslužitelja web aplikacija, DBMS-a za mala poduzeća i odjele temeljenih na web bazama podataka s dinamičkim generiranjem web stranica, tehničkih i ugrađenih računalnih sustava te softvera za poslužiteljske uređaje . Govoreći o internetskoj infrastrukturi, treba napomenuti da većina uređaja pokreće operativne sustave i drugi softver otvorenog koda. Ovi uređaji uključuju poslužitelje naziva domena, usmjerivače, preklopnike, vatrozide, pristupnike, balansere opterećenja, poslužitelje aplikacija i baza podataka itd.

S obzirom na ovaj napredak, softver otvorenog koda predstavlja prijetnju tvrtkama čiji su primarni izvor prihoda naknade za klijentski pristup i naknade za licenciranje za vlasnički softver. Otvoreni kod softveru donosi zastarjelost tržišta hardvera i poslovni model komoditizacije—model kojem se tradicionalnom dobavljaču softvera, osobito lideru, teško prilagoditi.

Mnogi dobavljači koji koriste poslovne modele otvorenog koda nisu se u početku razvili kao tradicionalni pružatelji softvera. Kako tržišni udio otvorenog izvornog koda raste i njegov položaj na strateškim online tržištima raste, pružatelji naslijeđenog softvera prepoznaju prijetnje koje predstavlja otvoreni izvorni kod i prilike koje nude novi poslovni modeli. Naravno, tradicionalni pružatelji softvera imaju priliku usvojiti ove poslovne modele u cijelosti ili djelomično, ovisno o asortimanu svojih proizvoda. No čak i tako, otvoreni kod predstavlja opipljivu i vrlo stvarnu prijetnju načinu na koji softverske tvrtke posluju.

Četiri su glavne prijetnje zatvorenim tvrtkama iz otvorenog koda.

  • Pritisak cijena. Budući da licence otvorenog koda u biti zahtijevaju besplatnu distribuciju softvera i njegovih izmjena, cijene za slične tradicionalne proizvode moraju se smanjiti kako bi se održao korak sa softverom otvorenog koda i borilo se protiv gubitka tržišnog udjela. Na primjer, SCO ne može naplatiti 2000 dolara Unix za platformu Intel, dok Linux dostupan besplatno, a Microsoft monopolizira sektor stolnih računala. Tradicionalni dobavljači, međutim, mogu djelomično nadoknaditi svoje gubitke tako što će svoje softverske proizvode učiniti boljim od SP O-a i dodatno ih naplaćivati.
  • Dosta 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 svojim ranim fazama razvoja uvijek je usmjerena na relativno malu skupinu specijaliziranih korisnika. Ali čak i proizvođači koji djeluju na ovom tržištu i dalje moraju jasno shvatiti da će se tržište visokorazvijenog softvera širiti i produbljivati. Ako napredna funkcionalnost ne uspije privući širi krug korisnika, kupci će naravno kupiti alternative otvorenog koda, iako manje razvijene. Na vrlo velikim masovnim tržištima, dominantni ponuđači softvera otvorenog koda, osim što povećavaju opseg svoje ponude, imaju puno prilika za rast kroz implementaciju dodatnih strategija proizvoda i usluga. Sama veličina masovnog tržišta osigurava niže cijene zbog velikih količina ponude, što krajnjim potrošačima omogućuje da ostvare značajnu zaradu čak i uz blagi porast troškova svojih proizvoda.

U nekim slučajevima softver otvorenog koda može čak nadmašiti tradicionalne proizvode u funkcionalnosti. Na primjer, Apache postao prvi među web poslužiteljima koji je uveo internetsku funkciju popularnu među pružateljima usluga IP aliasingšto vam omogućuje da na jednom sustavu ugostite nekoliko naziva internetskih domena.

  • "Mrežni efekti" uvjetovan poznavanjem i proučavanjem softvera i alata za masovnu uporabu. Trošak obuke korisnika nove tehnologije čini značajan dio ukupnog troška vlasništva, premašujući cijenu samog softverskog proizvoda. Tvrtka s velikom bazom korisnika upoznatih s proizvodom i njegovim popratnim alatima može iskoristiti to poznavanje izdavanjem novih verzija ili ulaskom na susjedna tržišta. Ova vrsta mrežnog učinka može varirati ovisno o vrsti korisnika - programeri softvera koriste API, administratori sustava rukuju određenim alatima za administraciju, korisnici upravljaju grafičkim korisničkim sučeljima, a upravitelji uspostavljaju odnose s dobavljačima. Jednom formirana mreža partnera i korisnika rješenja otvorenog koda više se ne uništava i omogućuje rješavanje manjih marketinških problema, poput stjecanja pristaša i lojalnosti kupaca.
  • Standardizacijski pritisak. Posljednja prijetnja pokreta otvorenog koda su njegovi alati i kultura, koji svojim neprijateljima vide sve vrste tehnoloških barijera koje postavljaju tradicionalni dobavljači softvera.

U posljednje vrijeme najbrže razvijajuće područje u softveru je tzv "komercijalniotvoreni izvor", oni. JV O uz podršku običnih trgovačkih društava. Korporaciju treba smatrati jednim od lidera u tom smjeru Sunce, koja razvija nekoliko velikih projekata u ovom sektoru: OpenSolaris OS DBMS MySQL uredsko odijelo OpenOffice.org i virtualizacijsko okruženje Virtualna kutija. U pravilu postoji nekoliko verzija takvog softvera, uključujući komercijalnu. Prilikom plaćanja licence korisnik dobiva tehničku podršku, kao i, u nekim slučajevima, posebne alate za praktičan rad koji nisu dostupni pod otvorenom licencom. Odnosno, za male potrebe, tvrtke mogu koristiti besplatne ili besplatne verzije softvera, a kada se povećaju zahtjevi, kupiti komercijalne ekstenzije ne mijenjajući ništa u svojoj infrastrukturi i aplikacijama. Tako se komercijalna verzija softvera otvorenog koda izravno natječe s razvojem tradicionalnih tvrtki, na primjer Microsoft, koji aktivno stvara posebne sheme licenciranja za korištenje u internetskom okruženju (govorimo o poslužiteljskom softveru).

Kao rezultat toga, softver otvorenog koda na Internetu ima ulogu formiranja sustava, podržavajući i razvijajući osnovna načela izgradnje mreže. Osim toga, korištenje softvera otvorenog koda relevantno je sa stajališta usmjerenosti na pružanje usluga umjesto na prodaju robe. Stoga se pri izradi internetskih sustava vrijedi fokusirati na otvorene standarde i softver koji ih implementira, jer samo na taj način pruža se mogućnost razvoja poslovanja i dobivanja novih prilika na elektroničkim tržištima.

Korištenje softvera otvorenog koda za podršku internetskim tehnologijama prirodno je i neophodno sa stajališta svojstava skaliranja, globalnosti i kompatibilnosti. Na primjer, povećanje broja poslužitelja ili drugih infrastrukturnih uređaja ne zahtijeva dodatna ulaganja u softver, što pruža veću fleksibilnost nego kod vlasničkog softvera. To postaje osobito istinito kada cijena softvera premašuje hardversku komponentu projekta. Zahtjevi globalnosti i kompatibilnosti implementirani su zahvaljujući dobroj podršci za višeplatformski open source softver i korištenju otvorenih standarda, što omogućuje održavanje visoke razine kompatibilnosti čak i s mnogim konkurentskim proizvodima i platformama na tržištu.

U svjetlu suvremenog razvoja uslužnih aplikacija temeljenih na web tehnologijama, softver otvorenog koda u kombinaciji s jeftinim računalima (nettop i netbook) može značajno istisnuti tradicionalne desktop i mobilne sustave čija je osnova operativni sustav Windows i tradicionalnih uredskih paketa. Korištenje laganog, prilagođenog OS-a s GUI-jem temeljenim na kernelu Linux i moderni web preglednici omogućuju obavljanje većine svakodnevnih zadataka na mrežnim platformama koristeći samo softver otvorenog koda.

Uspjeh softvera otvorenog koda prilično je izvanredan. Nije poštedio ni velike komercijalne proizvođače softvera. IBM, Hewlett-Packard, Oracle i Microsoft prepoznali su njegov utjecaj i, u nekim slučajevima, usvojili njegove metode. Čini se da je većina tvrtki s IT funkcijom već prilično upoznata s proizvodima otvorenog koda i često ih aktivno koristi.

Međutim, sveprisutnost softvera otvorenog koda još uvijek postavlja više pitanja nego odgovora. Pa pokušajmo odgovoriti na najpopularnije.

Što je softver otvorenog koda?

Vratimo se u 1997. godinu. Talentirani programer operativnog sustava Linux Bruce Perens sastavlja dokument vezan uz pripremu i distribuciju distribucijske verzije Debian Linuxa. Kasnije je uklonio sve reference na Debian i uveo koncept koji je danas poznat kao Definicija otvorenog koda. Između ostalog, u dokumentu Definicije stoji da se softver otvorenog koda treba distribuirati bez ikakvih tantijema programerima, distributeri su dužni svima omogućiti besplatan pristup izvornom kodu programa, a sva daljnja poboljšanja i nadogradnje programa također trebaju biti pruža pod istim uvjetima.

U biti, pokret za softver otvorenog koda blizak je rođak Pokreta za slobodni softver, koji je 1983. predložio Richard Stallman. Njegov glavni cilj bila je besplatna distribucija softvera, oslobađajući ga od standardnih ograničenja komercijalnih programa. Pravila za distribuciju besplatnog softvera regulirana su Općom javnom licencom (GPL), koja je odobrena u svom trećem izdanju u listopadu 2006.

Danas se diljem svijeta koriste deseci različitih licenci Open Source Initiative, svaka sa svojim posebnim pravilima koja zahtijevaju proučavanje od strane tvrtki koje razmatraju korištenje softvera otvorenog koda. Obično ova pravila ne nameću stroga ograničenja onima koji žele pristupiti programima otvorenog koda. Što se tiče distribucijskih zahtjeva, njima treba posvetiti veću pozornost kako bi se izbjegli potencijalni problemi povezani s kršenjem pravila licenciranja.

Zašto softver otvorenog koda?

Prvi razlog zašto tvrtke gledaju softver otvorenog koda vrlo je jednostavan – cijena. A ROI modela otvorenog koda to jasno pokazuje. Softver otvorenog koda potpuno je besplatan za preuzimanje, instaliranje i korištenje. U početku su niski troškovi privukli programere koji su htjeli isprobati nove alate ili dizajnirati nove aplikacije bez ulaganja novca. Nova sloboda navela je mnoge od njih da podrže pokret softvera otvorenog koda. Kao rezultat toga, softver otvorenog koda industrijske razine kao što je operativni sustav Linux, Apache web poslužitelj, Java aplikacijski poslužitelj JBoss i razvojno okruženje Eclipse počeli su se pojavljivati ​​diljem svijeta, zajedno s tisućama drugih projekata.

U kasnim 1990-ima, menadžment poduzeća je konačno počeo obraćati pozornost na softver otvorenog koda. Budući da su se IT proračuni stalno smanjivali, programeri su se hvalili kvalitetom i uštedama postignutim korištenjem softvera otvorenog koda, a mnoge su tvrtke počele ozbiljno razmatrati korištenje komponenti softvera otvorenog koda u poslovnim projektima. Prve velike tvrtke koje su implementirale softver otvorenog koda bile su The Weather Channel, Cendant Travel, Employease i Sabre.

U vrijeme globalnog rasta interneta, softver otvorenog koda omogućuje tvrtkama da brzo prošire svoje elektroničko poslovanje bez stalne kupnje novih licenci za komercijalni softver. Prednosti se također proširuju na razvoj i testiranje. Na ovaj način tvrtke mogu isprobati nove stvari bez dodatnih troškova povezanih s komercijalnim softverom i procesom probijanja budžeta koji je u takvim slučajevima potreban.

Vjerojatno nije tajna da malo ljudi iskorištava dostupnost izvornog koda u proizvodima otvorenog koda. Čini se da bi se pravo na slobodnu izmjenu i ispravljanje softverskog koda trebalo smatrati ozbiljnim plusom, ali u stvarnosti, umjesto da same održavaju softver, tvrtkama je puno lakše osloniti se na zajednicu programera koji promptno ažuriraju i otklanjaju pogreške programski kod svih popularnih proizvoda.

Razlozi odbijanja softvera otvorenog koda

Argumente protiv softvera otvorenog koda obično je lako nabrojati na prste jedne ruke.

    Dobivanje besplatnog softvera je kao "davanje besplatnih psića". Možete ga preuzeti i instalirati potpuno besplatno, ali obuka i korisnička podrška na kraju koštaju više od ukupne cijene komercijalnog softvera ili sličnog iznosa. Ovaj argument, koji Microsoft posebno voli iznositi, djeluje na podsvjesnoj razini. Je li to pravedno ili ne, ovisi o konkretnoj situaciji i analitičkom izvješću koje trenutno čitate.

    Teško je organizirati tehničku podršku. U ranim danima pokreta otvorenog koda, kada su razvoj i podršku uglavnom obavljale grupe volontera ili "zajednice", ovo je doista bilo hitno pitanje. No dok su mnoge organizacije otkrile da je podrška zajednice dovoljna da zadovolje njihove potrebe, danas su im otvorene mnoge druge mogućnosti, uključujući podršku za velike projekte otvorenog koda Hewlett-Packarda i IBM-a. Kao rezultat toga, izjava da je "za ugušenje, dovoljno je začepiti jedno grlo" gubi na važnosti.

    Razvoj nove funkcionalnosti traje duže u usporedbi s komercijalnim softverom. To zapravo uvelike ovisi o specifičnoj vrsti softvera koji koristite. Web preglednik Firefox najbolji je primjer kako se brzo softver otvorenog koda može prilagoditi potrebama korisnika. Također se možete sjetiti kako su brzo programeri Linuxa organizirali podršku za nove tehnologije, posebno USB priključke. U tom pogledu Linux praktički nije zaostajao za Windowsima. Ali kada je riječ o poslovnom softveru, ugradnja mehanizama za podršku najnovijoj video kartici ili audio čipu ovdje igra puno manje važnu ulogu u usporedbi s osiguravanjem visoke stabilnosti i performansi.

    Neizvjesnost daljnjeg razvoja i grananja. Veliki izbor softverskih licenci otvorenog koda, kao i mogućnost aktivne intervencije krajnjeg korisnika u programskom kodu, odvraća korporativne korisnike od implementacije takvih programa. Ali pomno ispitivanje licenci za aplikacije otvorenog koda od strane odvjetnika ublažava većinu ovih strahova. Neki pružatelji softvera otvorenog koda i tvrtke treće strane čak nude odštetu, tako da aplikacije otvorenog koda koje koristite mogu biti predmet tužbe.

Gdje početi?

Danas je gotovo svaka vrsta poslovnog softvera dostupna kao proizvodi otvorenog koda, od poslužitelja e-pošte do VoIP sustava. Mnoge tvrtke prije svega obraćaju pozornost na web aplikacije, gdje postoje proizvodi koji postoje već dosta dugo i već su uspjeli dokazati svoju vrijednost. Uobičajena referenca je LAMP stog (Linux, Apache, MySQL i PHP, Perl ili Python ovisno o specifičnoj situaciji). Operativni sustav Linux sličan Unixu postao je raširen. Jedan od najpopularnijih web poslužitelja danas je Apache. Sustav za upravljanje bazama podataka MySQL uspješno konkurira skupim komercijalnim proizvodima. A programski i skriptni jezici PHP, Perl i Python naširoko se koriste kao alati za razvoj web aplikacija otvorenog koda. Web stranice otvorenog koda koje se temelje na Javi često se oslanjaju na aplikacijski poslužitelj JBoss. Kako se bolje upoznajete s alatima otvorenog koda i otkrivate sličnosti i razlike između njih i komercijalnih proizvoda, otkrit ćete i druge mogućnosti. Također bi moglo biti iznenađujuće saznati da se vaši programeri povremeno okreću određenim proizvodima otvorenog koda na vlastitu odgovornost.

Aplikacijski poslužitelji su sjajni, naravno, ali što je sa softverom otvorenog koda za stolna računala?

Sasvim je uobičajeno da krajnji korisnici koriste razne alate otvorenog koda za stolna računala. Upečatljiv primjer takvog rješenja je web preglednik Mozilla Firefox. Neke državne i komercijalne organizacije preferiraju uredski paket Sun OpenOffice u odnosu na Microsoft Office. Ali dok se neki igrači upuštaju u nepoznato instalirajući operativni sustav Linux na svoja stolna računala, Windows je i dalje daleko dominantan igrač. Verzije Linuxa prilagođene krajnjem korisniku (kao što je LinSpire) ne mogu prekinuti status quo jer obuka korisnika zahtijeva vrijeme i novac. Osim toga, većina komercijalnih softverskih paketa—o kojima ovise mnoge tvrtke—razvijena je prvo za Windows, a zatim za Linux (ako verzija Linuxa uopće bude objavljena).

Mogu li se proizvodi otvorenog koda prodavati?

Da, naravno, ali pravila Open Source Initiative zabranjuju ometanje prodaje vašeg koda drugima. Pa ipak, mnoge tvrtke pronalaze načine za zaradu od proizvoda otvorenog koda. Mnogi, uz stvarni kod, nude usluge korporativne podrške, koje tvrtke vrlo rado kupuju. Drugi pružaju dvije verzije softverskog koda: jednu u otvorenom i besplatnom obliku, a drugu koja uključuje dodatne korisne funkcije, sadrži vlasničke komponente i moraju je platiti korisnici. Ovaj mješoviti model postaje sve popularniji. Aktivno ga koriste tvrtke kao što su SourceFire, SugarCRM, Alfresco i niz drugih.

Ostali izvori otvorenog koda

Mnogi programi otvorenog koda mogu se pronaći na internetu:

    Svježe meso. Ogromna baza podataka softvera za preuzimanje, većinom u obliku otvorenog koda.

    SourceForge. Ogromna stranica za programere otvorenog koda koja okuplja tisuće projekata otvorenog koda. Neki od njih nastavljaju se razvijati, dok su drugi već prestali postojati.

Izvori otvorenog koda - službeni i neslužbeni

    Open Source Initiative. Neprofitna organizacija koja svoju glavnu zadaću smatra daljnjim razvojem softvera otvorenog koda, a financiraju je brojni igrači koji već duže vrijeme djeluju na ovom polju.

    Open Source Technology Group. Vjerojatno vodeći svjetski promotor tehnologija otvorenog koda. Upravo ova udruga posjeduje novinsku stranicu Slashdot, kao i resurse SourceForge i FreshMeat.

    Upravljanje rizikom otvorenog koda. Nudi mehanizme za osiguravanje usklađenosti s regulatornim zahtjevima.

    Laboratoriji za razvoj otvorenog koda. Organizacija čiji je glavni cilj promicanje operativnog sustava Linux među korporativnim klijentima.

Mark Roberts
Direktor, upravljanje proizvodima
QNX softverski sustavi
e-mail: [e-mail zaštićen]

anotacija

Ovaj se članak usredotočuje na prednosti, strateška razmatranja, prepreke i mogućnosti povezane s upotrebom softvera otvorenog koda u komercijalnim proizvodima. Koristeći Integrirano razvojno okruženje (IDE) temeljeno na Eclipseu kao primjer, raspravljat ćemo o razlikama između zaštitnih i nezaštitnih licenci izvornog koda softvera. Pri integraciji ili povezivanju otvorenog izvornog koda s "vlasničkim" zatvorenim izvornim kodom često je potrebna pažnja i oprez. Postoje i različita pravna pitanja kojih treba biti svjestan, kao što je mogućnost kršenja patenta. Također ćemo pokušati objasniti zašto se osnovna načela softvera otvorenog koda u okruženju informacijske tehnologije (IT) ne odnose na komercijalne ugrađene proizvode.

Razvojno okruženje QNX Momentics kao primjer korištenja softvera otvorenog koda

Vraćajući se u 2001. godinu, kada su se mnoge softverske tvrtke borile za preživljavanje usred općeg kolapsa IT burze, posebno one vezane uz internetsko e-poslovanje, QNX Software Systems donio je stratešku odluku o početku razvoja novog integriranog razvojnog okruženja (IDE) za tržište ugrađenih sustava. Tvrtka je već imala solidno iskustvo u razvoju niza alata koji se koriste u razvoju ugrađenih uređaja, ali je uprava tvrtke shvatila da bi joj stvaranje IDE-a pomoglo da ostane ispred oštre konkurencije. Odluka o stvaranju IDE-a također je bila potaknuta promjenama u zahtjevima korisnika. Tijekom pada poslovnih aktivnosti, klijenti u nedostatku novca postali su zainteresiraniji za rješenja koja bi mogla maksimizirati produktivnost i učiniti ih mobilnijima (fleksibilnijima) u obavljanju posla, što bi poboljšalo ukupnu ekonomsku učinkovitost.

Za QNX, razvoj IDE-a bio je "oklada na budućnost" jer su troškovi i napor razvoja projekta bili izvan dosega većine prodavača alata ugrađenih sustava u to vrijeme. Na sreću, QNX je blisko surađivao s IBM-om na raznim segmentima tržišta ugrađenih uređaja. Kroz blisku suradnju, IBM je s QNX-om podijelio svoje planove za izdavanje integriranog razvojnog okruženja otvorenog koda koje je kasnije postalo osnova za Eclipse platformu.

IBM je predložio korištenje QNX-ove stručnosti za prilagodbu IDE tehnologije potrebama programera koji stvaraju ugrađene aplikacije temeljene na jeziku C/C++. Stručnjaci za QNX gotovo su odmah istaknuli uvjerljive prednosti korištenja IDE-a otvorenog koda. 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 programski kod za prilagodbu potrebama korisnika;
  • privući ozbiljne industrijske igrače da pruže podršku i stvore ekosustav komplementarnih tehnologija i dodataka;
  • pružiti kupcima stabilnu arhitekturu koja može podržati diferencijaciju proizvoda;
  • omogućiti programerima ugrađenih uređaja korištenje standardnih radnih stanica kao razvojne platforme, pogodne za rad s aplikacijama informacijske tehnologije (u širokom rasponu aplikacija).

Konačno, postojala je odvojena mogućnost da bi IDE platforma mogla steći popularnost i postati de facto standard, omogućujući QNX-u da osvoji tržište za velike ekosustave programera i alate trećih strana putem takve platforme.

Osnivanje projekta otvorenog koda Eclipse.org

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

Od samog početka, Eclipse je bio projekt istinski otvorenog koda. Projekt je ponudio i besplatne tehnologije otvorenog koda i pristup zajednici najobrazovanijih i najnaprednijih programera u svom području. Tako se ova tehnologija pokazala kao univerzalna platforma za integraciju svih vrsta razvojnih alata. Temelji se na otvorenoj, proširivoj arhitekturi i jasno je licenciran kao besplatan proizvod bez naknade. Doprinosi zajednice projektu Eclipse temelje se na standardnom razvojnom modelu softvera otvorenog koda (OSS), ali većina članova također doprinosi komercijalnim razvojima temeljenim na platformi Eclipse.

Projekt repozitorija alata

U prosincu 2001. QNX je počeo graditi svoj QNX® Neutrino® RTOS, temeljen na IDE platformi Eclipse. U viziji tvrtke, IDE je trebao imati veću funkcionalnost, fokusirati se na rad s C/C++ jezicima i imati duboko integrirane alate za ispravljanje pogrešaka, profiliranje, analizu i stvaranje ugrađenih aplikacija. Od samog početka QNX tim zamislio je da to bude višenamjenski, višejezični IDE koji podržava više platformi alata. Ovo uključuje:

  • nekoliko alatnih platformi: Windows, Solaris, QNX Neutrino RTOS (samostalni razvoj);
  • nekoliko ciljnih arhitektura: ARM, MIPS, PowerPC, SH-4, x86;
  • programski jezici C, C++, Java.

Od tada, IDE je nastavio rasti kako bi uključio podršku za Linux platformu i podršku za dodatne procesorske arhitekture, uključujući XScale procesore.

Projekt je pokrenut u stilu "ekstremnog programiranja". Iz tvrtke je odabran tim od 12 najboljih inženjera. Dobili su posebnu sobu, bili su izolirani od svih smetnji, projekt im je dan u potpunosti.

Tim je dobio potrebne ovlasti za donošenje odluka i dobio je tijesan, visokorizičan raspored rada za puštanje beta verzije proizvoda za 16 tjedana, a komercijalnu verziju do 4. srpnja 2002. Grupa je ispunila sve ciljne rokove i izdali su novi proizvod - nazvan QNX Momentics® IDE - točno u predviđenom roku, pokazujući potencijal softvera otvorenog koda za smanjenje vremena izlaska na tržište.

Od ideje do isporuke proizvoda - manje od 7 mjeseci

Gradeći na platformi Eclipse, QNX tim je u šest mjeseci dovršio vrlo moćan i sveobuhvatan IDE za razvoj ugrađenog softvera. IDE je podržavao razvoj više platformi za više platformi alata i više programskih jezika, a također je podržavao najpopularnije procesorske ploče za ugrađene ciljne uređaje. Koristeći Eclipse platformu, QNX je uspio:

  • koristiti GNU prevoditelje i alate naredbenog retka za unakrsni razvoj;
  • pružiti podršku za dodatke trećih strana, kao što je IBM WebSphere za ugrađene Java aplikacije i Rational ClearCase za razvoj na temelju modela;
  • stvoriti dodatne alate za izgradnju sustava, upravljanje ciljnim uređajima, analizu memorije, profiliranje sustava i aplikacija itd.

Na sl. Slika 1 prikazuje primjer kako korištenje Eclipse platforme smanjuje troškove stvaranja IDE-a, što omogućuje tvrtkama da usmjere svoju pozornost na gornje razine razvoja, gdje se stvaraju prave inovacije. Na primjer, korištenjem Eclipse platforme, QNX je uspio jednostavno stvoriti nekoliko inovativnih alata za vizualizaciju koji mogu ići duboko u ugrađeni sustav i prikazati njegovo ponašanje.

Vratite zajednici

Snaga uspješnog projekta otvorenog koda leži u suradnji zajednice programera i stalnom poboljšanju baze koda. Ako tvrtka usvoji i dobro koristi kod otvorenog koda, tada jednostavno ima obvezu pridonijeti zajednici. U tu je svrhu QNX preuzeo vodstvo nad projektom Eclipse CDT u lipnju 2002.

Cilj projekta Eclipse CDT (C/C++ Development Tools) je stvoriti zajednički skup interoperabilnih C/C++ jezičnih alata za Eclipse platformu. Eclipse CDT je ​​pozicioniran kao open source projekt, s upravljačkim pravima od Eclipse Corporation. Kako bi pokrenuo CDT projekt, QNX je donirao svoje razvojne resurse i izvorni kod QNX Momentics IDE projektu. Rational i Red Hat, kao članovi zajednice, također su pružili značajnu podršku projektu.

Riža. 1. Korištenjem Eclipse platforme, dobavljači alata mogu usmjeriti svoju pozornost na najvišu razinu radnog skupa, gdje se stvaraju prave inovacije.

QNX nastavlja održavati CDT projekt, koji je narastao sa skromnih 80.000 linija koda na sada preko 700.000 linija koda. Početkom 2006., dnevnik napretka za Eclipse CDT projekt procijenio je QNX-ov doprinos na 52%. Slijedi IBM s doprinosom od 36%. Projekt CDT drugi je najpopularniji projekt korporacije Eclipse nakon same platforme Eclipse.

Možete li si priuštiti "doniranje" koda?

Može se činiti da "donirati" svoj kod znači djelovati suprotno zdravom razumu. Međutim, ako se funkcionalnost vašeg proizvoda pokaže korisnom, zašto je ne biste doprinijeli zajednici otvorenog koda. Poduzimajući ovaj korak, možete imati koristi od ove ponude "standardne" implementacije zajedno s upotrebom stručnosti za podršku proizvoda. Moći ćete imati koristi od rada cijele zajednice usmjerenog na poboljšanje baze kodova. Ova strategija može osloboditi vaše vlastite resurse za provođenje dodatnih istraživanja usmjerenih na inovativni razvoj kako biste svojim proizvodima dodali dodatnu funkcionalnost.

Štoviše, mogli biste dobiti određenu kontrolu nad smjerom "standardne" platforme - zarađenu, naravno, kroz vaše usluge zajednici! Ako održavate projekt, ponašajte se kao dobar građanin zajednice, poštujte tuđa mišljenja i cijenite doprinose i savjete drugih članova. Nemojte misliti da će vas korištenjem koda netko pokušati "počepati" i preuzeti vaše vodstvo nad smjerom razvoja platforme.

Na primjer, strategija QNX Software Systemsa je iskoristiti svoje sudjelovanje u Eclipseu dok razvija nove funkcionalnosti kroz standardizirane proširene točke koje su već dostupne u Eclipse i CDT platformama. U tu svrhu, QNX namjerava ostati aktivan član Eclipse zajednice, koristeći prednosti postojeće baze koda i rada trećih strana (plug-inovi) kako bi se zadovoljile stvarne potrebe kupaca stvaranjem vlastitih vlasničkih proširenja. Opisana strategija ilustrirana je na sl. 2.

Riža. 2. Svojim radom možete doprinijeti radu zajednice.

Sažetak prednosti

Alatna platforma temeljena na Eclipseu dobitna je i za programere aplikacija kao što je QNX i za kupce koji kupuju platformske alate.

Korist za razvojne programere je smanjenje vremena potrebnog za plasiranje proizvoda na tržište i mogućnost iskorištavanja tuđih istraživanja (po niskoj cijeni). Ovi rezultati mogu uključivati ​​visokokvalitetni kod klasificiran kao "čisti IP" od renomiranih tvrtki kao što su IBM i QNX. Još jedna prednost za razvojnog programera je to što dobiva jednostavnu i jasnu shemu licenciranja, uključujući komercijalna prava i određenu zaštitu patenta. Štoviše, programer dobiva priliku raditi na višestrukim OS platformama koje podržava Eclipse, a također ima na raspolaganju dobro definirane točke proširenja u Eclipse projektu.

Kupci koji kupe IDE temeljen na Eclipseu imaju koristi od alatne platforme dizajnirane za razvoj ugrađenih aplikacija, sa snažnom podrškom za unakrsnu kompilaciju, jednostavnim otklanjanjem pogrešaka i proširenjima za upravljanje ciljnim sustavima. Klijentov razvojni tim cijenit će mnoge značajke koje olakšavaju rad, potrebno kratko vrijeme obuke, dobre performanse proizvoda i robusnu platformu koja može nositi s velikim projektima. Korisnici također mogu imati koristi od korištenja Eclipse platforme u vlastitim aplikacijama (npr. RCP, eRCP, itd.).

Budućnost korporacije Eclipse

Eclipse Corporation je aktivna i živahna zajednica. Kontinuirano uvodi nove projekte, nove arhitekture čini dostupnima etabliranim, inovativnim tvrtkama, a čak i male tvrtke mogu komercijalno imati koristi od Eclipse platforme isplativim stvaranjem novih dodataka koji proširuju postojeću funkcionalnost (vidi sliku 3).

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

Usporedba licenci otvorenog koda

Nisu sve licence softvera otvorenog koda jednake. QNX je napravio pametan potez odlaskom na Eclipse javnu licencu. Ovaj izbor djelomično su potaknule potrebe njegovih ugrađenih korisnika, a djelomično želja za kontrolom (i iskorištavanjem) tehnologije koja razlikuje njegove proizvode.

Neprofitna organizacija Open Source Initiative () predložila je korisnu definiciju otvorenog koda od 10 točaka. Trenutno je na web stranici dostupno više od 50 OSI odobrenih licenci, uključujući Eclipse Public License. Ove licence mogu sadržavati značajne razlike kojih biste trebali biti svjesni. Te razlike mogu imati značajan utjecaj na intelektualno vlasništvo programera (IP) i njihovu sposobnost da ga zaštite. Ovo je najrelevantnije kada se koristi otvoreni kod (ili izvedenice otvorenog koda) u ugrađenim uređajima.

Obrambena i neobrambena licenca

Prema uvjetima zaštitne licence, kao što je GPL v2, izvedeni radovi mogu se distribuirati samo zajedno s odgovarajućim izvornim kodom. Sigurnosna licenca jamči da će, kada izvorni kod postane otvoreni kod, ostati otvoreni kod u svim sljedećim generacijama i izvedenim radovima. Kao što ćemo kasnije objasniti, ovaj zahtjev dovodi do određenih problema u slučaju ugrađenih sustava.

Primjeri neobrambenih licenci su izvorne MIT i BSD licence. Neobrambene licence čuvaju autorska prava vlasnika, ali daju široka prava korisniku, uključujući pravo na izmjenu i neograničenu besplatnu distribuciju (ili osobnu upotrebu) softvera.

Što znači "licenca za virus"

Neki ljudi GPL nazivaju "virusnom licencom". Ovaj naziv nastao je zbog nejasnoće zakonske definicije pojma "derivativnog razvoja". Strogo tumačenje definicije znači da ako je čak i mali dio GPL licenciranog koda ugrađen u vlasničku aplikaciju, tada cijela aplikacija mora biti licencirana kao GPL. Odmah mi pada na pamet analogija s virusom.

Pitanja o primanju naknade

Nedavno je IP Indemnification (IP Indemnification) postala glavna tema rasprava za programere. Kao odgovor, neki dobavljači otvorenog koda najavili su da će zaštititi kupce od tužbi povezanih s kršenjem patenata ili autorskih prava. A najnovije licence otvorenog izvornog koda navode kazne za korisnike koji pokušaju ostvariti svoja patentna prava protiv drugih korisnika baze kodova.

Glavni problemi koji se javljaju pri komercijalizaciji softvera otvorenog koda

Usporedba ugrađenih i IT aplikacija

Uspjeh industrije otvorenog koda potaknut je usvajanjem Linuxa od strane IT organizacija. Prednosti korištenja Linuxa dolazile su od rada na relativno homogenom i stabilnom hardveru (obično obitelji x86) i korištenja fleksibilne računalne platforme bogate resursima.

S ugrađenim softverom stvari su potpuno drugačije. Ovaj softver radi na velikom broju uređaja s fiksnim skupom funkcija, dok koristi širok raspon hardvera s različitim arhitekturama. Programeri ugrađenih uređaja često temelje svoju konkurentsku prednost na specifičnom skupu značajki, veličini, performansama, cijeni, trajanju baterije, pouzdanosti, interoperabilnosti i proširivosti. Ove karakteristične značajke obično se implementiraju u softver niske razine, koji u slučaju Linuxa zahtijeva izravno povezivanje s jezgrom OS-a. Prilagodba softvera niske razine kako bi odgovarala potrebama klijenata je norma, a ne iznimka, tako da programeri često postižu funkcionalnost koja im je potrebna promjenom jezgre OS-a. Također se koristi metoda izravnog povezivanja ugradnjom u fragmente koda kako bi se smanjio trošak izrade knjižnica. Ove prakse, uzete zajedno, jako otežavaju zaštitu vlasničkog koda pod licencama kao što je GPL.

Obično ovi problemi s licenciranjem ne utječu na IT aplikacije budući da se vlasnički softver specifičan za poduzeće ne proteže izvan poduzeća i koristi se isključivo za interne potrebe. U slučaju ugrađenih uređaja, izvedeni softver uvijek se distribuira putem njih, podložno klauzuli o "prisilnom otvaranju" licenci otvorenog koda, što može ugroziti glavne aspekte vrijednih ponuda otvorenog koda.

Osim toga, ugrađeni proizvodi često imaju dug životni vijek, kako tijekom proizvodnje tako i tijekom uporabe. Ugrađeni proizvod koji podliježe uvjetima otvorenog izvornog koda podložan je većim rizicima, uključujući nedostatak dugoročne tehničke podrške, potencijalne sigurnosne probleme i povrede IP-a.

Problemi s licenciranjem

Nesiguran pravni status

Unatoč ohrabrujućim riječima pristaša nekih licenci otvorenog koda, mnoga ključna pitanja oko kojih razvijači ugrađenih sustava izražavaju zabrinutost još nisu naširoko ispitana u sudskoj praksi. Kao što je spomenuto, definicija "izvedenog rada" ključna je za osiguravanje usklađenosti s određenim licencnim klauzulama, iako mnogi pojedinci i organizacije koji prihvaćaju uvjete otvorenog koda nemaju dovoljno razumijevanja za koncept ili ga namjerno ignoriraju.

Neka rješenja koja dopuštaju prodavačima komercijalnih proizvoda da uvedu "vlastite" upravljačke programe u Linux (kao što su moduli kernela koji se mogu učitavati) više se oslanjaju na argumente "on je rekao, ona je rekla" nego na izravnu referencu na tekst licencnog ugovora. Zapravo, takvi upravljački programi koji koriste LKM module prepuni su opasnog zaobilaženja zahtjeva GPL licence. Da dovedemo do krajnosti, netko bi mogao protumačiti stvar kao da kaže da se Linux kodna baza može predstaviti kao beskorisna za većinu praktičnih aplikacija osim ako ne uključuje neke od ovih vlasničkih upravljačkih programa. Ova situacija može prilično učinkovito obezvrijediti ideju GPL licence.

Nema naknade za povredu IP-a

U većini slučajeva korištenja otvorenog izvornog koda postoji realna mogućnost da nenamjerno povrijedite tuđa patentna prava. Nekoliko licenci otvorenog koda izričito se pozivaju na patente, a implicirane licence ne mogu se presuditi. Morate zasebno licencirati sve patente koji pokrivaju, na primjer, kodeke otvorenog koda koji implementiraju MP3 algoritme ili druga vlasnička rješenja. U međuvremenu su “zločesti dečki” (uključujući i Microsoft) zaokupljeni stvaranjem portfelja patenata koji, prema mnogim stručnjacima, mogu poslužiti za “pucanje” na pobornike otvorenog koda.

Neke licence sadrže eksplicitne reference na patente. Na primjer, Eclipse Public License eksplicitno spominje patentna prava i sadrži klauzulu o kaznama ako netko pokuša ostvariti patentna prava na drugačiji način. Eclipse također ulaže puno truda u pregled koda i određivanje njegovog izvora iz perspektive licenciranja, patenta ili autorskih prava.

Dodatni napori za očuvanje IP-a

Za korištenje otvorenog izvornog koda tvrtka mora uložiti značajan trud u sljedeća područja:

  • upravljanje distribucijom proizvoda;
  • upravljanje licencama;
  • rješavanje pravnih sukoba u vezi s obvezama klijenata;
  • Obraćanje dužne pozornosti na pravna pitanja: održavanje čistoće IP prava, provjera IP prava za otvoreni izvorni kod, identificiranje izvora podrijetla koda, praćenje promjena u verzijama licence, kao što je GPL v3, itd.

Prihvaćanje zahtjeva kupaca

Neki veliki kupci, suočeni sa složenošću i neizvjesnošću softvera otvorenog koda, odbili su raditi s proizvodima koji uključuju otvoreni kod. Ako želite raditi s takvim klijentima, morate dobiti ili ponuditi da uključe uvjete komercijalne licence za vaš kod.

IP pitanja

Pokrivaju li uvjeti vaše licence otvorenog koda intelektualno vlasništvo koje vaš proizvod čini drugačijim? Ako je tako, vaš IP je u opasnosti.

Ako vaši ugrađeni sustavi koriste mješavinu vašeg vlastitog softvera i softvera otvorenog koda, morate razumjeti prirodu, porijeklo i odnose svih komponenti ugrađenog softvera. Bez ovog dubokog razumijevanja teme, mogli biste nenamjerno povrijediti tuđu IP adresu ili čak izgubiti prava na vlastiti softver.

Bez licenciranja patenata i kompenzacije, dugotrajni softver ugrađenih sustava, relativno visoka prodajna cijena i obujam prodaje ugrađenih uređaja s fiksnim značajkama čine ih očitom metom za tužbe za kršenje patenata od strane gore spomenutih zločestih dečki i glavnih konkurenata.

Kao što pokazuje QNX Momentics IDE, postoje mnoge neposredne prednosti softvera otvorenog koda, uključujući skraćeno vrijeme izlaska na tržište, niže troškove razvoja i veću slobodu dodavanja dodatnih funkcionalnosti i inovacija vašem proizvodu. Ako svoj softver ponudite kao uslugu koja rješava neki problem kupca, tada kupca nije briga jeste li koristili softver otvorenog koda ili ne, on samo plaća funkciju koja mu je potrebna.

Međutim, trebali biste razumjeti razlike između različitih licenci otvorenog koda i odabrati onu koja odgovara vašoj aplikaciji i potrebama klijenta. Štoviše, budite spremni ispuniti obveze licenciranja softvera koji odaberete. Trebali biste biti svjesni drugih zahtjeva za IP (kao što su patentna prava) povezanih sa softverskim kodom. Budite oprezni s bazom kodova koja ne prikazuje poruku o posljedicama kršenja IP-a. Umjesto toga potražite projekte koji nude kompenzaciju za moguću štetu i gdje se na ekranu prikazuje poruka o novčanim donacijama za razvoj koda za kompenzaciju troškova povezanih s kršenjem autorskih prava ili patenata i tako dalje. Također provjerite je li softver otvorenog koda koji koristite u skladu s vašim pravilima o intelektualnom vlasništvu i izbjegavajte zaštitne licence koje bi vas mogle prisiliti da otkrijete karakteristične dijelove svog koda. Ako je vaš proizvod ugrađen u sustav, također razmislite o ponudi komercijalnih uvjeta licenciranja za vaš IP.

Korištenje otvorenog izvornog koda u ugrađenim uređajima dovodi do složenijih problema nego u slučaju korištenja takvog softvera u IT aplikacijama, budući da je prva opcija opasnija. Prije nego što odlučite koristiti bilo koji softver otvorenog koda, razmotrite njegov pravi trošak vlasništva (TTCO) i njegovu prikladnost za vaš projekt.

Konačno, pridružite se zajednici korisnika i programera otvorenog koda kako biste izvukli maksimum iz nje!

Softver otvorenog koda je metoda razvoja softvera u kojoj je izvorni kod programa koji se izrađuju otvoren, odnosno javno dostupan za pregledavanje i mijenjanje. To omogućuje svakome da koristi već kreirani kod za svoje potrebe i, eventualno, pomogne u razvoju programa otvorenog koda.

"Otvorena" licenca ne zahtijeva da se softver u svakom trenutku daje besplatno. Ali mnogi od najuspješnijih softverskih projekata otvorenog koda još uvijek su besplatni.

Velika većina otvoren programa je istovremeno besplatno(GNU GPL) i obrnuto, jer su definicije otvorenog i slobodnog softvera slične, a većina licenci u skladu je s objema.

Razlika između pokreta otvoreni izvor I besplatni softver leži uglavnom u prioritetima. Zagovornici softvera otvorenog koda ističu učinkovitost kodova otvorenog koda programi kao razvojna metoda. Zagovornici slobodnog softvera temelje se na ideološkim promišljanjima i vjeruju da jest prava distribucija, modifikacija i proučavanje programa glavna su prednost besplatni softver.

Microsoft Windows OS

Riža. 39. OC Windows logotip.

MS Windows (izgovara se Vindouz) je obitelj operativnih sustava tvrtke Microsoft (Microsoft). Voditelj Microsoft Corporation - Bill Gates.

Od 1995. godine Windows je najpopularniji operativni sustav na tržištu osobnih računala – de facto standard. Do 2005. Microsoft Windows bio je instaliran na više od 89% osobnih računala.

Međutim, mnogi su korisnici odabrali Windows OS jer uopće nisu upoznati s alternativama kao što su MacOS, Linux, BSD. U Rusiji su se do ranih 2000-ih gotovo sva osobna računala prodavala s unaprijed instaliranim operativnim sustavom Windows. Borba protiv širenja piratskih verzija softverskih proizvoda dovela je do pojave interesa za druge operativne sustave. Na primjer, postalo je moguće kupiti osobno računalo s unaprijed instaliranim besplatni Linux OS.

Kronologija izdavanja verzije sustava Windows


Windows 1.0 (1985.)

1. Windows 2.0 (1987.)

2. Windows/386 (1987)

3. Windows 3.0 (1990.)

4. Windows 3.1 (1992.)

5. Windows NT 3.1 (1993.)

6. Windows NT 3.5 (1994.)

7. Windows 95 (1995.)

8. Windows NT 4.0 (1996.)

9. Windows 98 (1998)

10. Windows 2000 (2000)

11. Windows Me (2000.)

12. Windows XP (2001.)

13. Windows 2003 (2003)

14. Windows Vista (2007)

15. Windows radni naslov Beč (2010.)


Integrirani softverski proizvodi i aplikacijski softver

Operativni sustav Microsoft Windows uključuje standardne aplikacije kao što su Internet Explorer preglednik, Outlook Express klijent e-pošte, Windows Media Player.

Bilo je mnogo kontroverzi i rasprava oko uključivanja takvih standardnih proizvoda u operativni sustav Windows, budući da predstavlja ozbiljnu prepreku usvajanju konkurentskih proizvoda.

Riža. 40. Logo MS Office paketa.

Za MS Windows postoji vrlo zgodan i savladan od strane većine korisnika Microsoft Office paket aplikacija, uključujući:

Program za obradu teksta MS Word,

Stolni procesor MS Excel,

Organizator MS Outlook,

Aplikacija za pripremu prezentacija MS PowerPoint,

Aplikacija za upravljanje bazom podataka MS Access.

Ne zaboravite da i Windows OS i velika većina popularnih aplikacijskih programa za Windows imaju licencu za autorska prava, tj. su vlasnički PO. Sukladno tome, svaka kopija takvog programa mora se kupiti za novac. Na primjer, krajem 2006. cijena za Windows XP Home Edition Russian BOX (SP2) bila je 185 USD, Office 2003 Russian CD bio je 322 USD.

Korištenjem nelicenciranog (piratskog) softvera zaštićenog licencom za autorska prava, kršite zakone o autorskim pravima.

OS GNU/Linux

Riža. 41. GNU/Linux OS logo – Tux pingvin.

Operativni sustav GNU/Linux (izgovara se "gnu Linux") je besplatni operacijski sustav sličan UNIX-u. Tipično, zbog povijesnih razloga i zbog kratkoće, ovaj se sustav jednostavno naziva "Linux". Ovo je najmoćnija alternativa za MS Windows, popularan kao poslužitelj i brzo dobiva na popularnosti kao operativni sustav za stolna računala posljednjih godina, zbog povećane kontrole usklađenosti s licenciranom upotrebom Windows OS-a od strane Microsofta u verzijama XP i Vista.

Operativni sustav GNU/Linux također često uključuje programe koji nadopunjuju ovaj operativni sustav i aplikacijske programe koji ga čine punopravnim višenamjenskim operativnim okruženjem.

Za razliku od većine drugih operativnih sustava, GNU/Linux nema niti jedan "službeni" paket. Umjesto toga, GNU/Linux dolazi u velikom broju tzv distribucije, u kojem se GNU programi kombiniraju s Linux kernelom i drugim programima. Najčešće distribucije u svijetu:

američki crveni šešir i njegov nasljednik Fedora jezgra;

njemački SuSE;

francuski Mandriva(prijašnji Mandragora);

Nenacionalna međunarodna distribucija Debian GNU/Linux;

Jedna od najstarijih distribucija Slackware;

Relativno mlada distribucija koja se aktivno razvija Gentoo;

Mlada ali perspektivna distribucija Ubuntu Linux.

Tvorac jezgre Linuxa - Linus Torvalds. GNU/Linux nema geografski razvojni centar. Ne postoji organizacija koja posjeduje ovaj sustav; Ne postoji niti jedan koordinacijski centar. Programi za GNU/Linux rezultat su rada tisuća projekata. Neki od tih projekata su centralizirani, neki su koncentrirani u tvrtkama, ali većina okuplja programere iz cijelog svijeta koji se poznaju samo preko dopisivanja. Svatko može kreirati vlastiti projekt ili se pridružiti postojećem i, ako uspije, rezultati rada će postati poznati milijunima korisnika. Korisnici sudjeluju u testiranju besplatnog softvera i izravno komuniciraju s programerima, što im omogućuje brzo pronalaženje i ispravljanje pogrešaka te implementaciju novih značajki.

Linux je već zauzeo oko 30% australskog tržišta operativnih sustava za poslužitelje. Iza Australaca slijedili su Brazilci. Brazilska vlada odlučila je prestati trošiti novac na softver i prebaciti se s Microsoftovih proizvoda na sustave otvorenog koda, posebice Linux OS. Glavni razlog promjena je ekonomski. Kod nas je Linux tržište još uvijek malo.

Sustav datoteka

Sve informacije na računalu pohranjene su u datotekama s kojima radi operativni sustav.

Datoteka(datoteka) - ovo je imenovani niz bajtova, mjesto trajne pohrane raznih vrsta informacija.

Datoteke su organizirane u katalozi, također se nazivaju imenici ili mape. Katalog je datoteka koja pohranjuje informacije o drugim datotekama: naziv, veličina, datum nastanka, adresa datoteke na disku.

Svaki imenik može sadržavati bilo koji broj poddirektorije, od kojih svaki može pohranjivati ​​datoteke i druge direktorije.

Svaki disk ima master ili korijenski direktorij, koji sadrži sve ostale direktorije, zvane poddirektoriji, i neke datoteke. Tako se stvara hijerarhijska struktura. Poziva se imenik s kojim korisnik trenutno radi Trenutno.

Datoteke i direktoriji su najvažniji objekti u datotečnom sustavu. Sustav datoteka- propisi kojima se utvrđuje način organiziranja, čuvanja i imenovanja podataka na medijima. Definira format fizičke pohrane datoteka. Određeni datotečni sustav određuje veličinu naziva datoteke, najveću moguću veličinu datoteke i skup atributa datoteke.

Način na koji su podaci organizirani u bajtove naziva se format datoteke. Da biste pročitali datoteku, kao što je proračunska tablica, morate znati kako bajtovi predstavljaju brojeve (formule, tekst) u svakoj ćeliji; Da biste pročitali datoteku uređivača teksta, morate znati koji bajtovi predstavljaju znakove, koji fontovi ili polja i druge informacije.

Sve datoteke mogu se podijeliti u dva dijela - tekst I binarni.

Tekstualne datoteke- najčešći tip podataka u svijetu računala. Za pohranjivanje svakog znaka najčešće se dodjeljuje jedan bajt, a tekstualne datoteke se kodiraju pomoću posebnih tablica kodiranja.

Ali čiste tekstualne datoteke postaju sve rjeđe. Ljudi žele da dokumenti sadrže slike i dijagrame i koriste različite fontove. Kao rezultat toga pojavljuju se formati koji su različite kombinacije teksta, grafike i drugih oblika podataka.

Binarne datoteke, za razliku od tekstualnih, nisu tako jednostavni za pregled i, u pravilu, ne sadrže nama poznate riječi - samo puno nerazumljivih simbola. Ove datoteke nisu namijenjene izravnom čitanju od strane ljudi. Primjeri binarnih datoteka su izvršni programi i grafičke datoteke.

Svaka datoteka na disku ima oznaku ( puno ime), koji se sastoji od 2 dijela: Ime I proširenja, odvojene točkom.

Ekstenzija naziva datoteke- izborni niz znakova koji se dodaje nazivu datoteke i namijenjen je identificiranju vrste (formata) datoteke. Ovo je jedan od uobičajenih načina na koji korisnik ili računalni softver može odrediti vrstu podataka pohranjenih u datoteci.

U ranim operacijskim sustavima duljina ekstenzije bila je ograničena na tri znaka; u modernim operativnim sustavima to ograničenje nije prisutno.

Operativni sustav ili upravitelj datoteka može stvoriti preslikavanja između ekstenzija datoteka i aplikacija.

Kada korisnik otvori datoteku s registriranim nastavkom, automatski se pokreće program koji odgovara tom nastavku. Neka proširenja pokazuju da je sama datoteka program. Ekstenzija datoteke često se korisniku prikazuje ikonom.

Vozači

Razni uređaji mogu biti povezani s računalom: video kartica, zvučna kartica, printer, skener, pokazivački uređaji, disk jedinice, digitalne kamere, mobiteli... Svaki od njih ima svoj skup naredbi - svoj vlastiti "jezik" . Da bi određeni operacijski sustav upravljao određenim uređajem, pribjegava se pomoći programa “prevoditelja” koji poznaju, s jedne strane, jezik naredbi određenog uređaja, as druge strane, jezik određenog operativnog sustava. sustav pod kojim ovaj uređaj treba raditi.

Ovaj program se zove vozač(vozač) i isporučuje ga proizvođač s uređajem. Proizvođači hardvera, u pravilu, također objavljuju upravljačke programe za uređaje koje stvaraju na svojim web stranicama.