TKO SE BOJI LINUXA JOŠ, TRI ZA GROŠ, TRI ZA GROŠ
POGLED IZ HRVATSKE PERSPEKTIVE: DA LI JE LINUX SPREMAN ZA PODUZEĆA?
SAŽETAK
Suživot Linuxa i ostalih sustava danas je realnost i potreba heterogenih mreža u svim tvrtkama bez obzira na veličinu. Linux i Windows mogu komunicirati na praktično svim razinama: od mrežnih protokola, sustava datoteka, razmjene dokumenata u uredskim aplikacijama, udaljenog terminalskog ili desktop rada, razvoja multiplatformskih aplikacija i slično.
Isključivo korištenje samo jednog OS-a i ovisnost o njemu nisu optimalni, te stoga treba raditi kompromise. Svaki OS ima svoje prednosti i mane u određenoj primjeni, pa zašto ne iskoristiti najbolje iz svakog od njih?
UVOD
Linux je operativni sustav otvorenog koda koji je tijekom posljednjih desetak godina postao ozbiljan izbor za primjenu u poslovnim sustavima, kako malim tako i velikim. Kod korisnika koji se s Linuxom susreću tek sada, postoje mnoge nedoumice kojima će se pokušati pozabaviti ovaj članak.
Naročito je važno naglasiti da ovaj rad ne služi kao kuharica implementacije Linuxa u hrvatskim tvrtkama. On jednostavno pokušava objasniti po čemu se Linux razlikuje od komercijalnih rješenja, bez naročitog naglašavanja dobro poznatih tehničkih razlika. Zajednica koja je nastala oko Linuxa (kako u Hrvatskoj tako i u svijetu) toliko je drugačija od komercijalnih dobavljača da zaslužuje objašnjenje.
Linuxov operativni sustav sastoji se od same jezgre (kernela), dijela OS-a koji komunicira s hardverom i omogućuje izvršavanje programa na nekoj platformi, te velikog broja korisničkih programa. Prvo ćemo se pozabaviti samom jezgrom.
Povijest Linuxa počinje 1991. godine, kad je Linus Torvalds odlučio napisati operativni sustav za svoje PC računalo bazirano na 386 procesoru1. Odlučio je da operacijski sustav bude kompatibila sa Unix operacijskim sustavom i Posix standardom. Ali, učinio je nešto što je dotad bilo neuobičajeno za razvoj jezgre operativnog sustava: objavio je na mreži izvorni kod svog operativnog sustava i pozvao druge programere da mu se pridruže u njegovoj izradi.
Na taj je način postao voditelj projekta više nego što se bavio programiranjem. Imao je viziju: uz dovoljno programera, netko će prije ili kasnije pronaći svaki propust u implementaciji2. Uveo je također nov pristup razvoju: stalno objavljivanje izvornih verzija OS-a, suprotno načinu razvoja koji je dotad prevladavao a koji se temeljio na objavljivanju novih verzija puno sporijim tempom, nakon detaljna testiranja.
U to vrijeme, Linux nije bio jedini operativni sustav kompatibilan s Unixom. Osim velikog broja komercijalnih verzija Unixa na tržištu (SunOS/Solaris, HP/UX, AIX, Digital Unix i drugi), bio je tu također operativni sustav BSD, koji se u tom trenutku nalazio u pravnim poteškoćama zbog sudskog spora između AT&T-a, kompanije u kojoj je originalno razvijen Unix, i odjela Berkeley Software Development, koji je razvijao BSD inačicu Unixa. Upravo taj sudski postupak privukao je mnoge ljude da pogledaju i doprinesu razvoju Linuxa koji je bio napisan potpuno iz početka, bez potencijalnih pravnih problema i objavljen pod GPL licencom. Izvorni kod Linux jezgre slobodno je dostupan preko Weba na adresi www.kernel.org.
Iako bi objašnjenje GPL licence svakako zahtijevalo više prostora od cijelog ovog članka, pokušat ću biti kratak jer se radi o bitnom elementu. Uglavnom, to je licenca kojom se autor odriče prava raspolaganja izvodnim kodom svog programa u korist korisnika programa. To zapravo znači da uz svaki program pod GPL licencom korisnici također dobivaju i izvorni kod, što im omogućuje da mijenjaju funkcionalnost programa prema svojim potrebama.
Ali, to ne bi bilo toliko revolucionarno da ne postoji i tzv. viralni dio GPL-a. Richard Stallman, vođa GNU projekta, formulirao je GPL licencu tako da svaki njom licenciran dio koda uvjetuje da i čitav izvedeni kod bude također pod GPL licencom. Tj. razvoj baziran na GPL-u garantira ista prava (i obaveze) ljudima koji modificiraju kod. To je viralni dio GPL licence.
To sa jedne strane omogućava pristup velikoj bazi gotove programske podrške pod GPL licencom što omogućava da ne izmišljamo toplu vodu svaki puta iz početka. Sa druge strane autorima garantira da će promjene njihove programske podrške pod GPL licencom biti vraćene originalnom autoru. Time se program razvija i dok originalni autor više ne razvija sam program već samo integrira promjene.
Ukoliko autor izgubi interes sa održavanjem nekog projekta, uvijek postoje korisnici koji se mogu sami angažirati i dalje održavati program ili unajmiti nekoga da to učini za njih. Na taj način IT postaje servis koji pruža usluge, a ne samo prodaja licenci.
Upravo zbog modela razvoja Linuxa u kojem je naglasak na čestom objavljivanju novih verzija kernela, uveden je oblik označavanja verzija u brojčanom obliku a.b.c. Naročito je zanimljiv drugi broj u verziji koji označava da li je neka verzija stabilna (ukoliko se radi o parnom broju, npr. 2.6.7) ili razvojna (npr. 2.7.5). Razvojne verzije su, kao što im i samo ime kaže, namijenjene uglavnom programerima same jezgre, pa se stoga nećemo njima detaljnije baviti. Trenutno se u proizvodnim sustavima koriste dvije stabilne verzije, 2.4 i 2.6. Verzija 2.6 jest nova verzija Linux jezgre koja donosi mnoga poboljšanja, ali je relativno mlada pa su se neke komercijalne distribucije odlučile zadržati na verziji 2.4, o čemu će biti više riječi kasnije.
Naravno, sama jezgra operativnog sustava nije dovoljna da biste mogli nešto s njime i napravitli. Za koristan rad, potrebni su vam programi koji rade u korisničkom modu (user-land). Na sreću, u vrijeme kada se Linux pojavio, GNU projekt3 je već duže vremena radio na nezavisnoj implementaciji korisničkih programa koji su kompatibilni sa svojim Unix rođacima. GNU projekt u tom trenutku nije imao samu jezgru (iako je njezino pisanje bilo u planu, a trenutno postoji GNU HURD jezgra koja je još uvijek u ranom stadiju razvoja). Na taj način, Linux je zapravo postao GNU/Linux, koristeći user-land programe GNU-a i jezgru Linuxa.
Kada jednom imate operativni sustav (dakle, jezgru i korisničke programe) u izvornom kodu, možda vam se čini vam da imate sve potrebno za rad. Ali, programi u izvornom kodu trebaju se prvo prevesti u mašinski jezik da bi se mogli izvršavati.
Da bi olakšali korištenje Linuxa, mnogi entuzijasti započeli su stvaranje distribucija: skupova paketa koji sadrže programe u binarnom obliku, tj., obliku u kojem se mogu izvršavati. Ako na trenutak preskočimo sve distribucije koje su se pojavljivale od 1995. do danas, možemo se fokusirati na nekoliko koje danas koristi većina računala baziranih na Linuxu.
Besplatne distribucije svakako su logična posljedica slobodne dostupnosti izvornog koda. Međutim, treba imati na umu da se pojam besplatno odnosi samo na cijenu pod kojom nabavljate distribuciju, ali ne i na same troškove korištenja iste (pod koje spada svašta, od cijene računala, cijene ljudi koji ta računala održavaju, pa sve do cijene struje).
Ovih distribucija ima toliko da je ponekad u šumi teško vidjeti drvo. Mi ćemo se ograničiti na nekoliko najpopularnijih, a to su: Fedora, Debian i Gentoo. Odabir upravo ove tri distribucije može, naravno, potaknuti rasprave zašto nisu spomenute i druge, kao što su Slackware, Mandrake i brojne manje popularne, specijalizirane ili izvedene distribucije. Izbor je napravljen prema obliku u kojem se distribuiraju paketi svake pojedine distribucije.
Fedora je zapravo besplatna inačica poznate distribucije RedHat i koristi .rpm format za distribuciju programa. Kompanija RedHat specijalizirala se za komercijalnu podršku Linuxa, a često je kritiziraju da njezin ciklus objavljivanja novih verzija nije dovoljno brz. Ta zamjerka naročito smeta pojedinačne korisnike koji obično žele imati najnovije verzije programa.
Upravo zbog toga, nastale su druge .rpm bazirane distribucije, npr. Mandrake, koje imaju puno učestaliji ciklus objavljivanja novih verzija od RedHatova. Sam je RedHat zaključio da podrška pojedinačnih korisnika nije cilj kompanije, pa je stoga odlučio pokrenuti community-based projekt Fedora.
Debian je distribucija koju je najjednostavnije opisati kao distribuciju koju autori razvijaju za svoje potrebe. Odlikuje se naprednim sustavom upravljanja paketima baziranom na .deb obliku arhiva koji omogućuje vrlo jednostavno održavanje sustava pod uvjetom da je računalo povezano na mrežu.
Debian se razvija prema dokumentu koji se zove Debian social contract i koji zapravo garantira da ćete tu distribuciju moći podijeliti s drugima. Zbog toga je Debian podijeljen na tri dijela: free, non-free i contrib. Po svojoj filozofiji. Debian je najbliži filozofiji iza GNU projekta.
Druga karakteristika Debiana jest vrlo rijetko objavljivanje CD verzija distribucije, zbog čega se početnici često odlučuju za neku drugu distribuciju čiju zadnju verziju mogu jednostavno instalirati sa CD-a.
Zanimljivo je da postoji velik broj distribucija koje su varijante Debiana. Od Knoppixa koji omogućuje da se cijeli operativni sustav pokrene direktno s CD-a do raznih specijaliziranih distribucija (npr. za muzičare, clustere računala itd). Zanimljivo je također da distribucije izvedene iz Debiana imaju mogućnost instalacije i originalnih paketa Debiana, dok su .rpm bazirane distribucije obično međusobno nekompatibilne tako da ne možete jednostavno instalirati .rpm paket jedne distribucije na drugoj.
Debian je ujedno distribucija koja raspolaže s najvećim izborom gotovih binarnih paketa jer ljudi koji razvijaju Debian imaju vrlo različite interese i potrebe, pa održavaju mnoštvo različitih pakete među kojima ćete vjerojatno naći i onaj koji vas zanima.
Gentoo je treća (i posljednja) slobodna distribucija koju ćemo spomenuti u ovom članku. Njezina je glavna karakteristika da se instalacija svodi na prevođenje programske podrške iz izvornog u prevedeni oblik kod instalacije. Taj način instalacije uobičajen je kod BSD izvedenih Unixa i ima nekoliko prednosti. Za početak, instalacijom iz izvornog koda riješen je problem ovisnosti različitih verzija paketa na računalu jer se svaki program prevodi koristeći verzije koje postoje na računalu (ili bez podrške za dijelove koji nisu interesantni).
Zatim, takva distribucija prilagođena je upravo toj arhitekturi, tako da su svi programi na npr. Pentium platformi optimizirani upravo za taj procesor.
Iako ostale distribucije obično imaju nekoliko varijanti (za i386, Pentiume, 64 bitnu x86 platformu i dr.), prevođenjem možete dobiti binarne programe koji su optimizirani baš za vaš procesor. Međutim, kako to također zahtjeva puno znanja, Gentoo većinom koriste korisnici koji žele detaljno naučiti Linux. Često se čuje šala da je Debian distribucija za Gentoo administratore koji su postali lijeni. pa ne žele više kompajlirati pakete.
Primjena Linuxa na razini tvrtki svakako za sobom povlači i pitanja koja su poznata svakome tko radi u toj okolini: tehnička podrška, sigurnosne nadogradnje i stabilnost. Naime, ako razvijate komercijalni program kojeg želite izvršavati na Linuxu, vjerojatno ne želite da vam biblioteka o kojoj ovisite “nestane” u sljedećoj verziji distribucije. Upravo zbog toga, komercijalne distribucije nude stabilnost paketa i plaćenu podršku, kao i nadogradnje koje su većinom samo sigurnosne. Na taj način možete biti sigurni da će se na toj distribuciji vaš program jednako dobro izvršavati za dvije godine kao i danas.
Popularizacija Linuxa dovela je nažalost do jednog negativnog efekta: sve je teže pronaći iskusna sistem administratora za Linux. Međutim, kako je sve veći trend outsourcing usluga, to možda i nije velik problem. Ipak, u okruženju u kojem ne postoji Linux “guru”, primjena neke od slobodnih distribucija može biti avantura na koju većina “ozbiljnih” tvrtki nije spremna.
RedHat je sa svojom Advanced Linux Server distribucijom sigurno najpoznatiji primjer stabilne distribucije za enterprise okruženja. Osim prednosti koje smo već naveli, RedHat također pruža obrazovanje i certifikaciju kroz svoj program RHCE .
Posebno je zanimljivo da je RedHat baziran na 2.4 kernelima, a ne na najnovijim 2.6 inačicama. Međutim, RedHatova je jezgra zapravo plod naporna rada inženjera te sadrži mnoga poboljšanja koja su se standardno pojavila tek u verziji 2.6 jezgre (dotad su postojali kao dodatne zakrpe za 2.4 kernel). To je donekle logično, jer velik broj ljudi koji razvijaju Linux kernel radi upravo u RedHatu.
RedHat je kompanija koja je odlučila zarađivati isključivo na konzultantskim uslugama i pružanju podrške. Izgleda da je taj model vrlo uspješan. Malo je poznata činjenica da se cjelokupni izvorni kod Linux Advanced Servera može besplatno skinuti s ftp poslužitelja ftp.redhat.com. Međutim, nije moguće preuzeti binarnu verziju te distribucije; ona se dobiva tek nakon potpisanog ugovora o održavanju.
Druga poznata distribucija uz koju ide komercijalna podrška je svakako SuSE, odnedavno pod okriljem Novella. U trenutku pisanja ovog članka, izgleda da će spoj Novella, poznatog po tome što je vrlo raširen među kompanijama s popisa Fortune 500, i Linuxa biti dobitna kombinacija.
Novell je firma koja je odlučila preuzeti Open Source način razvoja programske podrške kao svoju stratešku prednost. Prvi je rezultat tog poteza taj da je SuSE postao otvorenija distribucija nego što je donedavno bila (do preuzimanja SuSE-a od strane Novella, nije postojala besplatna inačica te distribucije).
SuSE je izvorno njemačka distribucija, bazirana na .rpm paketima i s reputacijom njemačkog proizvoda: stabilna, dobro testirana distribucija s odličnom podrškom.
Iako Linux Standard Base zapravo nije distribucija već standard, svakako ga je potrebno spomenuti. Taj je standard bitan jer omogućuje da se programska podrška distribuira u izvornom obliku, a da usprkos tome radi na svakoj distribuciji koja je sukladna s LSB-om. To je napravljeno tako što su definirane verzije biblioteka koje sustav mora posjedovati na standardnim mjestima, dok se sve ostale biblioteke moraju isporučivati sa samim programom. Na taj je način komercijalnim softverskim kompanijama, među kojima je i Oracle, dovoljna samo jedna binarna verzija proizvoda za koju su sigurne da će raditi na svim Linux distribucijama. To je velika prednost u odnosu na održavanje binarnih verzija za svaku pojedinu distribuciju.
Hrvatska podrška za Linux kontroverzna je tema o kojoj bi se mnogo puno toga ispričati. Iako postoje certifikacije, tečajevi i predavanja, broj ljudi koji znaju održavati Linux u enterprise okruženju je malen i nedostatan.
Također, zastupnici raznih firmi koje u svom programu imaju proizvode za Linux toliko su neupućeni u taj operativni sustav da često inzistiraju na tvrdnjama da njihov proizvod radi samo na jednoj distribuciji (ili, još gore, na određenoj verziji distribucije), iako to nije točno.
Dobiti kvalitetnu podršku za Linux kod specifičnog problema moguće je jedino ukoliko koristite certificiranu platformu i i ako vaš zastupnik ima mogućnost prenošenja problema na višu razinu, svojoj matičnoj organizaciji. U tom slučaju, podrška funkcionira vrlo dobro.
S druge strane, u Hrvatskoj postoje kompanije koje ne koriste točno certificiranu verziju operativnog sustava, ali one obično imaju vlastite ljude koji sami znaju rješavati probleme (neki od njih održavaju pakete u distribucijama ili rade na razvoju kernela).
Svaka zemlja ima svoju Linux zajednicu, pa tako i Hrvatska. U Hrvatskoj postoji Hrvatska Udruga Linux Korisnika (HULK) koja za svoje članove organizira godišnju konferenciju o Linuxu i sudjeluje u događanjima vezanim uz njega. Međutim, optimistično je očekivati da će Linux zajednica riješiti vaše probleme. Kao i kod svake neformalne skupine građana, pomoć možete dobiti samo ako se netko našao u istoj situaciji kao i vi. Ako se radi o instalaciji Linuxa na nekakav standardni hardver, vjerojatno ćete dobiti pomoć. Međutim, ako se radi o nekom specifičnom problemu sa serverskom komponentom, vjerojatno nećete imati toliko sreće.
S druge strane, Linux zajednica nije ograničena samo na Hrvatsku. Korisnika Linuxa ima posvuda po svijetu, tako da je pretraživanje Interneta nezamjenjivo sredstvo u rješavanju problema. Ali, problem će te u većini slučajeva morati riješiti sami. Ako ne koristite komercijalnu podršku, ne možete očekivati jednostavno prijavljivanje problema i rješenje kao povratnu informaciju.
Druga je krajnost kvaliteta podrške koju možete očekivati. Ako imate prenosno računalo kojem u 2.6 kernelu ne radi klik na srednji gumb (kao autor ovoga članka), nećete naći rješenje na mreži. Ali malo modifikacije kernela (od samo četiri linije koda) omogućit će vam da napravite promjenu u samoj jezgri kojom će vaš umrtvljeni srednji gumb oživjeti. Sljedeći logičan korak (koji je možda trebao biti prvi) jest da prijavite problem autoru drivera za touchpad. U mom slučaju, za samo nekoliko sati autor drivera upozorio me je da bi moje promjene mogle utjecati na funkcionalnost kod korisnika koji imaju više od tri tipke, ali je i poslao izmjene koje s jedne strane aktiviraju moj srednji gumb radi meni ali i poboljšavaju sam driver. Moram priznati da nisam očekivao tako brz odgovor (zbog čega sam i išao sam raditi promjene) ali isto tako dosad još nisam naišao na plaćenu podršku koja bi tako brzo i efikasno riješila moj problem.
Primjer takve podrške iz zajednice nije rijetkost nego pravilo. U većini slučajeva, ljudi koji rade na Linuxu rade na njemu zato što ga vole, a ne samo zato što moraju. Ali, to podrazumijeva i određenu količinu truda od strane korisnika, u najmanju ruku dobro formuliranje pitanja4.
U svijetu naših firmi u kojem prevladava Windows, postavlja se pitanje zašto uopće razmatrati Linux. Standardni odgovor jest cijena i sigurnost. S jedne strane, Linux je operativni sustav koji može skoro besplatno (bez kupovine licenci, ljude svejedno treba platiti!) obaviti većinu standardnih poslova u svakoj firmi: firewall, proxy, web poslužitelj (osim ako ne trebate podršku za .asp), poslužitelja za datoteke i ispis.
Poznata krilatica “standardi su jako zgodni jer ih ima toliko da možete birati koji ćete implementirati” u svijetu Linuxa zapravo je prednost: Linux implementira mnoge standardne mrežne protokole (od TCP/IP-a i Netwarea do DECneta i AppleTalka) tako da ga je puno lakše integrirati u tzv. legacy okoline nego najnovije verzije operativnih sustava drugih kompanija.
ZAKLJUČAK
Pravo pitanje ne glasi da li je Linux spreman za enterprise primjenu. Pravo je pitanje da li ljudi u vašoj firmi imaju znanja da mogu odraditi taj posao. Prednosti Linuxa su, po mom mišljenju, dovoljno velike da bi opravdale primjenu čak i ako trenutno nemate ljude sa dovoljno znanja. Investicija u ljude svakako je bolja nego najam licenci za programsku podršku.
Linux je moćan operativni sustav koji je primjenjiv za mnoge zadatke. Međutim, uspješna primjena Linuxa zahtijeva način razmišljanja koji je drugačiji od uobičajene korporativne prakse. Korisnici Linuxa cijene rezultate takva drugačijeg načina razmišljanja. Nadam se da će ovaj članak potaknuti neke od vas da i sami pokušate postati zadovoljan korisnik Linuxa.
Podaci o autoru
Dobrica Pavlinušić je, kako sam za sebe voli reći, ovisnik o Unixu i konzultant za Internet. Diplomirao je na Fakultetu organizacije i informatike u Varaždinu gdje je stekao titulu diplomiranog informatičara.
Njegova područja interesa uključuju Internet tehnologije, Unix, Open Source pokret i Free software (u smislu sloboda, a ne cijene) kao i Linux.
Član je nadzornog odbora HULK-a, Hrvatske Udruge Linux Korisnika i član izvršnog odbora HrOpena, Hrvatske udruge za otvorene sustave i Internet.
Trenutno radi u GBS IT odjelu PLIVE, najveće farmaceutske kompanije u ovom dijelu Europe, na dužnostima sistemske administracije Unix poslužitelja i implementacije Internet tehnologija baziranih na Open Source rješenjima.
Literatura
Eric Steven Raymond: The Cathedral and the Bazaar, http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html
Eric Steven Raymond: How To Ask Questions The Smart Way, http://www.catb.org/~esr/faqs/smart-questions.html
1 Više podataka o povijesti Linuxa možete naći na mnogim mjestima na Internetu, npr. http://www.li.org/linuxhistory.php
2 Linus's Law: Given enough eyeballs, all bugs are shallow [1]
3 GNU je rekurzivni akronim koji zapravo znači GNU is Not Unix
4 Kako postaviti dobro pitanje čest je problem. [2]