Používanie softvéru s otvoreným zdrojovým kódom na vytváranie úspešných komerčných produktov. Open source a slobodný softvér

  • 22.07.2019

Open source softvér má svojich fanúšikov a v poslednej dobe, keď ide o vývoj akýchsi „národných“ produktov, majú na mysli v podstate open-source. Paradoxne, záujem o tento typ softvéru vyvolal množstvo skreslení a mylných predstáv, ktoré v praxi bránia jeho šíreniu.

Naša spoločnosť je zapojená do open source projektov od roku 2005 - a prostredníctvom vývoja vlastných open source riešení (OpenVZ , projekty CRIU), participuje na ďalších open source projektoch (QEMU , OpenStack , libvirt , libcontainer atď.). Za posledných 10 rokov sme zhromaždili niektoré z najbežnejších mýtov o softvéri s otvoreným zdrojovým kódom. Budem hovoriť o každej z mylných predstáv a vysvetlím, prečo je nesprávna. Určite si spomeniete na mnohé ďalšie, ale podľa mňa je týchto päť „najpekelnejších“.


Open source projekt je open source projekt.

Každý softvérový projekt pozostáva z mnohých artefaktov: zdrojový kód projektu, informácie o neopravených chybách, testovací zdrojový kód, dokumentácia. Zdrojový kód projektu je len jeho časťou, voľný prístup ku ktorému neoprávňuje nazvať celý projekt open source. Okrem zdrojového kódu by mali byť voľne dostupné aj ďalšie vývojárske artefakty a čím viac artefaktov je otvorených, tým viac je projekt otvorený pre prispievateľov (ľudí, ktorí chcú do projektu prispieť). Okrem toho sú potrebné transparentné procesy medzi všetkými členmi komunity, otvorená komunikácia v projekte atď. Všetky tieto opatrenia len prispejú k rozvoju projektu a plodnej spolupráci členov komunity.

Kvalita open source softvéru je horšia, pretože preň môže napísať kód každý

Hlavný princíp open source – otvorený spoločný vývoj – je sám o sebe zárukou, že nekvalitný kód, barličky a záplaty sa jednoducho nedajú skryť pred ostatnými účastníkmi. Osoba zúčastňujúca sa takýchto projektov je pripravená na to, že jeho práca bude podrobená analýze aj kritike, čo znamená, že nebude hackovať. Jeho povesť je ohrozená a nikto o ňu nechce prísť.

Navyše v niektorých komunitách (napríklad komunita okolo vývoja linuxového jadra) platí prísna zásada – do zdrojového jadra sa prijíma len ten najlepší, odskúšaný a ideálny kód. Pokus o pridanie nekvalitných zmien bude zamietnutý, druhý pokus je plný straty reputácie osoby alebo spoločnosti-prispievateľa.

To znamená, že otvorený projekt skutočne umožňuje komukoľvek podieľať sa na písaní kódu, ale v serióznych projektoch kvôli vysokej vstupnej hranici nebude kód akceptovaný od ľudí s nedostatočnou úrovňou odbornosti.
Väčšina veľkých IT spoločností (IBM, Google, Canonical, Parallels atď.) má celé oddelenia, v ktorých sú špecialisti platení za prácu na open source projektoch a nepriamo tak pracujú na produktoch firmy.

Samostatne stojí za zmienku, že spoločnosti, ktoré vyvíjajú produkty založené na otvorených projektoch, majú záujem zlepšiť kód otvorených projektov, ktoré používajú pri testovaní. Preto je potrebné opraviť všetky zistené problémy a zabezpečiť, aby bola táto oprava pridaná do hlavnej vetvy projektu, aby bolo čo najmenej rozdielov vo vašom kóde a kóde otvoreného projektu. Naše produkty používajú kód iných otvorených projektov, takže opravujeme problémy nájdené v kóde týchto projektov a posielame ich do upstreamu. To bol prípad zraniteľností v jadre RHEL: Red Hat poznamenal, že Vladimir Davydov objavil vážne zraniteľnosti CVE-2014-0203 a CVE-2014-4483 v jednej z aktualizácií jadra RHEL6 (druhý problém sa mimochodom zistil pomocou jeden z našich automatických testov pomocou projektu Linux Test Project). Vasily Averin dostal pochvalu za nájdenie CVE-2014-5045, Dmitrij Monakhov za CVE-2012-4508. Dobré testovanie linuxového jadra dokonca zaznamenal Andrew Morton (kto je to?): „Mám záujem. Počas niekoľkých posledných mesiacov ľudia z @openvz.org našli (a opravili) veľa nejasných, ale závažných a dosť starých chýb. Ako si objavil tieto chyby?"

Výsledok

V skutočnosti všetky vyššie uvedené mýty pochádzajú z väčšej časti od používateľov, ktorí buď len začínajú pracovať so softvérom OpenSource, alebo ho vôbec nevyskúšali. Najlepší spôsob, ako sa zbaviť predsudkov, je začať s takýmito rozhodnutiami úzko spolupracovať.
Nedávno sme oznámili otvorený vývojový proces pre novú verziu nášho produktu Virtuozzo 7. Ak máte aj vy záujem o vytvorenie najlepšej technológie virtualizácie kontajnerov, potom

Všetok softvér na LiveCD a DVD je bezplatný softvér s otvoreným zdrojovým kódom (bezplatný a otvorený zdroj), s niektorými výnimkami (Flash, Opera, Acrobat Reader a ďalšie), ktoré sa nachádzajú v úložisku, ktoré nie je oss. Keď hovoríme o slobodný softvér, Myslíme sloboda, nie cena.

Čo je slobodný softvér

Hnutie za slobodný softvér odštartoval Richard M. Stallman, ktorý v roku 1984 založil projekt GNU (rekurzívna skratka: GNU's Not Unix). O rok neskôr založil Free Software Foundation (Free Software Foundation, tiež známu ako FSF).

Slobodný softvér možno rozdeliť do 4 hlavných „stupňov slobody“:

  • Liberty použitie programy akýmkoľvek spôsobom. (sloboda 0)
  • Liberty naučiť sa pracovať program, ako aj jeho prispôsobenie vašim potrebám (sloboda 1) Vyžaduje si to prístup k zdrojovému kódu.
  • Liberty distribúcia kópií programy. Môžete zdieľať so susedom. (sloboda 2)
  • Liberty zlepšiť program a zverejnite svoje vylepšenia v prospech celej komunity (sloboda 3). Vyžaduje si to prístup k zdrojovému kódu.

Neslobodný softvér sa nazýva proprietárny softvér. Dôležité je nemýliť si shareware a slobodné (freeware) programy s bezplatnými, ide o rozdielne veci.

Čo je softvér s otvoreným zdrojom

Hnutie za slobodný softvér a open source začalo na začiatku 90. rokov ľuďmi, ktorí zdôrazňovali technické a ekonomické výhody používania open source a otvoreného modelu vývoja slobodného softvéru. Existuje však malé množstvo kódu, ktorý Open Source Society uznáva ako slobodný softvér, preto sa často používa termín FOSS (Free and Open Source Software). Presne povedané, pojmy „slobodný softvér“ (Free Software) a „softvér s otvoreným zdrojovým kódom“ (Softvér s otvoreným zdrojovým kódom) nie sú vôbec totožné, ako by si niekto mohol myslieť. Napríklad licenčná zmluva na softvérový produkt vám môže umožniť preskúmať jeho zdrojový kód, pričom vám zakáže vykonávať v ňom zmeny a/alebo distribuovať jeho kópie. V tomto prípade je produkt otvorený (Open Source), ale nie je zadarmo (Free).

Výhody používania slobodného softvéru

Slobodný softvér je výhodný z viacerých dôvodov, z ktorých hlavné sú uvedené nižšie.

Oprava chyby

Ak je softvérový produkt bezplatný, dáva vám to právo opraviť v ňom nájdené chyby, ako aj upraviť ho tak, aby vyhovoval vašim potrebám. Ak je program proprietárny, nemôžete sami opraviť chyby, ktoré sa v ňom nachádzajú, ani rozšíriť funkčnosť. V takom prípade budete nútení kontaktovať vlastníka softvérového produktu so žiadosťou o vykonanie potrebných opráv a doplnenie funkcií, ktoré potrebujete. Neexistuje však žiadna záruka, že to majiteľ urobí.

Zdieľanie

Slobodný softvér vám dáva právo šíriť jeho kópie, čím pomáhate vašim priateľom používať slobodný softvér bez získania licencií.

Vedieť a ovládať, čo a ako program robí

Vo veľkej väčšine prípadov nemôžete presne vedieť, čo proprietárny program robí. Nemôžete si byť teda istí, že program robí len to, o čo ho požiadate, pretože môže vykonávať niektoré akcie bez vášho vedomia (napríklad posielať informácie o vás ako používateľovi svojim tvorcom alebo má nezdokumentované schopnosti rôzneho charakteru) . Samozrejme, v prípade použitia bezplatného programu ste proti takýmto problémom úplne poistení. Koniec koncov, máte k dispozícii zdrojový kód programu, ktorý vám umožňuje presne vedieť, čo a ako program robí. Ak vám niektoré z jeho funkcií a / alebo funkcií práce nevyhovujú, môžete v kóde vykonať potrebné zmeny.

Technické výhody

Otvorený zdrojový kód slobodného softvérového produktu je dostupný veľkému počtu ľudí, čo im dáva možnosť opraviť chyby, ktoré sa v ňom nachádzajú; to prispieva k vývoju a zlepšovaniu produktu. Takýto systém „peer review“ možno prirovnať k vedeckej metóde výskumu. Naproti tomu uzavretý zdrojový kód proprietárneho produktu je udržiavaný v tajnosti a takmer nikdy ho nikto mimo vývojárskej spoločnosti nevidí.

Ekonomické výhody

Slobodný softvér poskytuje spoločnostiam možnosť podieľať sa na nákladoch na vývoj softvéru. Napríklad Novell a RedHat súťažia vo vývoji rovnakých programov, ale navzájom si pomáhajú. IBM a HP sú tiež konkurentmi, ale tiež významne prispeli k vývoju linuxového jadra, čím sa podieľali na nákladoch na vývoj. Slobodný softvér vám umožňuje mať konkurenčný trh technickej podpory, a preto je jeho kvalita zvyčajne veľmi vysoká. Pri proprietárnom softvéri je situácia presne opačná: iba vývojárska spoločnosť má prístup k zdrojovému kódu a je schopná ponúknuť primeranú technickú podporu, čo svedčí o určitom stupni monopolu. Okrem toho by sa do ekonomických prínosov mala zahrnúť aj otázka nákladov na obstaranie softvérového produktu. V prípade, že je zadarmo, môžete si ho raz stiahnuť z internetu (alebo zakúpiť na pevnom médiu), nainštalovať na ľubovoľný počet počítačov a používať neobmedzene. Ak je produkt proprietárny, potom podmienky licenčnej zmluvy môžu výrazne obmedziť používanie produktu (napríklad obmedzením počtu inštalácií a/alebo času používania).

Nie som programátor. Prečo by som sa mal starať o vyššie uvedené?

Väčšinu slobôd a možností uvedených vyššie môžu skutočne využívať iba programátori, ktorí vedia čítať a písať kód. Nemyslite si však, že slobodný softvér je len pre programátorov. Ak si vy, ktorí nie ste jedným z nich, želáte nejakým spôsobom upraviť slobodný softvér, ktorý používate, aby ste rozšírili jeho funkčnosť, môžete si (sám alebo v spojení s inými používateľmi) najať programátora, ktorý to urobí za vás. Táto prax je veľmi bežná. Na distribúciu bezplatného programu tiež nemusíte byť programátor.

Aby sme pochopili, čo znamená softvér s otvoreným/uzavretým zdrojom pre našu organizáciu, musíme pochopiť, ako sa navzájom líšia. Tento článok poukazuje na hlavné rozdiely, ale nezabudnite, že ide o veľmi zjednodušené vysvetlenie. Ďalšie informácie nájdete na Wikipédii alebo si pozrite prípadové štúdie oboch typov softvéru.

V prvom rade open source softvér znamená, že môžeme meniť a rozvíjať náš program, pokiaľ na to máme znalosti a zručnosti. Naopak, uzavretý zdrojový program nie je možné upravovať svojpomocne, keďže zdrojový kód programu/aplikácie nie je dostupný. Aj keď nie všetci sme programátori, stále môžeme ťažiť z práce so softvérom s otvoreným zdrojovým kódom.

Takýto softvér sa používateľom poskytuje bezplatne, a to nielen programy, ale aj operačné systémy. Vytvárajú a vyvíjajú ho samotní užívatelia, ktorí svoje výtvory zverejňujú na internete. Najpopulárnejšie programy sú pravidelne aktualizované, pretože ich používa veľa ľudí. Príklady zahŕňajú Mozilla Firefox alebo Thunderbird. Ak sa program pravidelne neaktualizuje, je možné, že na to nie je dostatok technických prostriedkov – otázkou je, koľko používateľov má program. Vysoká frekvencia aktualizácií je istou zárukou bezpečnosti používania programu. Aj keď sa po inštalácii aktualizácie ukáže, že program nefunguje (napríklad Skype nie je podporovaný v novej verzii operačného systému), existujú dva spôsoby, ako vyriešiť problém: skúste nájsť pomoc na fórach na internete alebo problém vyriešiť sami, čo je pomerne náročné.

Softvér s uzavretým zdrojom je oveľa populárnejší ako softvér s otvoreným zdrojom. Predovšetkým kvôli jednoduchosti používania a tiež preto, že sme si na to len zvykli - spravidla v škole, v práci a doma používame Windows. V prípade programov a operačných systémov založených na uzavretom zdrojovom kóde máme do činenia s hotovým produktom, ktorý si nevyžaduje žiadny zásah z našej strany. Pre bežného používateľa je s nimi oveľa pohodlnejšie pracovať. Používatelia softvéru s uzavretým zdrojovým kódom často zdôrazňujú, aká je jednoduchá inštalácia a používanie, ako pohodlné je mať k programu po ruke prehľadnú nápovedu a možnosť v prípade problémov kontaktovať technickú podporu. Takéto systémy a produkty vyrábajú spoločnosti, a to až po niekoľkých fázach testovania. Používateľ si jednoducho zakúpi celý softvérový balík pripravený na inštaláciu do počítača. Takýto softvér je platený: kupujeme licenciu a často aktualizácie programu.

Niektorí vývojári softvéru podporujú komunitné organizácie a ponúkajú im programy zadarmo alebo so zľavou prostredníctvom oprávnených neziskových organizácií, ako je napríklad rozsiahla sieť partnerov TechSoup, ktorá má členov v rôznych krajinách. V Rusku program implementuje skleník sociálnych technológií (Spiro LLC). Kontaktovaním programu infoDonor môžete zistiť, či sa vaša organizácia môže zúčastniť programu. Mali by sme tiež pamätať na to, že keď si vyberáme operačný systém, vyberáme si aj spôsob práce v našej organizácii. Napríklad, ak sme si vybrali Linux, nebudeme môcť používať riešenia Adobe a ak sme si vybrali Windows, budeme musieť zakúpiť licencie podľa počtu počítačov. Každý prípad má svoje pre a proti. Musíme si dobre premyslieť, čo presne naša organizácia potrebuje, aké sú kritériá efektívneho využívania zariadení a rozhodnúť sa po dôkladnej analýze.

Samozrejme, open source alebo uzavretý softvér nie je obmedzený len na Microsoft, Mac alebo Linux. Otázka licencovania sa objavuje v súvislosti s akýmkoľvek typom softvéru používaného v organizácii. Vo všeobecnosti si pozorne prečítajte všetky licencie a zmluvy o údržbe. Existuje mnoho príkladov, kedy mali organizácie vážne problémy so softvérom, ktorý bol kvôli licenčným podmienkam prakticky nepoužiteľný, alebo kde aj tie najmenšie zmeny na stránke boli veľmi nákladné.

Pomocou projektov s otvoreným zdrojom môžete zlepšiť svoje zručnosti opravovaním chýb iných ľudí a vytváraním niečoho nového. Môžete nájsť projekt, ktorý bude užitočný pre vaše vlastné podnikanie, napríklad v medicíne alebo elektronickom obchode. Ako praktizujúci programátori je tiež jedným z najlepších spôsobov, ako sa motivovať k programovaniu, pracovať na projektoch s otvoreným zdrojovým kódom. Špeciálne pre čitateľov blogu Geekbrains sme zostavili zoznam takýchto projektov z rôznych oblastí činnosti:

Softvérový balík pre lekárske zobrazovanie. 3D Slicer je k dispozícii na viacerých platformách vrátane Windows, Linux a OS X.

Nástroj, ktorý umožňuje distribuovať spracovanie veľkého množstva údajov medzi klastrami počítačov pomocou jednoduchých programovacích modelov.

Populárny softvérový balík na spracovanie textu, tabuľky, prezentácie, grafiku, databázy a ďalšie. Úplne otvorený vývojový proces znamená, že ktokoľvek môže hlásiť chyby, požadovať nové funkcie alebo zlepšovať softvér. Je napísaný v medzinárodnom formáte otvoreného štandardu, takže akceptuje súbory z iných softvérových balíkov otvorenej kancelárie.

Platforma na správu obsahu, ktorá poháňa milióny webových stránok a aplikácií.

Správca médií navrhnutý na vytváranie veľkých centralizovaných knižníc médií.

Bezplatný operačný systém ako Unix.

Kancelársky balík pre spoločný vývoj s funkcionalitou podobnou Microsoft Office alebo OpenOffice.org.

Systém na vytváranie kurzov. Bezplatná webová aplikácia, ktorú môžu pedagógovia použiť na vytváranie efektívnych online vzdelávacích stránok. Moodle sa stal veľmi populárnym medzi pedagógmi na celom svete ako nástroj na vytváranie dynamických webových stránok pre svojich študentov.

Softvér na vytváranie a správu vzdelávacieho audio a video obsahu.

Multiplatformový podnikový redakčný systém napísaný v jazyku Java. Pracuje s viacerými databázami (vrátane MySQL, Oracle, PostgreSQL, SQLLite a ďalšími) a podporuje viacero metód autentifikácie.

Softvér na vytváranie súkromných a verejných cloudov.

Služba vám umožňuje vytvárať prieskumy a zdieľať ich s kontaktmi na stránke. Pohodlný spôsob zhromažďovania údajov na ďalšiu analýzu.

DICOM server pre zdravotníctvo a medicínsky výskum. Navrhnuté na uľahčenie správy lekárskych obrazových údajov. Dobrý nástroj na automatizáciu úloh lekárskeho zobrazovania špecifických pre každé zdravotnícke zariadenie.

Projekt bol vytvorený komunitou Open Source a je navrhnutý tak, aby poskytoval lepšie riešenia pre podniky prostredníctvom business intelligence.
Hlavné aplikácie:

  • hlásenia
  • analýza
  • zber dát
  • platforma business intelligence

Vývojári Java™ môžu použiť komponenty projektu na rýchle vytvorenie vlastných riešení business intelligence.

Modulárny open source systém správy digitálnych dát.

Bezplatný softvér pre elektronický obchod.

Knižnica na rýchle filtrovanie a triedenie veľkých zbierok – až 100 000 položiek v prehliadači.

Jazyky s otvoreným zdrojovým kódom

Open source programovací jazyk a vývojové prostredie pre ľudí, ktorí chcú vytvárať obrázky a animácie.

R je otvorený programovací jazyk a softvérové ​​prostredie pre štatistické výpočty a grafiku. Jazyk R je široko používaný medzi štatistikmi na vývoj štatistického softvéru a analýzu údajov.

Kde nájdem viac open source projektov?

Jedna z najväčších webových služieb pre spoločný vývoj IT projektov. Úplne zadarmo pre projekty s otvoreným zdrojom. Motto služby „Sociálne kódovanie“ možno preložiť ako „Kódujeme spolu“.

Navrhnuté na popularizáciu open source projektov. S nástrojmi, ktoré sú tam poskytnuté, vývojári vytvorili výkonný softvér vo viac ako 430 000 projektoch; zdroj má viac ako 3,7 milióna registrovaných používateľov. Populárny katalóg spája viac ako 41,8 milióna klientov s open source projektmi a poskytuje viac ako 4 800 000 stiahnutí denne.

Cieľom Fossdroidu je propagovať open source aplikácie pre Android prostredníctvom projektu F-Droid. Fossdroid preberá svoje údaje z F-Droid a organizuje aplikácie v poradí podobnom službe Google Play, pričom je možné ich zobraziť podľa popularity.

Ako zistím, či je softvér open source a aké sú pravidlá jeho používania?

Treba chápať, že nie všetky open source projekty sa dajú použiť na komerčné účely alebo voľne upravovať.Ak chcete zistiť, či je softvér open source a aké sú pravidlá jeho používania, musíte sa pozrieť na jeho licenciu. Zvyčajne je jeho plné znenie priamo v kóde.

Mark Roberts
Riaditeľ produktového manažmentu (riaditeľ, produktový manažment)
Softvérové ​​systémy QNX
e-mail: [e-mail chránený]

anotácia

Tento článok sa zameriava na výhody, strategické úvahy, bariéry a príležitosti spojené s používaním open source softvéru v komerčnej produkcii. Na príklade integrovaného vývojového prostredia (IDE) založeného na platforme Eclipse budeme diskutovať o rozdieloch medzi ochrannými (ochrannými) a neochrannými (neochrannými) licenciami na zdrojový kód softvéru. Pri integrácii alebo prepojení otvoreného zdrojového kódu s „proprietárnym“ uzavretým zdrojovým kódom sa často vyžaduje náležitá starostlivosť a pozornosť. Je potrebné si uvedomiť aj rôzne právne problémy, ako napríklad možnosť porušenia patentu. Pokúsime sa tiež vysvetliť, prečo základné princípy používania open source softvéru v prostredí informačných technológií (IT) neplatia pre komerčné produkty pre embedded zariadenia.

Vývojové prostredie QNX Momentics ako príklad s otvoreným zdrojom

V roku 2001, keď mnohé softvérové ​​spoločnosti bojovali o prežitie tvárou v tvár všeobecnému kolapsu akciového trhu IT spoločností, najmä tých, ktoré sú spojené s elektronickým obchodom na internete, QNX Software Systems urobila strategické rozhodnutie začať s vývojom nového integrovaného vývojové prostredie (IDE) pre trh.vstavané systémy. Spoločnosť už mala solídne skúsenosti s vývojom série nástrojov používaných pri vývoji vstavaných zariadení, ale vedenie spoločnosti si uvedomilo, že vytvorenie IDE im umožní zostať na vrchole vlny vo vysoko konkurenčnom prostredí. K rozhodnutiu vytvoriť IDE prispel aj posun v dôraze na požiadavky zákazníkov. Počas poklesu podnikania sa zákazníci s nedostatkom peňazí začali viac zaujímať o riešenia, ktoré by mohli maximalizovať produktivitu a urobiť ich mobilnejšími (flexibilnejšími) v práci, čo by zlepšilo celkovú ekonomickú efektivitu.

Pre QNX bol vývoj IDE „stávkou do budúcnosti“, pretože v tom čase boli náklady a úsilie na vývoj projektu pre väčšinu dodávateľov nástrojov pre vstavané systémy mimo dosahu. Našťastie spoločnosť QNX úzko spolupracovala s IBM na rôznych segmentoch trhu so vstavanými zariadeniami. Prostredníctvom úzkej spolupráce sa IBM podelilo s QNX o svoje plány na vydanie otvoreného integrovaného vývojového prostredia, ktoré sa neskôr stalo základom platformy Eclipse.

IBM ponúkla využiť skúsenosti QNX na prispôsobenie technológie IDE potrebám vývojárov zapojených do tvorby vstavaných aplikácií založených na jazyku C/C++. Odborníci QNX takmer okamžite poukázali na nevyvrátiteľné atraktívne aspekty používania otvorených zdrojových kódov pre IDE. Napríklad pre takéto prostredie by bolo možné:

  • odstránenie závislosti od jedného dodávateľa, ktorá je zvyčajne spojená s potrebou licencovať platformu okien;
  • ponúknuť zdrojový kód na prispôsobenie potrebám zákazníka;
  • prilákať serióznych priemyselných hráčov, aby podporili a vytvorili ekosystém doplnkových technológií a doplnkov;
  • poskytnúť zákazníkom stabilnú architektúru, ktorá môže podporovať diferenciáciu produktov;
  • umožňujú vývojárom embedded zariadení využívať ako vývojovú platformu štandardné pracovné stanice vhodné na prácu s aplikáciami informačných technológií (v najširšom spektre aplikácií).

Nakoniec existovala samostatná možnosť, že by sa platforma IDE mohla uchytiť a stať sa de facto štandardom, čo umožní QNX využiť trh pre veľké vývojárske ekosystémy a nástroje tretích strán s takouto platformou.

Založený open source projekt Eclipse.org

V novembri 2001 založili Borland, IBM, Merant, QNX Software Systems, Red Hat a SUSE konzorcium Eclipse. Začiatkom roku 2004 Správna rada reorganizovala Eclipse Consortium na neziskovú spoločnosť s názvom Eclipse Foundation.

Od samého začiatku bol Eclipse skutočne open source projektom. Projekt ponúkal ako bezplatné open source technológie, tak aj prístup ku komunite najvzdelanejších a najpokročilejších vývojárov vo svojom odbore. Táto technológia sa teda ukázala ako univerzálna platforma na integráciu všetkých druhov vývojových nástrojov. Je založený na otvorenej, rozšíriteľnej architektúre a je jasne licencovaný ako bezplatný, voľne redistribuovateľný produkt. Príspevky členov komunity do projektu Eclipse sú založené na štandardnom modeli vývoja softvéru s otvoreným zdrojovým kódom (OSS), ale väčšina členov prispieva aj na komerčný vývoj založený na platforme Eclipse.

Projekt skladovania nástrojov

V decembri 2001 začala spoločnosť QNX budovať svoj QNX® Neutrino® RTOS založený na Eclipse IDE. Víziou spoločnosti bolo, aby IDE bolo vysoko funkčné, orientované na C/C++, s hlboko integrovanými nástrojmi na ladenie, profilovanie, analýzu a vytváranie vstavaných aplikácií. Od začiatku tím QNX zamýšľal, aby to bolo viacúčelové, viacjazyčné IDE, ktoré podporuje viaceré platformy nástrojov. To zahŕňalo:

  • niekoľko inštrumentálnych platforiem: Windows, Solaris, QNX Neutrino RTOS (vlastný vývoj);
  • viaceré cieľové architektúry: ARM, MIPS, PowerPC, SH-4, x86;
  • programovacie jazyky C, C++, Java.

Odvtedy sa IDE neustále rozrastalo, aby zahŕňalo podporu pre platformu Linux a podporu pre ďalšie procesorové architektúry, vrátane procesorov XScale.

Realizácia projektu bola spustená v štýle „extrémneho programovania“. Spoločnosť vybrala tím 12 najlepších inžinierov. Dostali špeciálnu miestnosť, boli izolovaní od všetkých rušivých vplyvov, projekt im bol plne k dispozícii.

Skupina dostala potrebnú rozhodovaciu právomoc, bol zavedený prísny pracovný harmonogram, ktorý sa vyhýba riziku, s beta vydaním produktu o 16 týždňov a komerčným vydaním do 4. júla 2002. Skupina splnila všetky požiadavky stanovili míľniky a vydali nový produkt – nazvaný QNX Momentics® IDE – presne podľa plánu, demonštrujúci potenciál softvéru s otvoreným zdrojovým kódom skrátiť čas uvedenia na trh.

Od nápadu po dodanie produktu – menej ako 7 mesiacov

Vychádzajúc z platformy Eclipse, tím QNX dokončil za šesť mesiacov veľmi výkonné a všestranné IDE pre vývoj vstavaného softvéru. IDE podporovalo vývoj viacerých platforiem pre viacero platforiem nástrojov a programovacích jazykov a podporovalo najpopulárnejšie vstavané cieľové procesorové dosky. Vďaka platforme Eclipse bola spoločnosť QNX schopná:

  • používať kompilátory GNU a nástroje príkazového riadku na krížový vývoj;
  • implementovať podporu pre zásuvné moduly tretích strán, ako napríklad IBM WebSphere pre vstavané aplikácie Java a Rational ClearCase pre modelom riadený vývoj;
  • vytvárať ďalšie nástroje na budovanie systémov, správu cieľových zariadení, analýzu pamäte, profilovanie systémov a aplikácií atď.

Na obr. Obrázok 1 poskytuje príklad toho, ako môže platforma Eclipse znížiť náklady na vybudovanie IDE, čo umožňuje spoločnostiam zamerať sa na vyššie úrovne vývoja, kde sa realizujú skutočné inovácie. Napríklad pomocou platformy Eclipse dokázala spoločnosť QNX jednoducho vytvoriť niekoľko inovatívnych vizualizačných nástrojov, ktoré vám umožnia dostať sa hlboko do vstavaného systému a zobraziť jeho správanie.

Vrátiť príspevok k práci komunity

Sila úspešného open source projektu spočíva v spolupráci vývojárskej komunity a neustálom zlepšovaní kódovej základne. Ak spoločnosť prijme a dobre využíva open source, potom má jednoducho povinnosť prispievať do komunity. Za týmto účelom spoločnosť QNX prevzala vedenie projektu Eclipse CDT v júni 2002.

Cieľom projektu Eclipse CDT (C/C++ Development Tools) je vytvoriť spoločnú sadu interoperabilných jazykových nástrojov C/C++ pre platformu Eclipse. Eclipse CDT bol umiestnený ako projekt s otvoreným zdrojom s právami na správu od spoločnosti Eclipse Corporation. Na spustenie projektu CDT spoločnosť QNX darovala svoje vývojové zdroje a zdrojový kód pre projekt QNX Momentics IDE. Významnú podporu projektu poskytli aj spoločnosti Rational a Red Hat ako členovia komunity.

Ryža. 1. S platformou Eclipse sa môžu predajcovia nástrojov zamerať na najvyššiu úroveň pracovného balíka, kde sa robia skutočné inovácie.

QNX pokračuje v udržiavaní projektu CDT, ktorý sa rozrástol z pôvodne skromných 80 000 riadkov kódu na súčasných viac ako 700 000 riadkov kódu. Začiatkom roku 2006 sa v denníku pokroku projektu Eclipse CDT odhadoval príspevok QNX na 52 %. Ďalšia bola IBM s príspevkom 36 %. Projekt CDT je ​​po samotnej platforme Eclipse druhým najpopulárnejším projektom Eclipse.

Môžem si dovoliť „darovať“ kód?

Môže sa zdať, že „darovať“ svoj kód – znamená konať v rozpore so zdravým rozumom. Ak sa však ukáže, že funkčnosť vášho produktu je užitočná, prečo ju neprispieť do komunity používateľov s otvoreným zdrojom. Týmto krokom môže človek profitovať z takejto „štandardnej“ implementačnej ponuky spolu s výhodou skúseností s podporou produktu. Budete môcť ťažiť z práce celej komunity zameranej na zlepšenie kódovej základne. Takáto stratégia môže uvoľniť vaše vlastné zdroje na ďalší výskum zameraný na inovácie a pridávanie funkcií do vašich produktov.

A čo viac, mohli ste získať určitú kontrolu nad smerovaním „štandardnej“ platformy – zarobenú, samozrejme, vašimi príspevkami do komunity! Ak podporujete projekt, správajte sa ako dobrý občan komunity, rešpektujte názory iných ľudí, vážte si príspevky a rady ostatných členov. Nemyslite si, že sa vám niekto pokúsi „vyčistiť vrecká“ v dôsledku použitia kódu a prevziať od vás kontrolu nad smerovaním vývoja platformy.

Stratégiou QNX Software Systems je napríklad využiť svoje zapojenie do Eclipse pri vývoji novej funkcionality, ktorá sa pripája prostredníctvom štandardizovaných bodov rozšíriteľnosti, ktoré sú už zahrnuté v platformách Eclipse a CDT. Za týmto účelom má QNX v úmysle zostať aktívnym členom komunity Eclipse, využívajúc existujúcu kódovú základňu a prácu tretích strán (zásuvné moduly), čím pomáha uspokojovať skutočné potreby zákazníkov vytváraním vlastných rozšírení. Opísaná stratégia je znázornená na obr. 2.

Ryža. 2. Svojou prácou môžete prispieť k práci komunity.

Zhrnutie výhod

Platforma nástrojov založená na Eclipse je vzájomne výhodná pre vývojárov aplikácií, ako je QNX, aj pre zákazníkov, ktorí si kupujú nástroje platformy.

Vývojári ťažia zo skráteného času potrebného na uvedenie svojich produktov na trh a zo schopnosti profitovať z prieskumu iných ľudí (pri nízkych nákladoch). Tieto výsledky môžu zahŕňať vysokokvalitný kód „čistej IP“ poskytovaný renomovanými spoločnosťami, ako sú IBM a QNX. Ďalšou výhodou pre vývojára je, že získa jednoduchú a prehľadnú licenčnú schému vrátane komerčných práv a určitej patentovej ochrany. Okrem toho vývojár získa schopnosť pracovať na viacerých platformách OS podporovaných Eclipse, ako aj prístup k dobre definovaným bodom rozšírenia v projekte Eclipse.

Zákazníci, ktorí si zakúpia IDE založené na Eclipse, profitujú z platformy nástrojov navrhnutej na vývoj vstavaných aplikácií so silnou podporou krížovej kompilácie, jednoduchým ladením a rozšíreniami na správu cieľových systémov. Vývojový tím zákazníka ocení množstvo funkcií, ktoré uľahčujú prácu, nízky čas potrebný na dodatočné zaškolenie, dobrý výkon produktu a robustnú platformu, ktorá umožňuje prácu na veľkých projektoch. Zákazník môže využívať platformu Eclipse aj vo svojich vlastných aplikáciách (napr. RCP, eRCP atď.).

Budúcnosť Eclipse Corporation

Eclipse Corporation je aktívna a energická komunita. Neustále vznikajú nové projekty, etablovaným inovatívnym spoločnostiam sa sprístupňujú nové architektúry a dokonca aj menšie spoločnosti môžu komercializovať platformu Eclipse vytvorením nových zásuvných modulov, ktoré rozšíria existujúcu funkčnosť s minimálnymi nákladmi (pozri obrázok 3).

Ryža. 3. Eclipse Corporation je živá a rýchlo rastúca komunita vývojárov zásuvných modulov.

Porovnanie open source licencií

Nie všetky licencie na softvér s otvoreným zdrojovým kódom sú rovnaké. QNX urobila dobre premyslený krok s Eclipse Public License. Táto voľba bola poháňaná čiastočne potrebami jej integrovaných zákazníkov a čiastočne túžbou ovládať (a využívať) technológiu, ktorá odlišuje produkty.

Nezisková korporácia Open Source Initiative () prišla s užitočnou 10-bodovou definíciou open source. V súčasnosti je na webovej stránke viac ako 50 licencií schválených OSI, vrátane Eclipse Public License. Tieto licencie môžu obsahovať významné rozdiely, ktoré je potrebné jasne pochopiť. Tieto rozdiely môžu výrazne ovplyvniť duševné vlastníctvo (IP) vývojárov a schopnosť chrániť ho. Najviac to platí v prípade použitia open source (alebo odvodených diel založených na open source) vo vstavaných zariadeniach.

Ochranná a nedefenzívna licencia

Podľa podmienok ochrannej licencie, ako je GPL v2, odvodené dielo možno distribuovať iba spolu so zodpovedajúcim zdrojovým kódom. Podľa podmienok defenzívnej licencie je zaručené, že keď sa zdrojový kód presunie do kategórie open source, zostane v tejto kategórii vo všetkých nasledujúcich generáciách a odvodených produktoch. Ako si vysvetlíme neskôr, táto požiadavka vedie v prípade vstavaných systémov k určitým problémom.

Príkladmi neochranných licencií sú pôvodné licencie MIT a BSD. Neochranné licencie si zachovávajú autorské práva vlastníka, ale používateľovi poskytujú rozsiahle práva vrátane práva na úpravu a neobmedzené bezplatné šírenie (alebo osobné použitie) softvéru.

Čo znamená "vírusová licencia"

Niektorí ľudia nazývajú GPL „vírusovou licenciou“. Tento názov vznikol z dôvodu neurčitosti právnej definície pojmu „derivátový vývoj“. Pri striktnom výklade definície sa ukazuje, že ak je čo i len malý kúsok kódu s licenciou GPL vložený do nejakej proprietárnej aplikácie, potom musí byť celá aplikácia licencovaná ako GPL. Okamžite mi napadne analógia s vírusom.

Problémy s kompenzáciou

V poslednej dobe sa problematika odškodnenia za porušenie práv duševného vlastníctva (IP Indemnification) stala hlavnou témou diskusií vývojárov. V reakcii na to niektorí predajcovia open source oznámili, že budú zákazníkov brániť pred žalobami na patenty alebo porušenie autorských práv. A najnovšie licencie s otvoreným zdrojovým kódom vysvetľujú sankcie pre používateľov, ktorí sa snažia uplatniť svoje patentové práva voči iným používateľom kódovej základne.

Hlavné problémy, ktoré vznikajú pri komercializácii softvéru s otvoreným zdrojovým kódom

Porovnanie embedded a IT aplikácií

Úspech priestoru s otvoreným zdrojom podporilo prijatie Linuxu IT organizáciami. Výhoda používania Linuxu pochádzala z prevádzky na relatívne homogénnom a stabilnom hardvéri (zvyčajne rodina x86) a využívaní flexibilnej výpočtovej platformy bohatej na zdroje.

So zabudovaným softvérom sú veci celkom iné. Softvér beží na obrovskom množstve zariadení s pevne stanoveným súborom funkcií a využíva širokú škálu hardvéru s rôznymi architektúrami. Dizajnéri vstavaných zariadení často zakladajú svoju konkurenčnú výhodu na konkrétnej sade funkcií, veľkosti, výkone, cene, životnosti batérie, spoľahlivosti, interoperabilite a škálovateľnosti. Tieto charakteristické znaky sú zvyčajne implementované v softvéri nízkej úrovne, ktorý v prípade Linuxu vyžaduje prepojenie priamo s jadrom OS. Prispôsobovanie softvéru nízkej úrovne potrebám zákazníkov je normou, nie výnimkou, takže vývojári často dosahujú funkcie, ktoré potrebujú, zmenou jadra OS. Metóda priameho prepojenia sa využíva aj vkladaním do fragmentov kódu, aby sa znížili náklady na vytváranie knižníc. Celkovo tieto praktiky veľmi sťažujú ochranu proprietárneho kódu na základe licencií, ako je GPL (public domain).

Tieto licenčné problémy sa zvyčajne nevzťahujú na aplikácie IT, pretože proprietárny softvér špecifický pre podnik nie je distribuovaný mimo podniku a používa sa výlučne pre interné potreby. V prípade vstavaných zariadení však vždy distribuujú odvodený softvér, ktorý podlieha doložke „vynúteného otvorenia“ licencií s otvoreným zdrojovým kódom, čo môže ohroziť kľúčové aspekty hodnotných ponúk s otvoreným zdrojom.

Okrem toho majú vstavané produkty často dlhú životnosť, a to ako vo výrobe, tak aj v prevádzke. Vstavaný produkt, ktorý podlieha podmienkam používania s otvoreným zdrojom, je vystavený väčšiemu riziku vrátane nedostatku dlhodobej technickej podpory, potenciálnych problémov so zabezpečením a porušenia IP.

Licenčné problémy

Neistota právneho stavu

Napriek utešujúcim slovám niektorých zástancov licencií s otvoreným zdrojovým kódom mnohé z kľúčových obáv, ktoré vývojári vstavaných aplikácií vyjadrili, ešte neboli dôkladne preverené súdnictvom. Ako už bolo spomenuté, definícia „odvodenej práce“ je kľúčom k presadzovaniu určitých podmienok licencie, hoci mnohí jednotlivci a organizácie, ktoré akceptujú podmienky používania otvoreného zdroja, len málo alebo vôbec nerozumejú významu tohto pojmu.

Niektoré riešenia, ktoré umožňujú komerčným predajcom vložiť do Linuxu „proprietárne“ ovládače (napríklad moduly s možnosťou načítania jadra), sa spoliehajú skôr na argumenty „povedal, povedala“ než na priame odkazy na text licenčnej zmluvy. V skutočnosti sú takéto ovládače, ktoré používajú moduly LKM, nebezpečným obchádzaním požiadaviek licencie GPL. Ak ideme do extrému, dá sa vec interpretovať tak, že kódová základňa Linuxu môže byť prezentovaná ako zbytočná pre väčšinu praktických aplikácií, ak neobsahuje niektoré z týchto veľmi "proprietárnych" ovládačov. Táto situácia môže účinne znehodnotiť myšlienku licencie GPL.

Nedostatok kompenzácie za porušenie duševného vlastníctva

Vo väčšine prípadov, keď sa používa otvorený zdrojový kód, existuje reálna možnosť, že neúmyselne porušíte patentové práva niekoho iného. Len málo licencií s otvoreným zdrojom explicitne odkazuje na patenty a implicitné licencie nemožno posudzovať. Musíte samostatne licencovať všetky patenty týkajúce sa napríklad kodekov s otvoreným zdrojovým kódom, ktoré implementujú algoritmy MP3 alebo iné proprietárne riešenia. Medzitým sú zlí chlapci (vrátane Microsoftu) zaneprázdnení budovaním portfólia patentov, o ktorých sa mnohí odborníci domnievajú, že by mohli byť vypálené na obhajcov open source.

Niektoré licencie výslovne odkazujú na patenty. Napríklad verejná licencia Eclipse obsahuje výslovnú zmienku o patentových právach a obsahuje klauzulu o sankciách v prípade, že sa niekto pokúsi uplatniť patentové práva iným spôsobom. Spoločnosť Eclipse Corporation tiež vynakladá veľké úsilie na overenie kódu a určenie jeho pôvodu z hľadiska licencií, patentov alebo autorských práv.

Ďalšie úsilie na zachovanie IP

Ak chcete používať open source, spoločnosť musí vynaložiť značné úsilie v nasledujúcich oblastiach:

  • riadenie distribúcie produktov;
  • správa licencií;
  • riešenie právnych konfliktov z hľadiska záväzkov zákazníka;
  • venovať náležitú pozornosť právnym otázkam: udržiavanie čistoty práv IP, kontrola práv IP na open source, určenie zdroja pôvodu kódu, sledovanie zmien vo verziách licencií, napríklad GPL v3 atď.

Akceptovanie požiadaviek zákazníka

Niektorí veľkí zákazníci, ktorí čelili zložitosti a neistote softvéru s otvoreným zdrojovým kódom, odmietli pracovať s produktmi, ktoré obsahovali open source. Ak stále chcete pracovať s týmito klientmi, musíte ich získať alebo ich vyzvať, aby zahrnuli komerčné licenčné podmienky pre váš kód.

Problémy súvisiace s IP

Ovplyvňujú podmienky vašej licencie open source duševné vlastníctvo, ktoré odlišuje váš produkt? Ak áno, vaša IP je ohrozená.

Ak vstavané systémy používajú kombináciu vášho vlastného softvéru a softvéru s otvoreným zdrojovým kódom, musíte pochopiť podstatu, pôvod a vzťah všetkých komponentov vstavaného softvéru. Bez tohto hlbokého vhľadu do predmetu by ste mohli neúmyselne porušiť IP niekoho iného alebo dokonca stratiť práva na svoj vlastný softvér.

Bez patentových licencií a kompenzácií, vstavaný softvér s dlhou životnosťou, relatívne vysoká predajná cena a objem predaja vstavaného zariadenia s pevnou funkciou robia z takýchto systémov zrejmý cieľ pre nároky z porušovania patentov zo strany vyššie uvedených zlých chlapcov a veľkých konkurentov.

Ako ukazuje príklad použitia QNX Momentics IDE, softvér s otvoreným zdrojovým kódom má mnoho okamžitých výhod, vrátane skráteného času uvedenia na trh, nižších nákladov na vývoj a väčšej slobody pri pridávaní funkcií a inovácií do vášho produktu. Ak ponúkate svoj softvér ako službu, ktorá rieši problém zákazníka, potom zákazníkovi nezáleží na tom, či používate softvér s otvoreným zdrojovým kódom alebo nie, len zaplatí za funkciu, ktorú potrebuje.

Mali by ste však pochopiť rozdiel medzi rôznymi open source licenciami a vybrať si tú, ktorá vyhovuje vašej aplikácii a potrebám zákazníka. Okrem toho buďte pripravení niesť zodpovednosť za licenčné záväzky softvéru, ktorý si vyberiete. Mali by ste si byť vedomí ďalších požiadaviek IP (ako sú patentové práva) súvisiacich s programovým kódom. Dávajte si pozor na kódovú základňu, ktorá nezobrazuje správu o dôsledkoch porušenia IP. Hľadajte projekty, ktoré ponúkajú odškodnenie a ktoré zobrazujú na obrazovke správu o peňažných daroch na vývoj kódu na kompenzáciu nákladov spojených s porušením autorských práv alebo patentov atď. Tiež sa uistite, že softvér s otvoreným zdrojovým kódom, ktorý používate, je v súlade s vašou politikou duševného vlastníctva a vyhýbajte sa defenzívnym licenciám, ktoré by vás mohli prinútiť odhaliť charakteristické časti vášho kódu. Ak je váš produkt zabudovaný do systému, zvážte aj ponuku komerčných licenčných podmienok pre vašu IP.

Používanie open source vo vstavaných zariadeniach predstavuje viac výziev ako používanie open source v IT aplikáciách, keďže prvé je riskantnejšie. Pred rozhodnutím použiť akýkoľvek softvér s otvoreným zdrojovým kódom zhodnoťte jeho skutočné náklady na vlastníctvo (TTCO) a jeho vhodnosť pre váš projekt.

A nakoniec sa pripojte ku komunite používateľov a vývojárov softvéru s otvoreným zdrojovým kódom, aby ste pre seba získali čo najväčšiu hodnotu a výhody!