ETFOS: predavanje “Što, kako i zašto Open Source”
ETFOS: predavanje “Što, kako i zašto Open Source”
Predavanje: “Što, kako i zašto Open Source” održali smo 19.6.2013 na ETFOS-u.
VIDEO : http://www.youtube.com/watch?v=xx60hX75lJ8
Što je Open Source
Otvoreni softver/kôd (engl. Open source software) je softver čiji je izvorni kôd i/ili nacrti (dizajn) dostupan javnosti na uvid, korištenje, izmjene i daljnje distribuiranje.
Kako je nastao Open Source
Ideja je nastala pokretom “Free Software Movement” 1983., od strane Richard Stallmana. Ideja se temelji na nekoliko osnovnih načela slobode:
-
sloboda pokretanja,
<li dir="ltr">
<p dir="ltr">
sloboda proučavanja i mijenjanja,
</p>
</li>
<li dir="ltr">
<p dir="ltr">
sloboda kopiranja i distribuiranja (dijeljenja), u izvornom ili promijenjenom obliku.
</p>
</li>
Formalni početak je zapravo pokretanje GNU projekta na sveučilištu “MIT” (Massachusetts Institute of Technology) 1983.
Početna ideja je bila pokretanje razvoja Open Source programa koji su do tada bili dio UNIX operativnog sustava. GNU softver se počeo razvijati 1984. s planom da se razviju sve komponente operativnog sustava, prije razvoja same jezgre (engl. kernel), te je glavnina posla bila gotova 1992. godine.
Kako je rastao Open Source
Neovisno o gore navedenom razvoju, Linus Torvalds je razvijao jezgru (kernel) koja je bila završena i dostupna javnosti 1991. godine.
Od toga trenutka bilo je moguće sastaviti kompletan “Unix like” operativni sustav na bazi jezgre (kernel) od strane Linusa Torvaldsa (Linux) te GNU programa od strane GNU projekta, koje danas nazivamo GNU/Linux tj. skraćeno Linux.
Najpoznatiji Open Source softver :
https://www.opensource-osijek.org/wordpress/najpoznatiji-projekti/
Korporacije koje su najviše investirale u Open Source:
Uložio je nekoliko milijardi američkih dolara u servise i programe bazirane na Linux, kroz Linux Technology Center koji uključuje 300+ Linux programera.
Donira 40 millijuna američkih dolara u Eclipse (http://www.eclipse.org) (12.5+ milijuna linija kôda).
Ulaže u “Open Source Initiative” (http://opensource.org).
Donira u razvoj “Java-base relational database management system” (RDBMS) Apache Derby (http://db.apache.org/derby).
1990. razvija programski jezik Java i 1995. predstavlja javnosti te 2007. licencira pod GPL licencom (6.5 milijuna linija koda).
1999. kupuje njemačku tvrtku StarDivision za 73.5 milijuna američkih dolara i između ostaloga, s njom “StarOffice” kojeg kasnije Sun objavljuje kao OpenOffice pod LGPL i SISSL licence (~10. milijuna linija koda).
2005. je razvio i pokrenuo GlassFish (aplikacijski server) open source projekt. Iste godine kupuju tvrtku “Storage Tek” za 4.1 milijarde US$ te 2008 objavljuje kôd “Sun Storage 7000 Unified Storage systems” koji je baza za razvoj ZFS-a.
2005. objavljuje izvorni kôd kernel i network dijela Solarisa ,te pokreće OpenSolaris s istim kodom pod CDDL licencom, kasnije uključuje i DTRACE, ZFS, Solaris Containers i druge tehnologije (2+ milijuna linija koda).
2008. kupuje tvrtku MySQL AB sa MySQL bazom podataka za 1 milijardu američkih dolara. Kasnije izdaje MySQL pod GPL licencom.
2005. kupuje tvrtku Android, Inc. te s njom dobiva Android operativni sustav.
2007. izdaje Android pod Apache 2.0 licencom (10+ milijuna linija koda).
2008. razvija Google Chrome web preglednik te isti izdaje pod nazivom Chromium u open source (2+ milijuna linja koda).
Chrome/Chromium OS.
Google Web Toolkit (300.000+ linija koda).
Google Summer of Code (GSoC) je godišnji događaj, prvi puta održan 2005. U njemu Google nagrađuje sa 5,000 američkih dolara (u 2013.) stotine studenata koji uspješno završe zadane open source projekte do kraja događanja.
Praktično živi od Open Source filozofije.
U fiskalnoj godini 2012., ukupni prihodi su 1.13 milijardi američkih dolara.
Red Hat Enterprise Linux (RHEL) je dostupan samo kroz pretplatu, koja uključuje pristup softveru (ISO image) i zakrpama te raznim nivoima tehničke podrške (ovisno o vrsti pretplate). Proizvod se sastoji većinom od programa koji se distribuiraju kroz open source licence. Cijeli kôd za sve pakete je javno dostupan.
CentOS koristi isti kôd od Red Hat Enterprise Linux.
~12% od cijelog Linux kernel kôda (prema broju linija koda).
JBoss (aplikacijski Server) (2+ milijuna linija koda), izdan pod LGPL licencom.
Red Hat sponzorira Fedora projekt (community verziju Red Hat Enterprise Linux).
Microsoft je na 21. mjestu po sudjelovanju u razvoju Linux kernela (~1% udjela, prema broju linija koda).
Shvaća prednosti razvoja prema principima Open Source: http://opensource.mscommunity.hr
“Microsoft Hrvatska 5. lipnja 2013. organizira prvu Microsoft Open Source konferenciju u suradnji sa Sveučilištem u Zagrebu, koja je namijenjena upravo vama. Microsoft je kao tvrtka proširio svoju filozofiju i sve više pridonosi open source zajednicama na način da promiče developersku suradnju kako bi se lakše razvijala i održavala interoperabilna IT rješenja.”
Komercijalan razvoj nekih Open Source-a projekata
Liferay Enterprise Portal :
Pokrenut 2000.g. kao portal za neprofitne organizacije,
2004.g. osnovana tvrtka ,
Sada postoje Community (Open Source) i Enterprise verzije (komercijalni open source ) [danas ga koriste: T-mobile, Cisco , Barclays, BASF, …]
SugarCRM
pokrenut 2003⁄2004.g , 2004.g. osnovana tvrtka:
-
Startup : iste godine dobivaju investiciju od 2 milijuna U$
<li dir="ltr">
<p dir="ltr">
Zbog popularnosti projekta uspjevaju dobiti 46 milijuna U$
</p>
</li>
(Venture Capital)
Trenutno također postoje Community (Open Source) i Enterprise (komercijalni open source) verzije
VAADIN Framework
Razvoj je počeo 2002. godine, (tada se zovu IT Mill Toolkit [closed source])
2007 prelaze u Open Source
2008 dobijaju financijsku pomoć .
2009.godine mijenjaju ime u Vaadin framework
2011 počinju s komercijalnom podrškom te prodajom raznih dodatnih closed source alata( commercial support model ).
Poslovni / financijski modeli:
Komercijalni dio projekta:
-
Podrška
<ul> <li dir="ltr"> <p dir="ltr"> Bilo koji oblik tehničke podrške, savjetovanja i sl.. </p> </li> </ul> </li> <li dir="ltr"> <p dir="ltr"> Razvoj programa u dva smijera: </p> <ul> <li dir="ltr"> <p dir="ltr"> “Community” (Open Source) </p> </li> <li dir="ltr"> <p dir="ltr"> “Enterprise” (Closed Source) </p> </li> </ul> </li> <li dir="ltr"> <p dir="ltr"> Razvoj prema željama </p> <ul> <li dir="ltr"> <p dir="ltr"> Dodatne mogućnosti/funkcije i sl.. </p> </li> </ul> </li> <li dir="ltr"> <p dir="ltr"> Integracija </p> <ul> <li dir="ltr"> <p dir="ltr"> Izrada ISO image-a, instalacija, konfiguracija, održavanje… </p> </li> </ul> </li>
Prednosti razvoja Open Source projekata:
Ulaže se puno manje vremena i resursa u:
-
Razvoj
<li dir="ltr">
<p dir="ltr">
Testiranje
</p>
</li>
<li dir="ltr">
<p dir="ltr">
Promidžbu
</p>
</li>
Dakle na svakom projektu potencijalno sudjeluje veliki broj ljudi/tvrtki od kojih svaka ulaže samo manji dio vremena (u odnosu na Closed Source softver).
Svatko može uložiti svoje ideje i svoj način razmišljanja u projekt, što rezultira kvalitetnijim rješenjem/programom.
Rasprave/planiranja su otvorenog tipa i samim time moguće je brže/bolje uočavanje potencijalnih slabosti/problema u razvoju
(radi se po principu odabira najbolje ideje/rješenja, za svaku fazu razvoja).
Česti problemi u razvoju Closed Source softvera:
Cilj da se u što kraćem vremenu implementira i plasira na tržište određeni softver, greške se kasnije popravljaju i uočavaju.
Vrlo često se događa da je cijeli dizajn promašen od početka. Za profesionalno dokumentiranje najčešće se nema vremena, te se na kraju gubi puno vremena na proučavanje koda i “što je pisac htio reći”.
Dodatne funkcionalnosti se samo ubacuju da se zadovolje potrebe kupca (prodaje), što kasnije dovodi do problema.
Uglavnom ne postoji metodologija i plan razvoja pa se sve radi stihijski što vodi do problema koji nastaju tek kasnije u radu.
Zbog nedostatka pravog razvoja softver postaje sve tromiji i nestabilniji.
Razvoj korištenjem komercijalnih frameworka/tehnologija dovodi to problema u slučaju kada tvrtka koja razvija iste prestaje s podrškom ili gasi iste proizvode (pr. Microsoft gasi Silverlight i XNA).
Poboljšanje kvalitete samog koda
-
moguće je razvijati kod prema pravilima razvoja koja se kod klasičnog razvoja uglavnom zanemaruju (“nema se vremena i sl.”). Kôd postaje puno “ljepši” jer je svima vidljiv i dostupan ispravkama i komentiranju.
Porast kvalitete konačnog rješenja (potencijalno postoji cijela vojska testera, raznih struka i pogleda na proizvod/riješenje).
Potraga za kvalitetnim kadrom se može skratiti, pogledom na aktivne programere i njihov konkretan rad na konkretnim Open Source projektima.
Tvrtke, institucije i zaposlenici na direktan način podupirući neki Open Source projekt i radeći na njemu, razvijaju i svoje sposobnost (ovo je praktično besplatno školovanje i reklama).
Sveučilišta i fakulteti koji su podupirali mnoge Open Source projekte su profitirali na više područja (od boljeg angažmana studenata, preko boljeg školovanja do bržeg zapošljavanja studenata koji su radili konkretne projekte te povećanja zanimanja za određeni fakultet i sveučilište i rasta ugleda istih).
-
Sveučilišta i fakulteti će u dogledno vrijeme postajati sve više financijski neovisni te će morati optimizirati sve svoje troškove, u čemu Open Source programi i razvoj istih uvelike može pomoći.
<li dir="ltr">
<p dir="ltr">
Iz mnogih Open Source projekata su izrasli i novi poslovi za sveučilišta i/ili fakultete te nastajale nove tvrtke.
</p>
</li>
Čega trebate biti svjesni:
Open Source licence nisu “Public Domain”, dakle s njima dobivate određena prava i određena prava dajete/ograničavate drugima.
Potrebno je dobro proučiti Open Source licence i odabrati model licence koji najbolje pokriva vaše potrebe i na najbolji način štiti vaša i projektna prava.
Open Source softvere je moguće i prodavati.
Moguće je razvijati Open Source programe korištenjem ili povezivanjem s programima koji su komercijalni tj. koji nisu Open Source.
Neke od Open Source licenci:
GPL – GNU General Public License (veliki broj GNU programa, MySQL, Linux Kernel, OpenOffice, WordPress, … )
LGPL – GNU Lesser General Public License (7-Zip)
Apache License (Apache Web server, Apache Ant , Jackrabbit , …)
MIT (Mono projekt, Compiz, SLF4J, Transmission [Bitttorrent Client])
CDDL – Common Development and Distribution License (pr. Open Solaris, ZFS, GlassFish)
BSD, …
Open Source projekti koje želimo pokrenuti:
Load Balancer Linux Distribution*
Synergy Cloud Aplikacijski server*
RFID Network Card Reader
Multi User Project Documentation Tool*
GIS Server*
ArhiXML
Heroes of Might and Magic 3 alternative
Što je zajedničko svim projektima koje želimo razvijati?
Gotovo svi postojeći projekti/proizvodi na tržištu (*) su razvijani s manjkom cjelokupnog znanja o problematici:
-
Stvarnih potreba i problema krajnjih korisnika
<li dir="ltr">
<p dir="ltr">
S manjkom naprednog tehničkog znanja:
</p>
<ul>
<li dir="ltr">
<p dir="ltr">
Bez iskustava u radu s naprednim tehnologijama i alatima.
</p>
</li>
<li dir="ltr">
<p dir="ltr">
Bez iskustava u radu s redundantnim (enterprise) sustavima.
</p>
</li>
</ul>
</li>
Kroz većinu projekata koje pokrećemo provlače se isti principi i tehnologije koje moraju biti redundantne
Svi projekti će se razvijati u istom okruženju s istom metodologijom razvoja s najvećim naglaskom na kvalitetu.
Što mi možemo napraviti?
Razumjeti ideju Open Source filozofije i podjeliti istu s drugima.
Pokrenuti konkretne i upotrebljive Open Source projekte.
Aktivno sudjelovati u razvoju Open Source projekata.
Koristiti Open Source programe i sustave.
Tehnička potpora:
“Misija BIOS-a je podupirati razvoj malog i srednjeg poduzetništva kroz osiguravanje poslovnog prostora i pružanje poslovnih i drugih usluga u najkritičnijim fazama razvoja poduzeća i na taj način sudjelovati u gospodarskom razvoju područja i smanjenju nezaposlenosti u regiji.”
BIOS (http://inkubator.hr/) nama omogućava:
-
Hardverske resurse.
<li dir="ltr">
<p dir="ltr">
Stalnu, javnu IP adresu.
</p>
</li>
<li dir="ltr">
Bandwidth.
</li>
Tehnička infrastruktura će sadržavati:
Version Control.
Bug Tracker.
Continuous Integration.
Code Review
Wiki.
Website.
Mailing List.
Online Learning, Collaboration and Conference calls
Izvori informacija:
http://royal.pingdom.com/2012/04/16/linux-kernel-development-numbers/
http://kernelnewbies.org/DevelopmentStatistics
….