POGLAVLJE 1: Šta je Linux?
POGLAVLJE 2: Biranje distribucije
Poglavlje 1
Šta je Linux?
Istorija Linuxa
Linux kao operativni sistem
Linux kao besplatan softver
Komercijalne aplikacije za Linux
Ako ste došli dovde - kupili knjigu, prošetali kroz uvod i pogledali sadržaj - verovatno imate predstavu o tome šta je Linux. Ako nemate, čitajte dalje.
Linux je zaista zaprepašćujuće ostvarenje u računarskoj industriji. On dokazuje da kvalitetan softver ne zavisi nužno od novčanog blagoslova komercijalne softverske industrije. Istorija Linuxa ilustruje kako besplatan softver može da se razvija, raste i zatim postane privlačna alternativa najpoznatijim komercijalnim softverskim paketima.
Uz to, tehnički sjajno napravljeni Linux ozbiljan je protivnik suprotstavljenim operativnim sistemima Microsofta, Novella i IBM-a.
Ovo poglavlje će dati skicu Linuxove istorije, a zatim razmotriti ključne osobine koje Linux čine moćnim alternativnim operativnim sistemom za niz tehničkih primena. I najzad, razmotriće model besplatnog softvera primenjen kod Linuxa i njegove posledice po celu softversku industriju.
Istorija Linuxa
Linux se na računarskoj sceni pojavio kao izdanak Unixa. Kao operativni sistem (zapravo niz različitih operativnih sistema sličnih osobina), Unix je mnogo stariji od stonih računara; bio je razvijen sredinom sedamdesetih, kada su mini i mainframe računari bili obavezni u preduzećima. U tom okruženju, kao i na univerzitetima, Unix je i dalje u širokoj upotrebi iako se danas često koristi i na klijent-server intranet mrežama.
Istorijski gledano, problem sa Unixom je bila njegova nedostupnost programerima koji su hteli da rade sa njim van računarskih centara velikih preduzeća i univerziteta. Iako su neke verzije Unixa za PC odavno na raspolaganju, one nikada nisu pružale eleganciju i snagu operativnih sistema koji stoje na raspolaganju mini i mainframe računarima i današnjim serverima. Uz to, rane komercijalne verzije Unixa bile su skupe, ponekad skuplje od PC hardvera za koji su bile namenjene.
Ta nepristupačnost je na kraju dovela do Linuxa, kao načina da operativni sistem sličan Unixu postane široko dostupan.
Život Linuxa je započeo u rukama Linusa Torvaldsa, sa helsinškog univerziteta u Finskoj. Iako je današnji Linux razvijen uz pomoć hiljada programera širom sveta, Linus Torvalds još uvek upravlja razvojem središta operativnog sistema Linux: njegovog jezgra (engl. kernel).
Torvalds je počeo da razvija Linux iz zabave. Rane verzije Linuxa nisu uzimale u obzir krajnjeg korisnika; umesto toga, pružale su najosnovniju funkcionalnost potrebnu Unix programerima za zabavu pisanja jezgra. Kao središte operativnog sistema, jezgro čini da sve glatko teče - bez stabilnog i moćnog jezgra nema ni operativnog sistema.
No, kako je programerska ekipa rasla, a sa njom i osnovni softver celokupnog operativnog sistema, postalo je jasno da se Linux razvio do nivoa na kome se pošteno može nazvati operativnim sistemom. U martu 1992. pojavila se verzija jezgra 1.0, čime je obeleženo prvo zvanično izdanje Linuxa. Tada je Linux obuhvatao najrasprostranjenije Unixove alate, od prevodilaca, preko softvera za umrežavanje, doXWindowsa.
Linux se i dalje razvija kao najistaknutiji klon Unixa za PC računare. Sada je podržano mnogo hardvera, uključujući i najpopularnije i najraširenije periferije; performanse su odlične, što mnogim PC računarima daje snagu uporedivu sa radnim stanicama srednje klase, kao što su SPARC računari kompanije Sun Microsystems.
Linux kao operativni sistem
Pojam "Linux" je zapravo pomalo neodređen. "Linux" se koristi na dva načina: u užem smislu, da označi samo jezgro - srce svake verzije Linuxa - i uopštenije, da označi bilo koji skup aplikacija koje rade sa tim jezgrom, što se obično naziva distribucija. Posao jezgra je da pruži osnovno okruženje u kome aplikacije mogu da se izvršavaju, uključujući sisteme za upravljanje hardverom, poslovima i trenutno aktivnim programima.
Strogo gledano, postoji samo jedna tekuća verzija Linuxa u svakom trenutku: to je trenutna verzija jezgra. U svetskom razvoju Linuxa, Torvalds zadržava za sebe jezgro, ostavljajući hiljadama ostalih programera u svetu sve aplikacije i uslužne programe koji se oslanjaju na jezgro.
U opštem značenju reči "Linux", što označava celovit skup aplikacija koje se izvršavaju oslanjajući se na jezgro Linuxa, postoje mnoge verzije Linuxa. Svaka distribucija ima svoje jedinstvene karakteristike, uključujući različite načine instaliranja, različite skupove osobina, i različite putanje nadogradnje. No, pošto su sve distribucije u osnovi Linux, aplikacija koja radi sa tekućom verzijom jedne distribucije, gotovo uvek će raditi i sa tekućom verzijom druge.
napomena
Poglavlje 2, "Biranje distribucije", sadrži pregled distribucija Linuxa.
Zanimljivost u vezi sa ovom dvojnom upotrebom reči "Linux" jeste to da ona tačno podražava istovrsnu zabunu pri upotrebi pojma "operativni sistem". Komercijalno gledano, operativni sistem danas znači veliki skup aplikacija oslonjenih na jedno jezgro. Takvi su Windows 95 i 98, Windows NT i Windows 2000. Takav je i Macintosh OS.
U čistunskom, tehničkom smislu, operativni sistem je mnogo manje središnje jezgro koje obezbeđuje one osnovne sistemske funkcije koje su potrebne za razvoj bilo koje aplikacije.
Linux je operativni sistem u oba smisla. Jedna od mogućnosti Linuxovog jezgra, po kojoj se ono razlikuje od ostalih operativnih sistema namenjenih stonim PC računarima, jeste da istovremeno radi sa više korisnika (engl. multiuser) i da istovremeno obavlja više poslova (engl. multitasking).
Operativni sistem za istovremeno obavljanje više poslova
Reč "multitasking" verovatno vam je poznata, iako možda niste baš sigurni šta znači.
Kad su računari napredovali od Windowsa 3.1 na Windows 95, mogućnost tada novog Windowsa 95 da istovremeno obavlja više poslova bila je među njegovim najjačim adutima.
Reći da je operativni sistem u stanju da istovremeno obavlja više poslova, znači da on daje privid da istovremeno izvršava više od jedne aplikacije, odnosno procesa. Na primer, sistem štampa dokument, kopira datoteku, i poziva telefon dobavljača Internet usluga, dok korisnik mirno kuca tekst u programu za obradu teksta. Čak i dok se odvijaju svi ti poslovi u pozadini, program za obradu teksta, koji je u prvom planu, ne bi trebalo da se zamrzne ili da postane neupotrebljiv.
To je čarolija višeprogramskog rada: njome se postiže da računar sa jednim jedinim procesorom izgleda kao da istovremeno obavlja više poslova. Naravno, jedan procesor u svakom trenutku može da izvršava samo jednu naredbu - dakle, u bilo kom trenutku može da se odigrava samo jedna delatnost. Multitasking stvara privid istovremenog obavljanja više poslova brzim prebacivanjem s jednog posla na drugi, onako kako diktiraju zahtevi tih poslova.
Ako multitasking dobro radi, korisnik koji upotrebljava program za obradu teksta dok se odvija nekoliko drugih poslova, neće biti svestan dodatnih poslova koje računar obavlja. Izgledaće kao da svi procesi teku glatko, a računar se neće blokirati.
Istorijski gledano, Unix sistemi su bili mnogo bolji od Windowsa u istovremenom obavljanju više poslova; Unix može istovremeno da izvršava veoma veliki broj aplikacija, što ga je činilo idealnim za servere velikih preduzeća i snažne radne stanice. Danas se samo za Windows 2000 i njegovog prethodnika, Windows NT, može reći da nude implementaciju višeprogramskog rada jednako robusnu kao Unix. Čak i Windows 95, uprkos svim njegovim fanfarama, ima problema sa istovremenim obavljanjem velikog broja poslova.
Da bi stvari išle još dalje, Linux podržava višeprocesorski rad sa npr. dva Pentium II procesora, kao i Windows 2000 i Windows NT. Ovi sistemi zaista mogu u istom trenutku da izvršavaju dva posla. Kombinujući istovremeno obavljanje više poslova sa višeprocesorskim radom, ovi sistemi su mnogo povećali broj aplikacija koje računar može istovremeno da izvršava.
Višekorisnički operativni sistem
Još važnija od Linuxove mogućnosti da istovremeno obavlja više poslova, jeste njegova sposobnost istovremenog rada sa više korisnika, što mogu sve verzije i svi klonovi Unixa.
Sve verzije Windowsa i Mac OS-a su jednokorisnički sistemi. Bez obzira na to što neki uslužni programi Windowsa NT daju privid mogućnosti istovremenog rada sa više korisnika, u svim ovim operativnim sistemima u svakom trenutku može da bude prijavljen samo jedan korisnik i samo on može da pokreće aplikacije. Tek nedavno je pokušano da se Windows NT proširi tako da postane višekorisnička platforma, pod imenom Windows NT Terminal Server Edition.
U poređenju s tim, Linux omogućava istovremeni rad više korisnika, koristeći u potpunosti sposobnosti operativnog sistema za istovremeno obavljanje više poslova. Velika prednost toga je mogućnost primene Linuxa kao servera aplikacija. Korisnici mogu da se prijave na Linux putem lokalne mreže (LAN) i da zaista pokreću aplikacije na serveru, umesto na svojim stonim računarima.
Linuxove aplikacije
Kao operativni sistem, Linux može biti upotrebljen za razvoj skoro svih vrsta aplikacija. Među raspoloživim aplikacijama za Linux postoje sledeće:
Aplikacije za obradu teksta Uz komercijalne programe za obradu teksta kao što su WordPerfect, Applixware, i besplatni StarOffice, Linux nudi moćne alate za uređivanje tekstualnih datoteka i automatsku obradu teksta.
Programski jezici Za Linux i sve Unix operativne sisteme postoji veliki broj alata i jezika za pisanje programa i skriptova. To obilje alata za programiranje olakšava razvoj novih aplikacija, koje mogu da se izvršavaju ne samo na Linuxu, nego i na većini Unix operativnih sistema, kao i na onima sličnim Unixu.
X Windows X Windows je Unixov odgovor na grafičke korisničke interfejse (GUI).XWindows je veoma prilagodljivo grafičko okruženje, koje radi na Linuxu i većini drugih Unix sistema. Brojne aplikacije koje rade uX Windowsu čine Linux operativnim sistemom lakim za korišćenje.
napomena
X Windows je potpuno opisan u poglavljima od 6. do 12.
Alati za Internet Uz podršku dobro poznatim programima kao što su Netscape Communicator i Mosaic, Linux nudi veoma mnogo softvera za Internet, uključujući i aplikacije za čitanje e-pošte, sav softver potreban za postavljanje Internet servera (Web servera, servera za poštu, i servera za diskusione grupe), uz potpunu mrežnu podršku za povezivanje s Internetom putem lokalne mreže ili pomoću modema.
Baze podataka Kao i sve Unix platforme, Linux nudi robusnu platformu za izvršavanje klijent-server aplikacija za baze podataka. Od najranijih Linuxovih dana, njemu su na raspolaganju moćne besplatne baze podataka kao Postgre i mSQL. Kako je Linuxu rasla popularnost, naročito u informatičkim sistemima velikih preduzeća, rastao je i broj komercijalnih servera relacionih baza podataka za Linux. Danas svoje proizvode relacionih baza podataka za Linux nude Oracle, Sybase i Informix.
Softver kompatibilan sa DOS-om i Windowsom Kao što ćete videti u poglavlju 30, "Red Hat Linux i DOS/Windows", Linux može da izvršava DOS-ov softver veoma stabilno i kompatibilno, a za izvršavanje Windowsovog softvera nudi nekoliko pristupa. U stvari, celokupan tekst originala ove knjige napisan je u Microsoftovom Wordu za Windows, na računaru kojim upravlja Linux. To je dobar dokaz Linuxove sposobnosti da dobro radi u Windowsovom okruženju. Uz to, na raspolaganju su emulatori i za ostale popularne računarske sisteme, uključujući i računare Macintosh i Atari ST.
Ovaj spisak otkriva samo vrh ledenog brega. Postoji još mnogo aplikacija za Linux. Dobar izvor za pronalaženje Linuxovog softvera jeste karta Linuxovog softvera, koju možete naći na Web adresi http://www.linux.org/apps/lsm.html.
Linux kao besplatan softver
Uz sve mogućnosti koje Linux nudi, pomislili biste da je taj operativni sistem skup. Međutim, jezgro Linuxa i najveći broj aplikacija napisanih za Linux besplatni su i dostupni na Internetu, često bez ograničenja u pogledu kopiranja i dalje distribucije.
Za početak, jezgro Linuxa se distribuira pod GNU opštom javnom licencom (GPL). Ta posebna softverska licenca, koju je razvila Fondacija za besplatan softver (Free Software Foundation), potpomaže otvorenu distribuciju i, što je još važnije, otvoren razvoj softvera. Za razliku od softverskih licenci koje nudi većina komercijalnog softvera, GNU licenca omogućava da svako dalje distribuira softver, čak i uz naplatu, uz uslov da u daljoj distribuciji i dalje vrede uslovi GNU licence. Drugim rečima, svako može da uzme GNU softver, preradi ga po želji, i ponovo ga distribuira, ali distributer ne može da spreči onoga ko od njega kupi softver sa GNU licencom da taj softver dalje distribuira.
Veći deo Linuxa je dostupan pod opštom javnom GNU licencom. Time mnogi prodavci imaju mogućnost da proizvode i besplatne i komercijalno dostupne distribucije Linuxa.
Taj pristup besplatnom softveru nije istovetan sa onim koji ima softver u javnom vlasništvu (engl. public domain software). GNU proizvodi su i dalje vlasništvo onih koji su ih razvili, pa oni mogu u budućnosti da prekinu njihovu distribuciju pod GNU licencom. Posebnost GNU licence je u tome što ona podstiče iterativni razvoj aplikacija od strane mnoštva ljudi, gde svako unosi one izmene koje mu se čine važne ili neophodne, i onda dalje distribuira softver.
Taj postupak je moguć zato što se sav softver sa GNU licencom obavezno distribuira sa celokupnim izvornim kodom. Za razliku od komercijalnog softvera, gde je izvorni kôd nedostupan i stoga nepromenljiv, GNU softver ne samo da omogućava menjanje i prilagođavanje softvera, nego zapravo podstiče zainteresovanog i sposobnog korisnika da to uradi.
Opisani model je bio toliko uspešan u razvoju Linuxa i aplikacija za njega, da ga je usvojila firma Netscape za svoj proizvod Communicator. Koristeći osnovna GNU načela, Netscape je učinio Communicator besplatno dostupnim i dozvolio svakom da licencira izvorni kôd za Communicator ili da ga dalje distribuira.
Komercijalne aplikacije za Linux
Kao što ćete videti kasnije u ovoj knjizi, postoje komercijalne aplikacije za Linux, kao i komercijalne distribucije samog Linuxa. U tim slučajevima, većina proizvoda je licencirana sa većim ograničenjima od GNU standarda Linuxovog sveta.
Ali, čak i u slučaju da Linuxova distribucija sadrži komercijalne komponente koje ne smeju da se besplatno dalje distribuiraju, to ne menja GNU licencu koja se odnosi na jezgro Linuxa i na središnje aplikacije koje se nalaze u svim Linuxovim distribucijama. Ako je originalna licenca aplikacije opšta javna GNU licenca, onda je licenca redistribuirane kopije tog softvera ponovo opšta javna GNU licenca.
Pogled unapred
U ovom poglavlju napravili ste prve korake u svetu Linuxa. Sad poznajete njegove osnovne komponente i njegovu filozofiju, a upoznali ste i njegove mogućnosti koje ga čine odličnim izborom za mnoge primene.
Poglavlje 2 razmatra filozofiju Linuxove distribucije i mnoštvo distribucija (vrsta) Linuxa koje su dostupne.
Poglavlje 3 opisuje praktične korake pripreme za instaliranje Red Hat Linuxa na PC. Poglavlja 4 i 5 će vas provesti kroz razne instalacije i sa njima povezana pitanja i zamke. Tada ćete biti spremni da pogledate Linuxova grafička korisnička okruženja u poglavljima od 6 do 12.
Poglavlja 4 i 5 opisuju instaliranje Linuxa na PC koji se ne nalazi u mreži; razmotrena su i pitanja specijalnih instalacija, npr. u slučaju da PC nema CD uređaj. Od te tačke, knjiga je podeljena na pet delova koji opisuju korišćenje Linuxa; ti delovi objašnjavajuXWindows i GNOME, osnovne veštine u Linuxu, povezivanje Linuxa na Internet, i korišćenje Linuxa u maloj ili kućnoj kancelariji (tzv. SOHO okruženje).