naprej navzgor nazaj vsebina index
Naprej: 2. Pridobitev in namestitev Navzgor: Namestitev in začetek dela Nazaj: Predgovor

Podrazdelki



1. Uvod v Linux

Linux je zelo verjetno najpomembnejši dosežek prostega programja, odkar so napisali igro Space War, ali, nekoliko kasneje, urejevalnik Emacs. Razvil se je v operacijski sistem za poslovne, izobraževalne in osebne namene. Linux ni zgolj za čarovnike Unixa, ki sedijo ure in ure pred žarečim zaslonom (čeprav vam zagotavljamo, da veliko uporabnikov spada v to kategorijo). Ta knjiga vam bo pomagala iz Linuxa izvleči kar največ.

Linux (izgovarja se Línuks) je operacijski sistem Unix in teče na mnogih platformah, posebej na osebnih računalnikih s procesorjem Intel 80386 ali boljšim. Podpira širok spekter programja, od TeX-a do X Window Systema, prevajalnika GNU C/C++ in programov za TCP/IP. Linux je vsestranska, odprta izvedba Unixa, prosto razširljiva pod pogoji licence GNU General Public License (glejte Dodatek D).

Linux lahko spremeni osebni računalnik 80386 ali boljšega v delovno postajo, ki prinese polno moč Unixa na doseg vaših prstov. Podjetja nameščajo Linux na cela omrežja strojev in uporabljajo ta operacijski sistem za urejanje finančnih in bolnišničnih zapisov, okolja porazdeljenega računanja in telekomunikacije. Univerze po vsem svetu uporabljajo Linux kot učni pripomoček za programiranje in načrtovanje operacijskih sistemov. Računalniški navdušenci vsepovsod uporabljajo Linux doma za programiranje, učinkovito delo in hekanje kar tako.

Kar je pri Linuxu tako posebno, je dejstvo, da je to prosta izvedba Unixa. Razvila se je in se še skozi delo skupine prostovoljcev, predvsem na Internetu, ki izmenjujejo kodo, poročajo o hroščih in odpravljajo težave v odprtem okolju. Vsakdo je dobrodošel pri vključitvi v napore za razvoj Linuxa. Vse, kar potrebujete, je zanimanje za hekanje prostega klona Unixa in nekaj programerskega znanja. Knjiga pred vami je vaš vodnik na tej poti.

1.1 O tej knjigi

Ta knjiga je namestitveni vodnik na začetni ravni za Linux. Njen namen je usposobiti nove uporabnike, da bodo postavili in poganjali sistem, zato smo vključili vanjo čimveč pomembne snovi. Namesto da pokrivamo nestanovitne tehnične podrobnosti, ki se pri hitrem razvoju rade spreminjajo, vam ponujamo trdne temelje, na katerih boste lahko gradili sami.

Linuxa ni težko namestiti in uporabljati. Vendar, kot pri vsaki izvedbi Unixa, je za pravilno usposobitev vsega pogosto potrebno nekaj črne magije. Upamo, da vam bo ta knjiga pomagala vstopiti na avtobus izleta v Linux in vam pokazala, kako veličasten operacijski sistem je lahko.

V tej knjigi obravnavamo naslednje teme:

Knjiga je namenjena uporabniku osebnega računalnika, ki bi rad začel z delom v Linuxu. Ne predpostavljamo prejšnjih izkušenj z Unixom, vendar pričakujemo od novincev, da pogledajo še kam drugam. Za tiste, ki vam Unix ni domač, je v Dodatku A naveden seznam uporabnih virov. V splošnem je ta knjiga mišljena kot dodatno branje h kakšni drugi knjigi o osnovnih pojmih Unixa.

1.2 Kratka zgodovina Linuxa

Unix je zaradi svoje velike podporne baze in distribucije eden od najpopularnejših operacijskih sistemov na svetu. Sprva so ga razvili v sedemdesetih letih pri AT&T kot večopravilni sistem za miniračunalnike in osrednje računalnike, a je od takrat rasel in postal eden od najširše uporabljanih operacijskih sistemov kjerkoli, kljub svojemu včasih konfuznemu vmesniku in pomanjkanju centralne standardizacije.

Mnogi hekerji menijo, da je Unix Prava Stvar - Edini Pravi Operacijski Sistem. Zato se je torej razvoj Linuxa razširil s skupino hekerjev Unixa, ki so si želeli umazati roke z lastnim operacijskim sistemom.

Različice Unixa obstajajo za veliko sistemov, od osebnih računalnikov do superračunalnikov, kot je Cray Y-MP. Večina različic Unixa za osebne računalnike je dragih in nerodnih. V času, ko to pišemo, stane različica operacijskega sistema AT&T UNIX System V za en sam računalnik 386 približno 1500 ameriških dolarjev.

Linux je prosta različica Unixa, ki jo je razvil predvsem Linus Torvalds z Univerze v Helsinkih na Finskem, ob pomoči mnogih programerjev in čarovnikov Unixa na Internetu. Sistem lahko razvija in spreminja kdorkoli z dovolj znanja in domiselnosti. Jedro sistema Linux ne uporablja kode AT&T ali drugih lastniških virov in večina programja za Linux je bila razvita v projektu GNU ustanove Free Software Foundation v Cambridgeu, Massachusetts, ZDA. V rastoči bazen programja za Linux so prispevali programerji z vsega sveta.

Linux se je prvotno razvijal kot ljubiteljski projekt Linusa Torvaldsa. Navdihnil ga je Minix, mali sistem Unix, ki ga je razvil Andy Tanenbaum. Prve razprave o Linuxu so se odvijale v novičarski skupini Useneta comp.os.minix. Te razprave so se ukvarjale predvsem z razvojem majhnega, akademskega sistema Unix za uporabnike Minixa, ki so si želeli več.

Zelo zgodnji razvoj Linuxa je predvsem izboljševal lastnosti preklopa opravil vmesnika zaščitenega načina procesorja 80386, vse napisano v zbirniku. Linus piše:

,,Po tem je bilo vse preprosto: še vedno sicer kosmato kodiranje, vendar sem imel nekaj orodij in razhroščevanje je bilo lažje. Na tej stopnji sem začel uporabljati C, kar je gotovo pospešilo razvoj. Tedaj sem tudi začel resneje razmišljati o svoji megalomanski ideji, da bi napisal ,,boljši Minix od Minixa``. Upal sem, da bom nekoč sposoben prevesti gcc pod Linuxom ...

Dva meseca za osnovno sestavo, vendar sem imel le malce kasneje gonilnik diska (hudo hroščat, a na mojem stroju je slučajno deloval) in majhen datotečni sistem. To je bilo takrat, ko sem različico 0.01 naredil dostopno (nekako konec avgusta 1991): ni bila lepa, ni imela gonilnika za diskete in skoraj ničesar ni znala narediti. Ne verjamem, da je sploh kdo prevedel to različico. A takrat sem bil že zasvojen in nisem hotel odnehati, dokler ne bi prekosil Minixa.``

Linux različice 0.01 ni bil nikjer objavljen. Izvorna koda 0.01 niti ni bila izvedljiva. Vsebovala je le čisto osnovo za izvorno kodo jedra in predpostavljala, da ste imeli dostop do stroja z Minixom za prevajanje in eksperimentiranje.

5. oktobra 1991 je Linus objavil prvo ,,uradno`` različico Linuxa, to je bila različica 0.02. Tedaj je Linus lahko poganjal bash (ukazna lupina GNU Bourne Again Shell) in gcc (prevajalnik za C iz projekta GNU), a skoraj nič drugega. Sistem je bil pač namenjen le hekerjem. Središče pozornosti je veljalo razvoju jedra - uporabniška podpora, dokumentacija in distribucija še niso bili v načrtu. Še dandanes skupnost Linuxa obravnava ta vprašanja kot sekundarna glede na ,,pravo programiranje`` - razvoj jedra.

Kot je Linus napisal v comp.os.minix:

,,Ali hrepenite po časih sistema Minix-1.1, ko so bili možje še možje in so si sami pisali gonilnike naprav? Ste brez prijetnega projekta in umirate od želje, da si polomite zobe na OS, ki ga bi radi oblikovali po svojih potrebah? Ste razočarani, kadar v Minixu vse deluje? Nič več neprespanih noči, da pripravite moden program k delovanju? Potem je morda to sporočilo ravno za vas.

Kot sem že omenil pred mesecem, delam na prosti različici Minixu podobnega sistema za računalnike AT-386. Moj sistem je končno dosegel stopnjo, ko je lahko celo uporaben (čeprav morda tudi ni, odvisno od tega, kaj hočete), in sem pripravljen objaviti izvorno kodo za širšo distribucijo. Je le različica 0.02... toda pod njim sem uspešno pognal bash, gcc, gnu-make, gnu-sed, compress, itd.``

Po različici 0.03 je Linus poskočil na številko različice 0.10, saj je več ljudi začenjalo sodelovati pri delu na sistemu. Po nekaj nadaljnjih revizijah je Linus marca 1992 povečal številko različice na 0.95, da bi ponazoril svoja pričakovanja, da bo sistem kmalu pripravljen na ,,uradno`` izdajo. (V splošnem se programju ne priredi številka 1.0, dokler ni teoretično popolno in brez hroščev.) Skoraj leto in pol zatem, konec decembra 1993, je bilo jedro Linuxa še vedno na različici 0.99.pl14 - asimptotično se je bližalo 1.0. V času, ko to pišemo, ima trenutno stabilno jedro številko različice 2.2, stopnja popravka 2, razvija pa se različica 2.2.3.

Večina pomembnejših prostih paketov programja za Unix je bila prenešena na Linux, dostopno pa je tudi komercialno programje. Podprte je vse več strojne opreme kot v prvotnih različicah jedra. Mnogo ljudi je izvajalo teste hitrosti Linuxa na sistemih 80486 in ugotovilo, da so primerljivi z delovnimi postajami srednjega razreda podjetij Sun Microsystems in Digital Equipment Corporation. Kdo bi si mislil, da bo ta ,,mali`` klon Unixa kdaj zrasel in zasedel celoten svet osebnega računalništva?

1.3 Odlike sistema

Linux podpira lastnosti, ki jih najdete tudi v drugih izvedbah Unixa, ima pa še veliko takšnih, ki jih drugje ne najdete. V tem razdelku bomo naredili kratek izlet v lastnosti jedra sistema Linux.

Linux je popolnoma večopravilen, večuporabniški operacijski sistem, kot so tudi vse druge različice Unixa. To pomeni, da se lahko hkrati prijavi na en sam stroj tudi več uporabnikov in lahko hkrati izvajajo več programov.

Sistem Linux je v veliki meri združljiv z različnimi standardi Unixa (kolikor Unix sploh ima standarde) na nivoju izvorne kode, vključno s standardi IEEE POSIX.1, Unix System V in Berkeley System Distribution Unix. Linux se je razvil s prenosljivostjo izvorne kode pred očmi in zlahka najdete odlike, ki so skupne različnim platformam. Večina na Internetu dostopnega, prostega programja za Unix se na Linuxu prevede ,,naravnost iz škatle``. Dodatno je dostopna in prosto razširljiva še vsa izvorna koda sistema Linux, vključno z jedrom, gonilniki naprav, knjižnicami, uporabniškimi programi in razvojnimi orodji.

Druge posebne notranje odlike Linuxa vključujejo kontrolo opravil POSIX (uporabljajo jih ukazne lupine, kot sta csh in bash), psevdoterminale (naprave pty) in podporo nacionalnim ali prirejenim gonilnikom tipkovnice, ki se lahko nalagajo dinamično. Linux podpira navidezne konzole, ki vam omogočajo preklapljanje med prijavnimi sejami na isti sistemski konzoli. Uporabnikom programa screen se bodo zdele navidezne konzole Linuxa že znane.

Jedro lahko emulira ukaze koprocesorja 387 in sistemi brez matematičnega koprocesorja lahko poganjajo programe, ki potrebujejo matematiko plavajoče vejice.

Linux podpira različne datotečne sisteme za hrambo podatkov, kot je datotečni sistem ext2, razvit posebej za Linux. Podprti so tudi datotečni sistemi sistemov Xenix in UNIX System V, kot tudi datotečni sistemi Microsoft MS-DOS in Windows 95 VFAT na trdem disku ali disketi. Podprt je standardni datotečni sistem ISO 9660 za CD-ROM. Več o datotečnih sistemih bomo spregovorili v poglavjih 2 in 4.

Linux ponuja popolno izvedbo programja za omrežja TCP/IP. Ta vključuje gonilnike naprav za mnogo popularnih mrežnih kartic, SLIP (Serial Line Internet Protocol) in PPP (Point-to-Point Protocol), ki poskrbita za dostop do omrežja TCP/IP po serijski zvezi, ter PLIP (Parallel Line Internet Protocol) in NFS (Network File System). Podprt je tudi popoln nabor odjemalcev in strežnikov TCP/IP, vključno s FTP, telnet, NNTP in SMTP. Več o omrežnih zadevah bomo povedali v poglavju 6.

Jedro Linuxa je zasnovano tako, da uporablja lastnosti zaščitenega načina procesorjev Intel 80386 ali boljših. Linux posebej uporablja vzorec upravljanja pomnilnika z deskriptorji v zaščitenem načinu in druge napredne lastnosti. Kdor je seznanjen s programiranjem 80386, ve, da je bil ta čip zasnovan za večopravilne sisteme, kot je Unix. Linux izkorišča to funkcionalnost.

Jedro podpira nalaganje strani izvedljivih datotek na zahtevo. Z diska se v pomnilnik preberejo le tisti deli programa, ki se zares uporabljajo. Izvedljive datoteke si delijo tudi strani, ki se prekopirajo ob pisanju. Če hkrati teče več izvodov programa, si fizičen pomnilnik delijo, kar zmanjša splošno porabo.

Linux podpira ostranjevanje na disk in s tem povečuje količino dostopnega pomnilnika. Disku lahko priredite do en gigabajt izmenjalnega prostora1.1 - swapa - do 8 particij, od katerih ima vsaka po 128 megabajtov. Ko sistem potrebuje več fizičnega pomnilnika, preseli nedejavne strani iz pomnilnika na disk in vam s tem omogoči poganjanje večjih aplikacij in podporo več uporabnikom. Vendar izmenjevanje podatkov na disk ni nadomestek za fizični RAM, ki je mnogo hitrejši.

Jedro Linuxa vsebuje izvedbo skupnega pomnilniškega prostora za uporabniške programe in diskovni predpomnilnik. Ves prosti pomnilnik se uporablja za predpomnilnik, ki se ob poganjanju velikih programov zmanjša.

Izvedljive datoteke uporabljajo dinamično povezane deljene knjižnice: kodo iz ene same knjižnice na disku. To je podobno mehanizmu deljenih knjižnic, ki ga uporablja SunOS. Izvedljive datoteke tako porabijo manj prostora na disku, predvsem tiste, ki uporabljajo veliko knjižničnih funkcij. Obstajajo tudi statično povezane knjižnice za objektno razhroščevanje in vzdrževanje ,,samostojnih`` binarnih datotek, kadar dinamične knjižnice niso nameščene. Knjižnice se dinamično povezujejo med tekom in programer lahko uporablja svoje knjižnične podprograme namesto standardnih knjižničnih.

Jedro izdeluje posmrtne ostanke procesov (angl. core dumps) za lažje razhroščevanje sesutih programov. Posmrtni ostanek je izvedljiva datoteka, povezana s podporo razhroščevalniku, ki razvijalcu pomaga ugotoviti, zakaj se je program sesul.

1.4 Programske odlike

Na Linux so bili preneseni resnično vsi pripomočki, ki jih lahko pričakujete v standardni izvedbi Unixa, vključno z osnovnimi ukazi, kot so ls, awk, tr, sed, bc in more. Domače delovno okolje drugih sistemov Unix je prenešeno tudi v Linux. Vključeni so vsi standardni ukazi in pripomočki. (Novi uporabniki Unixa ali Linuxa bi morali pogledati poglavje 3 za uvod v osnovne ukaze Unixa.)

Na razpolago je mnogo urejevalnikov besedil, vključno z urejevalniki vi, ex, pico, jove, joe in GNU Emacs, in različic, kot je XEmacs, ki razširja zmožnosti sistema X Window System. Urejevalnik besedil, ki ste ga najbolj navajeni uporabljati, je verjetno prenesen tudi na Linux.

Izbira navadnega urejevalnika besedil je zanimiva. Veliko uporabnikov Unixa ima raje ,,preproste`` urejevalnike, kakršen je vi. (Avtor izvirnika je napisal to knjigo z vi.) A vi ima zaradi svoje starosti precej omejitev in sodobni urejevalniki, kot je Emacs, so vse bolj priljubljeni. (Slovenski prevajalec te knjige je uporabil Emacs.) Emacs podpira popoln jezik in interpreter na Lispu temelječih makro ukazov, močno skladnjo ukazov in druge razširitve. Obstajajo paketi makro ukazov za emacs, ki vam omogočajo branje elektronske pošte in novic, urejanje vsebine imenikov in celo sodelovanje v psihoterapevtskih seansah umetne inteligence (nepogrešljivo za hekerje Linuxa pod stresom).

Večina osnovnih pripomočkov Linuxa spada med programje GNU. Pripomočki GNU podpirajo napredne odlike, ki jih ne najdete v standardnih različicah programov za BSD ali UNIX System V. Na primer, GNU-jev klon vi, elvis, vključuje strukturiran makro jezik, ki se razlikuje od prvotne izvedbe. Pripomočki GNU pa vendarle nameravajo ostati združljivi s svojimi ekvivalenti v BSD in System V. Mnogo ljudi ima različice GNU za boljše od originalov.

Ukazna lupina (angl. shell) je program, ki bere in izvaja uporabnikove ukaze. Mnoge ukazne lupine ponujajo še dodatne lastnosti, kot so nadzor opravil, upravljanje več hkratnih procesov, preusmeritev vhoda in izhoda ter ukazni jezik za pisanje lupinskih skriptov. Lupinski skript je program v ukaznem jeziku lupine in je analogna paketni datoteki (angl. batch) v MS-DOS-u.

Za Linux je na voljo veliko tipov ukaznih lupin. Najpomembnejša razlika med lupinami je ukazni jezik. Na primer, lupina C SHell (csh) uporablja ukazni jezik, podoben programskemu jeziku C. Klasična Bournova lupina Bourne SHell sh uporablja drug ukazni jezik. Izbira ukazne lupine pogosto temelji na ukaznem jeziku, ki ga ponuja, in v veliki meri določa kakovost vašega delovnega okolja v Linuxu.

Ukazna lupina GNU Bourne Again SHell (bash) je različica Bournove ukazne lupine in ima veliko naprednih odlik, kot so nadzor opravil, zgodovina ukazov, dopolnitev imen ukazov in datotek, emacs-u podoben vmesnik za urejanje ukazne vrstice ter druge zmogljive razširitve standardnega jezika Bourne Shell. Druga priljubljena lupina je tcsh, različica C-jevske lupine csh z napredno funkcionalnostjo, podobno tisti v bash. Ostale lupine vključujejo zsh, malo ukazno lupino, podobno Bournovi; Kornovo ukazno lupino (ksh); BSD-jevsko ash; in rc, ukazno lupino Plan 9.

Če vaš sistem uporabljate le vi in boste venomer uporabljali vi in bash kot svoj urejevalnik besedil in ukazno lupino, ni nobenega razloga za namestitev drugih urejevalnikov besedil ali ukaznih lupin. Pristop ,,naredi si sam`` prevladuje med mnogimi hekerji in uporabniki Linuxa.

1.4.1 Urejanje in obdelava besedil

Skoraj vsak uporabnik računalnika potrebuje postopek za pripravo spisov. V svetu osebnih računalnikov je standard urejanje besedil: urejanje in upravljanje besedila v okolju ,,kar vidiš, to dobiš`` (angl. What You See Is What You Get, WYSIWYG) in tiskanje besedila skupaj s slikami, tabelami in okraski.

V svetu Unixa so dostopni komercialni urejevalniki besedil podjetij Corel, Applix in Star Division, toda pogostejše je stavljenje besedil, kar je precej drugačna stvar. V sistemih za urejanje besedil je besedilo vnešeno v jeziku za opis strani, ki pove, kako naj bo besedilo oblikovano. Namesto vnosa besedila v posebnem okolju za urejanje besedil lahko spremenite besedilo v kateremkoli urejevalniku, kot sta vi ali Emacs. Ko končate z vnosom izvornega besedila (v stavnem jeziku), poseben program pretvori izvorno kodo v obliko, primerno za tiskanje. To je nekako analogno programiranju v jeziku, kot je C, in ,,prevajanju`` spisa v obliko za izpis.

Za Linux je na voljo veliko stavnih sistemov. Eden od njih je groff, GNU-jevska različica klasičnega stavnika besedil troff, izvorno razvitega v Bell Labs in še vedno uporabljanega na mnogih sistemih Unix po vsem svetu. Drug sodoben sistem za stavljenje besedil je TeX, ki ga je razvil Donald Knuth, znan s področja teoretičnega računalništva. Na voljo so tudi dialekti TeX-a, kot je LaTeX.

Stavniki besedil, kot sta TeX in groff, se razlikujejo predvsem v skladnji svojih jezikov za oblikovanje besedila. Izbira enega oblikovalnega sistema izmed ostalih temelji na dostopnosti pripomočkov, ki zadovoljujejo vaše potrebe, kot tudi na osebnem okusu.

Za mnoge ljudi je oblikovalni jezik groff-a malce obskuren in se jim zdi TeX lažje berljiv. Vendar groff naredi izhod v obliki ASCII, ki ga zlahka pregledamo na terminalu, medtem ko je TeX predvsem namenjen izdelavi izhoda za tiskalniško napravo. Če želimo iz sestavkov v TeX-u izdelati izhod ASCII ali pretvoriti vhod TeX-a v obliko za groff, potrebujemo različne dodatne programe.

Še en takšen program je texinfo, razširitev TeX-a, ki so jo razvili pri Free Software Foundation in se uporablja za programsko dokumentacijo. texinfo lahko izdela natisnjen izhod ali hipertekstni sestavek, imenovan ,,Info``, iz iste izvorne datoteke. Datoteke Info so glavna oblika dokumentacije, ki jo uporablja programje GNU (na primer emacs).

Stavniki besedil se v računalniški srenji na široko uporabljajo za pisanje razprav, disertacij, časopisnih člankov in knjig. (Ta knjiga je napisana z LaTeX-om.) Ker izvorni spis ni shranjen v obskurnem zapisu, ki ga lahko bere le en urejevalnik besedil, lahko programerji pišejo čitalnike in prevajalnike za oblikovalni jezik in s tem razširjajo sistem.

Kako je videti oblikovalni jezik? V splošnem je oblikovana izvorna datoteka sestavljena predvsem iz samega besedila s krmilnimi kodami za doseganje učinkov, kot so spremembe pisave ali robov in oblikovanje seznamov.

Preglejte naslednje besedilo:

Gospod Torvalds:

Zelo smo vznemirjeni zaradi vaših trenutnih načrtov za izvedbo post-hipnotičnih sugestij s kodo terminalskega gonilnika v Linuxu. Tako čutimo iz treh razlogov:

1.
Podtikanje subliminalnih sporočil v gonilnik terminala ni le nemoralno, je izguba časa;
2.
Dokazano je, da so ,,post-hipnotične sugestije`` neučinkovite, če jih izvajamo na nič hudega slutečih hekerjih Unixa;
3.
Že zdaj smo kot varnostno sredstvo implementirali visoko-napetostne električne šoke v izvorni kodi za login.
Upamo, da boste še enkrat premislili.

To besedilo se lahko takole zapiše v opisnem jeziku za LaTeX:

\begin{quote}
Gospod Torvalds: 

Zelo smo vznemirjeni zaradi vaših trenutnih načrtov za izvedbo
\emph{post-hipnotičnih sugestij} s kodo terminalskega gonilnika
v \textbf{Linuxu}.  Tako čutimo iz treh razlogov:
\begin{enumerate}
\item Podtikanje subliminalnih sporočil v gonilnik terminala
      ni le nemoralno, je izguba časa;
\item Dokazano je, da so ,,post-hipnotične sugestije``
      neučinkovite, če jih izvajamo na nič hudega slutečih
      hekerjih Unixa;
\item Že zdaj smo kot varnostno sredstvo implementirali
      visoko-napetostne električne šoke v izvorni kodi
      za \texttt{login}.
\end{enumerate}
Upamo, da boste še enkrat premislili.
\end{quote}

Avtor vnese besedilo s katerimkoli urejevalnikom navadnega besedila in ustvari oblikovan izhod s procesiranjem izvornega besedila z LaTeX-om. Na prvi pogled se morda zdi stavni jezik skrivnosten, vendar ga je v resnici zelo lahko razumeti. Uporaba sistema za stavljenje besedil že ob pisanju vsiljuje tipografske standarde. Vsi oštevilčeni seznami v spisu bodo izgledali enako, razen če avtor spremeni definicijo oštevilčenega seznama. Cilj takšne filozofije je, da se avtor osredotoči na samo besedilo, ne na podrobnosti dogovorov o stavljenju.

Ko se piše v urejevalniku besedil, se v splošnem ne razmišlja o tem, kakšno bo videti natisnjeno besedilo. Pisec se nauči končni izgled predočiti v mislih s pomočjo formatirnih ukazov v izvornem besedilu.

Urejevalniki besedil WYSIWYG so privlačni zaradi več razlogov. Ponujajo lahko praktičen vizualni vmesnik za urejanje spisov. Toda ta vmesnik je omejen na aspekte videza besedila, ki so dostopni uporabniku. Na primer, veliko urejevalnikov besedil še vedno ponuja poseben formatirni jezik za vključevanje zapletenih izrazov, na primer matematičnih formul. To je stavljenje besedila, čeprav v manjšem obsegu.

Nezanemarljiva prednost stavljenja besedil je, da lahko določite natančno tisto obliko, ki jo potrebujete. V veliko primerih zahteva stavni sistem naknadno določitev oblike. Stavni sistemi tudi omogočajo, da se izvorno besedilo uredi s katerimkoli tekstovnim urejevalnikom, namesto da se zanašajo na formatne kode, ki so skrite pod neprozornim uporabniškim vmesnikom urejevalnika besedil. Nadalje, izvorno besedilo se zlahka pretvori v druge oblike zapisa. Cena za to prilagodljivost in moč stavnih sistemov je pomanjkanje oblikovanja WYSIWYG.

Nekateri programi vam pred tiskanjem omogočajo predogled oblikovanega spisa na grafičnem zaslonu. Program xdvi pod okni X prikaže ,,od naprave neodvisno`` datoteko, ki jo naredi sistem TeX. Aplikacije kot sta xfig in gimp ponujajo grafične vmesnike WYSIWYG za risanje slik in diagramov, ki se lahko pretvorijo v opisno obliko, primerno za vključitev v vaš sestavek.

Stavniki besedil kot troff so se pojavili dosti prej kot urejevalniki besedil WYSIWYG. Mnogo ljudi ima še vedno raje njihovo vsestranskost in neodvisnost od grafičnega okolja.

Na voljo je veliko pripomočkov, povezanih s stavljenjem besedil. Zmogljivi sistem METAFONT, ki se uporablja za oblikovanje pisav za TeX, je vključen v izvedbo TeX-a za Linux. Drugi programi vključujejo ispell, interaktivni črkovalnik in popravljalnik; makeindex, ki generira stvarna kazala v LaTeX-ovih spisih; in veliko drugih paketov makrojev za TeX in groff, ki oblikujejo raznovrstna tehnična in matematična besedila. Na voljo so tudi programi, ki prevajajo izvorno kodo za TeX ali groff v veliko število drugih formatov.

Novinec pri stavljenju besedil je YODL, ki ga je napisal Karel Kubat. YODL je lahko naučljivi jezik s filtri za izdelavo različnih izhodnih formatov, kot so LaTeX, SGML in HTML.

1.4.2 Programski jeziki in pripomočki

Linux ponuja popolno programsko okolje Unixa, vključno z vsemi standardnimi knjižnicami, orodji za programiranje, prevajalniki in razhroščevalniki, ki bi jih pričakovali na drugih sistemih Unix.

Podprti so standardi, kot je POSIX.1, kar omogoča, da se programje, napisano za Linux, zlahka prenaša na druge sisteme. Poklicni programerji na Unixu in upravniki sistemov uporabljajo Linux za razvoj programja doma in potem prenesejo programje na službene sisteme Unix. Ne le, da to prihrani dosti časa in denarja, pač pa vam tudi omogoča delati v udobju lastnega doma. (Eden od avtorjev uporablja doma svoj sistem za razvoj in preizkušanje aplikacij za X Window System; te aplikacije se lahko neposredno prevedejo na delovnih postajah drugje.) Študenti računalništva se učijo programiranja v Unixu in raziskujejo druge vidike svojega sistema, kot je arhitektura jedra.

Z Linuxom imate dostop do popolnega nabora knjižnic in programskih pripomočkov ter popolno izvorno kodo jedra in programskih knjižnic.

V svetu programske opreme za Unix se sistemi in aplikacije pogosto programirajo v jeziku C ali C++. Standardni prevajalnik za C in C++ je v Linuxu GNU gcc, napredni, sodobni prevajalnik, ki podpira C++, vključno z lastnostmi AT&T 3.0, kot tudi Objective-C, še eno objektno usmerjeno narečje jezika C.

Poleg jezikov C in C++ so bili na Linux preneseni tudi drugi prevajalniški in interpreterski programski jeziki, kot so Smalltalk, FORTRAN, Java, Pascal, LISP, Scheme in Ada (če ste tako mazohistični, da programirate v Adi, vam tega nikakor ne bomo preprečili). Dodatno so na voljo različni zbirniki za pisanje kode zaščitenega načina procesorja 80386 ter tudi favoriti hekanja v Unixu, kot sta Perl (skriptni jezik, ki potolče vse druge skriptne jezike) in Tcl/Tk (ukazni lupini podoben sistem za obdelovanje ukazov, ki ima podporo za razvoj preprostih aplikacij za X Window System).

Napredni razhroščevalnik gdb lahko izvaja program v izvorni kodi vrstico za vrstico ali preiskuje njegove posmrtne ostanke, da bi ugotovili vzrok sesutja. Pripomoček za optimalizacijo gprof ponuja statistiko delovanja vašega programa in vam pove, kje ta porabi največ svojega izvajalnega časa. Kot smo že omenili zgoraj, urejevalnik besedil emacs ponuja interaktivno urejanje in prevajalska okolja za različne programske jezike. Druga orodja vključujejo GNU make in imake, ki upravljata prevajanje velikih aplikacij, in RCS, sistem za zaklepanje izvorne kode in nadzor nad njenimi različicami.

Končno, Linux podpira dinamično povezane, deljene knjižnice (ang. Dynamically Linked Libraries, DLL), česar posledica so precej manjše binarne datoteke. Skupna koda podprogramov se poveže ob teku programa. Ti DLL-ji vam omogočajo tudi uporabo lastnih funkcij namesto vgrajenih. Na primer, če želite napisati svojo lastno različico knjižnične funkcije malloc(), bo povezovalnik uporabil vašo novo funkcijo namesto tiste iz standardne knjižnice.

1.4.3 Uvod v sistem X Window System

Grafični sistem X Window System ali preprosto X je standardni grafični uporabniški vmesnik (angl. graphical user interface, GUI) za stroje z Unixom; zmogljivo okolje, ki podpira mnogo aplikacij. Pri uporabi sistema X Window imate lahko na zaslonu hkrati več terminalskih oken, vsako lahko vsebuje različno prijavno sejo. Pogosto se z X uporablja tudi kazalna naprava, na primer miška, vendar ta ni nujno potrebna.

Posebej za X je bilo napisanih mnogo aplikacij, vključno z igrami, grafičnimi in programerskimi pripomočki in dokumentacijskimi orodji. Linux in X naredita iz vašega sistema pravo delovno postajo. Z vmreženjem TCP/IP lahko vaš stroj z Linuxom prikazuje aplikacije za X, ki v resnici tečejo na kakšnih drugih strojih.

X Window System je bil prvotno razvit na Massachusetts Institute of Technology in se lahko prosto razširja. Veliko komercialnih proizvajalcev je razširjalo lastne izboljšave originalnega sistema X Window. Različica X, ki teče na Linuxu, se imenuje XFree86, prenos X11R6 na računalnike s procesorji Intel (80x86), ki se lahko prosto razširja. XFree86 podpira širok razpon video opreme, vključno z grafičnimi karticami VGA, Super VGA in grafičnimi pospeševalniki. XFree86 je popolna distribucija programja X Windows System in vsebuje sam strežnik X, veliko aplikacij in pripomočkov, programskih knjižnic in dokumentacije.

Standardne aplikacije za X vključujejo xterm, terminalski emulator, ki se ga uporablja za poganjanje večine tekstovnih aplikacij v oknu, xdm, ki ureja prijave v sistem, xclock, preprosto številčnico ure, xman, bralnik strani referenčnega priročnika za X, in xmore. Aplikacij za X, ki tečejo v Linuxu, je preveč, da bi jih tukaj omenjali, a med njimi so programi za urejanje preglednic, urejevalniki besedil, grafični programi, spletni brkljalniki, kot je Netscape Navigator itd. Mnogo drugih aplikacij je dostopnih posebej. Teoretično bi se morala vsaka aplikacija, napisana za X, povsem brez napak prevesti za Linux.

Vmesnik sistema X Window v veliki meri nadzoruje okenski upravljalnik. Ta uporabniško prijazen program je med drugim zadolžen za postavljanje oken, uporabniški vmesnik za spremembo njihovih razsežnosti in položaja, spremembo oken v ikone in videz okenskih okvirjev. XFree86 vključuje twm, klasični okenski upravljalnik z MIT, dostopni pa so tudi napredni okenski upravljalniki, kot je Open Look Virtual Window Manager (olvwm). Med mnogimi uporabniki Linuxa je priljubljen fvwm - majhen okenski upravljalnik, ki potrebuje manj kot polovico pomnilnika, potrebnega za tek twm. Ponuja trirazsežen videz oken in navidezno namizje. Uporabnik premakne miško do roba zaslona, namizje pa se pomakne, kot da bi bilo precej večje, kot je v resnici. Upravljalnik fvwm je zelo nastavljiv in dovoljuje dostop do svojih funkcij prek tipkovnice ali miške. Veliko distribucij Linuxa uporablja fvwm kot standardni okenski upravljalnik. Različica fvwm-ja, imenovana fvwm95-2, ponuja podoben videz in občutek kot pri Microsoft Windows 95.

Distribucija XFree86 vključuje programske knjižnice za zvite programerje, ki želijo razvijati aplikacije za X. Podprti so nabori gradnikov kot so Athena, Open Look in Xaw3D. Vključene so vse standardne pisave, rastrske slike, strani referenčnega priročnika in dokumentacija. Podprt je tudi PEX, programski vmesnik za trirazsežno grafiko.

Veliko programerjev pri razvoju aplikacij za X uporablja lastniški nabor gradnikov Motif. Precej prodajalcev prodaja enouporabniške ali večuporabniške licence za binarne različice Motifa. Ker je sam Motif relativno drag, ga imajo le maloštevilni uporabniki Linuxa. Pač pa se binarne datoteke, statično povezane s podprogrami Motifa, lahko prosto razširjajo. Če napišete program z uporabo Motifa, lahko priskrbite binarno datoteko, tako da ga bodo lahko uporabljali tudi uporabniki, ki sicer nimajo knjižnic Motif.

Glavno opozorilo pri uporabi sistema X Window se nanaša na njegove strojne potrebe. Procesor 80386 s 4 megabajti RAM-a bo zadostoval za poganjanje X, a za udobno uporabo je potrebnih 16 megabajtov fizičnega RAM-a ali več. Dobro je imeti tudi hitrejši procesor, a pomembneje je imeti dovolj fizičnega RAM-a. Za res živahno zmogljivost videa vam dodatno priporočamo nabavo pospeševalne videokartice. Z Linuxom in XFree86 je bila že leta 1998 presežena ocena zmogljivosti 1.000.000 xstones. Z uporabo primerne strojne opreme boste ugotovili, da je tek X in Linuxa tako hiter ali celo hitrejši kot tek X na drugih delovnih postajah Unix.

V poglavju 5 razložimo, kako namestiti in uporabljati grafični sistem X na vašem stroju.

1.4.4 Uvod v vmreževanje

Bi radi komunicirali s svetom? Linux podpira dva osnovna omrežna protokola Unixa: TCP/IP in UUCP. TCP/IP (Transmission Control Protocol/Internet Protocol) je standard vmreževanja, ki omogoča sistemom po vsem svetu komuniciranje na enotnem omrežju, imenovanem Internet. Z Linuxom, TCP/IP in povezavo v Internet lahko komunicirate z uporabniki in stroji z elektronsko pošto, z novičarskimi skupinami Useneta in s prenosom datotek po FTP.

Večina omrežij za TCP/IP uporablja ethernet za fizičen prenos po lokalnem omrežju. Linux podpira mnoge priljubljene kartice za ethernet in vmesnike za osebne računalnike, vključno z adapterji pocket in PCMCIA Ethernet.

Ker pa vsi nimajo doma povezave prek etherneta, Linux podpira tudi protokola SLIP (Serial Line Internet Protocol) in PPP (Point-to-Point Protocol), ki ponujata dostop do Interneta z modemom. Veliko podjetij in univerz ponuja strežnike za SLIP in PPP. Pravzaprav lahko tudi vaš Linux postane strežnik za protokola SLIP ali PPP drugim sistemom, če le imate ethernetno povezavo in modem.

NFS (Network File System) omogoča vašemu sistemu brezšivno delitev datotečnih sistemov z drugimi stroji na omrežju. FTP (File Transfer Protocol) vam omogoča izmenjavo datotek z drugimi stroji. sendmail pošilja in sprejema elektronsko pošto po protokolu SMTP; C-News in INN sta nova sistema za izmenjavo novičarskih skupin po protokolu NNTP; in telnet, rlogin in rsh vam omogočajo prijavo in izvajanje ukazov na drugih strojih omrežja. Z ukazom finger izveste podatke o drugih uporabnikih Interneta.

Linux podpira povezovanje z Microsoft Windows s sistemom Samba1.2 in povezavo z Macintoshi po protokolih AppleTalk in LocalTalk. Vključena je tudi podpora Novellovemu protokolu IPX.

Za Linux je dostopen poln razpon poštnih in novičarskih bralnikov, vključno s programi elm, pine, rn, nn, in tin. Najsi bo vaš osebni okus tak ali drugačen, sistem z Linuxom lahko nastavite tako, da pošilja in sprejema elektronsko pošto in novice po celem svetu.

Sistem ponuja za Unix standarden vmesnik za programiranje vtičnic (angl. socket programming). Pravzaprav je mogoče vsak program, ki uporablja TCP/IP, prenesti na Linux. Tudi strežnik za X v Linuxu podpira TCP/IP, in aplikacije, ki tečejo na drugih sistemih, lahko uporabljajo zaslon vašega lokalnega sistema.

V poglavju 6 bomo obrazložili namestitev programja za TCP/IP, vključno s SLIP in PPP.

UUCP (UNIX-to-UNIX Copy) je starejši mehanizem prenosa datotek, elektronske pošte in elektronskih novic med stroji Unix. Nekoč so bili stroji UUCP povezani z modemom prek telefonskih linij, vendar lahko UUCP prenaša podatke tudi po omrežju TCP/IP. Če nimate dostopa do omrežja TCP/IP ali strežnika za SLIP ali PPP, lahko nastavite svoj sistem za pošiljanje in sprejem datotek in elektronske pošte z uporabo UUCP. Glejte poglavje 6 za več informacij.

1.4.5 Telekomunikacije in programje za BBS

Če imate modem, boste lahko komunicirali z drugimi stroji preko telekomunikacijskih paketov, dostopnih za Linux. Veliko ljudi uporablja telekomunikacijsko programje za dostop do elektronskih oglasnih desk (angl. Bulletin Board System, BBS), kot tudi do komercialnih storitev na zvezi, kot so Prodigy, CompuServe in America Online. Ljudje uporabljajo modeme za povezovanje s sistemi Unix v službi ali v šoli. Modemi lahko pošiljajo in sprejemajo fakse.

Priljubljen komunikacijski paket za Linux se imenuje seyon in ponuja prilagodljiv, ergonomičen vmesnik pod X z vgrajeno podporo za prenosna protokola Kermit in ZModem. Drugi telekomunikacijski programi vključujejo C-Kermit, pcomm in minicom. Ti so podobni komunikacijskim programom z drugih operacijskih sistemov in so precej enostavni za uporabo.

Če nimate dostopa do strežnika za SLIP ali PPP (glejte prejšnji razdelek), lahko uporabljate term za multipleksiranje vaše serijske linije. Program term vam omogoča odpiranje več kot ene prijavne seje po modemski povezavi. Omogoča vam preusmeritev odjemalnih povezav X na vaš lokalni strežnik X prek serijske linije. Drug programski paket, KA9Q, je izvedba vmesnika, podobnega SLIP-u.

Vzdrževanje BBS-a (angl. Bulletin Board System) je priljubljen konjiček in vir dohodka za veliko ljudi. Linux podpira širok spekter programja za BBS, večina od tega je zmogljivejša od tistega, dostopnega za druge operacijske sisteme. S telefonskim priključkom, modemom in Linuxom lahko spremenite vaš sistem v BBS in ponudite priključni dostop za uporabnike po vsem svetu. Programje za BBS v Linuxu vključuje paketa XBBS in UniBoard.

Večina programov za BBS zaklene uporabnika v sistem menujev, kjer so dostopne le nekatere funkcije in aplikacije. Alternativa dostopu do BBS-a je poln dostop do Unixa, ki omogoča uporabniku klic na vaš sistem in običajno prijavo. To zahteva precejšno mero vzdrževanja s strani upravitelja sistema, a ponujanje javnega dostopa do Unixa ni težko. Poleg vmreženosti s TCP/IP lahko naredite na vašem sistemu dostopno tudi elektronsko pošto in novice.

Če nimate dostopa do omrežja TCP/IP ali gostitelja UUCP, vam Linux omogoča komunikacijo z omrežji BBS-ov, kot je FidoNet, ki vam omogočajo izmenjavo elektronskih novic in pošte po telefonski liniji. Več podatkov o telekomunikacijah in programju za BBS v Linuxu lahko najdete v poglavju 6.

1.4.6 Svetovni splet

Omeniti velja, da Linux vključuje programje tako za spletne strežnike kot tudi za spletne brkljalnike. Najpogostejši strežnik je Apache. Na tisoče sistemov Linux na Internetu poganja Apache, vključno s strežnikom virov za Linux (Linux Resources), http://www.linuxresources.com/ in strežnikom Društva slovenskih uporabnikov Linuxa, http://www.lugos.si/.

Distribucije Linuxa vključujejo različne spletne brkljalnike, drugi brkljalniki pa se lahko vzamejo z Interneta. Dostopni brkljalniki vključujejo brkljalnike Lynx, Mosaic, Netscape, Arena in Amaya.

Linux ponuja popolno podporo programskemu jeziku Java in dodatkom CGI, Perl pa je sploh standardno orodje v programerskem sistemu Linuxa.

1.4.7 Povezljivost in MS-DOS

Obstajajo različni pripomočki za povezovanje z operacijskim sistemom MS-DOS. Najbolj znana aplikacija je MS-DOS Emulator, emulacija MS-DOS-a za Linux, ki vam omogoča poganjanje aplikacij za MS-DOS neposredno iz Linuxa. Čeprav sta Linux in MS-DOS popolnoma različna operacijska sistema, okolje zaščitenega načina 80386 omogoča dosovskim aplikacijam, da se obnašajo, kot da bi tekle v svojem domorodnem okolju 8086.

Emulator za MS-DOS se še vedno razvija, toda pod njim teče veliko popularnih aplikacij. Jasno je, da dosovske aplikacije, ki uporabljajo bizarne ali ezoterične lastnosti sistema, morda ne bodo nikoli podprte, to pa zaradi vrojenih omejitev vsakega emulatorja. Ne smete tudi pričakovati, da boste lahko poganjali programe, ki uporabljajo lastnosti zaščitenega načina 80386, kot je Microsoft Windows (v razširjenem načinu 386, se pravi).

Standardni dosovski ukazi in pripomočki, kot je PKZIP.EXE, delujejo pod emulatorji, kot tudi 4DOS, nadomestilo za COMMAND.COM, FoxPro 2.0, Harvard Graphics, MathCad, Stacker 3.1, Turbo Assembler, Turbo C/C++, Turbo Pascal, Microsoft Windows 3.0 (v realnem načinu) in WordPerfect 5.1.

Emulacija MS-DOS-a je mišljena predvsem kot ad-hoc rešitev za tiste, ki potrebujejo MS-DOS le za nekaj aplikacij, za vse ostalo pa uporabljajo Linux. Ni mišljeno, da bi bila to popolna izvedba MS-DOS-a. Seveda, če Emulator ne zadovolji vaših potreb, lahko vedno poženete MS-DOS na istem sistemu kot Linux. Z uporabo zagonskega nalagalnika LILO lahko ob zagonu določite, kateri operacijski sistem naj se zažene. Linux lahko sobiva tudi z drugimi operacijskimi sistemi kot je npr. OS/2.

Linux priskrbi brezšivni vmesnik za prenos datotek med Linuxom in MS-DOS-om. Pod Linuxom lahko priklopite particijo ali disketo za MS-DOS in dostopate do dosovskih datotek neposredno, kot pri katerikoli drugi datoteki.

Trenutno poteka razvoj emulatorja WINE - emulacije Microsoft Windows za sistem X Window pod Linuxom. Ko bo WINE nekoč končan, bodo lahko uporabniki poganjali aplikacije za MS-Windows neposredno iz Linuxa. To je podobno komercialnemu emulatorju Windows WABI podjetja Sun Microsystems, ki je dostopen tudi za Linux.

V razdelku 3.4 bomo govorili o dosovskih orodjih, ki so na voljo za Linux.

1.4.8 Druge aplikacije

Za Linux obstaja kopica raznovrstnih programov in pripomočkov, kot bi bilo tudi pričakovati za tako raznolik operacijski sistem. Primarno žarišče Linuxa je osebno računalništvo z Unixom, toda to ni edino področje, kjer blesti. Izbira poslovnega in znanstvenega programja se širi in proizvajalci komercialnega programja so začeli prispevati v rastoči bazen aplikacij za Linux.

Za Linux je dostopnih nekaj relacijskih zbirk, vključno z zbirkami podatkov Postgres, Oracle, Informix, Ingres in Mbase. To so polno zmogljive, profesionalne aplikacije zbirk podatkov tipa odjemnik/strežnik, podobne tistim, ki jih najdete na drugih platformah Unixa. Dostopnih je tudi precej komercialnih sistemov za baze podatkov.

Aplikacije znanstvenega računanja vključujejo FELT (analiza končnih elementov); gnuplot (risanje in analiziranje podatkov); Octave (paket za simbolno računanje, podoben kot MathLab); xspread (kalkulator preglednice); xfractint (prenos popularnega generatorja fraktalov Fractint na X) in xlispstat (statistika). Druge aplikacije vključujejo SPICE (načrtovanje in analiza električnih vezij) in Khoros (obdelava in vizualizacija slik in digitalnih signalov). Dostopni so komercialni paketi, kot so Maple, MathLab in Mathematica.

Na Linux je bilo prenesenih še mnogo več aplikacij. Če nikakor ne morete najti tega, kar potrebujete, lahko poskusite prenesti na Linux obstoječo aplikacijo s kakšne druge platforme. Kakršnokoli je že vaše področje, je prenos standardnih aplikacij z Unixa na Linux preprost. Popolno programsko okolje Unixa, ki ga ponuja Linux, je dovolj za osnovo vsake znanstvene aplikacije.

Linux ima tudi svoj delež iger. Te vključujejo klasične tekstovno usmerjene pustolovske igre, kot sta Nethack in Moria; MUD-e (angl. multi-user dungeons, večuporabniške pustolovščine, ki omogočajo večim uporabnikom stik v tekstovni avanturi), kot sta DikuMUD in TinyMUD; in nekaj iger za X, kot so xtetris, netrek in xboard, različica šahovskega programa gnuchess za X11. Tudi krvava arkadna igra Doom je bila prenesena na Linux.

Za avdiofile podpira Linux različne zvočne kartice in ustrezno programje, kot so CDplayer, ki spremeni pogon CD-ROM v igralnik glasbenih CD-jev, sekvencerji in urejevalniki MIDI, s katerimi lahko skladate glasbo za igranje na sintetizatorju ali drugem glasbilu, ki ga nadzoruje MIDI, in zvočni urejevalniki za digitalizirane zvoke.

Ne morete najti aplikacije, ki jo iščete? Zemljevid programja za Linux (Linux Software Map, LSM), ki je opisan v dodatku A, našteva programske pakete, napisane ali prenesene na Linux. Drugi način, da najdete aplikacije za Linux, je, da pogledate v datoteke INDEX, ki ležijo na mestih za FTP Linuxa, če imate dostop do Interneta.

Večina prosto razširljivega programja za Unix se bo prevedla na Linuxu kvečjemu z malimi težavami. Če odpove vse drugo, lahko sami napišete aplikacijo. Če iščete komercialno aplikacijo, je morda na voljo njen prosti ,,klon``. Lahko pa tudi spodbudite programsko podjetje, da razmisli o izdaji binarne različice za Linux. Več posameznikov se je že obrnilo na programska podjetja in jih prosilo, če prenesejo svoje aplikacije na Linux, in pri tem doseglo različne stopnje uspeha.

1.5 Vprašanja pravic razširjanja

Linux je pokrit s tem, kar je znano kot Splošno dovoljenje GNU (angl. GNU General Public License), ali kratko GPL. GPL je delo projekta GNU ustanove Free Software Foundation in določa več pridržkov za razširjanje in spreminjanje prostega programja. Prosto se, v tem smislu, nanaša na razširjanje, ne na stroške. GPL je bila vedno predmet napačnih interpretacij, zato upamo, da vam bo ta povzetek pomagal razumeti obseg in cilje GPL in njenega učinka na Linux. Popoln izvod GPL je natisnjen v dodatku D.

Prvotno je Linus Torvalds izdal Linux pod licenco, restriktivnejšo od GPL. Dovoljevala je prosto razširjanje in spreminjanje programja, vendar je prepovedovala vsako izmenjavo denarja za njegovo razširjanje in uporabo. Po drugi strani GPL omogoča ljudem prodajanje in ustvarjanje dobička od prostega programja, vendar jim ne dovoljuje komu drugemu odvzeti pravice, da bi to programje razširjal na kakršenkoli način.

Najprej je treba pojasniti, da prosto programje, ki ga pokriva GPL, ni v javni lasti. Programje v javni lasti po svoji definiciji nima zaščite pravic razširjanja in je dobesedno last vseh. Programje, ki ga pokriva GPL, pa pravno zaščiti njegov avtor. Programje varujejo mednarodni standardni zakoni o razširjanju in avtor je pravno definiran. GPL poskrbi za programje, ki se, pravno gledano, lahko razširja, a ni v javni lasti.

Programje, zaščiteno z GPL, tudi ni preizkusno programje (angl. shareware). V splošnem je preizkusno programje last avtorja, ki ga je zaščitil in zahteva, da mu uporabniki plačajo določen znesek za njegovo uporabo. Programje, ki ga pokriva GPL, lahko razširjate in uporabljate zastonj.

GPL tudi dovoljuje ljudem vzeti, spremeniti in razširjati njihove lastne različice programja. Vendar morajo biti vsa dela, izpeljana iz programja, ki je zaščiteno z GPL, tudi pokrita z GPL. Z drugimi besedami, podjetje ne more vzeti Linuxa, ga spremeniti in prodajati pod bolj omejujočo licenco. Če je programje izpeljano iz Linuxa, mora biti pokrito z GPL.

GPL dovoljuje brezplačno razširjanje in uporabo svojega programja. Dovoljuje tudi, da oseba ali organizacija programje, zaščiteno z GPL, razširja proti plačilu ali ustvarja celo dobiček iz njegove prodaje in distribucije. Vendar distributer programja GPL ne more vzeti teh pravic kupcu. Če kupite programje z GPL od nekoga tretjega, lahko to programje razširjate zastonj ali pa ga sami prodajate.

To se morda sliši protislovno. Zakaj prodajati programje, če pa vam GPL omogoča, da ga dobite zastonj? Denimo, da se podjetje odloči, da bo zbralo veliko količino prostega programja na CD-ROM-u in ga razširjalo. To podjetje bo moralo zaračunati stroške izdelave in distribucije CD-ROM-ov in se lahko celo odloči, da bo s prodajo tega programja kovalo dobiček. To je v GPL dovoljeno.

Organizacije, ki prodajajo prosto programje, morajo upoštevati omejitve, ki jih določa GPL. Ne morejo omejiti pravic uporabnikom, ki kupijo programje. Če kupite CD-ROM s programjem, zaščitenim z GPL, lahko kopirate in razširjate CD-ROM zastonj ali ga sami preprodajate. Distributerji morajo jasno razložiti uporabnikom, da je programje pokrito z GPL. Distributerji morajo tudi poskrbeti, zastonj, za popolno izvorno kodo razširjanega programja. To omogoča vsakomur, ki kupi programje z GPL, spreminjanje tega programja.

Dovoljenje podjetju za distribucijo in prodajo prostega programja je dobra stvar. Vsi nimajo dostopa do Interneta in možnosti dobivanja tega programja zastonj. Veliko organizacij prodaja Linux na disketah, traku ali CD-ROM-u, po poštnem naročilu, in ustvarja dobiček od prodaje. Razvijalci Linuxa morda nikoli ne vidijo tega dobička; to je pač dogovor med razvijalci in distributerji, ko se programje licencira z GPL. Z drugimi besedami, Linus Torvalds je vedel, da bodo podjetja morda želela prodajati Linux in da od njihovega dobička morda ne bo videl niti prebite pare.

V svetu prostega programja glavno vprašanje ni denar. Cilj prostega programja je vedno razvoj in razširjanje fantastičnega programja in dovoljenje vsakomur, da ga dobi in uporablja. V naslednjem razdelku bomo spregovorili o tem, kako se to odraža pri razvoju Linuxa.

1.6 Zasnova in filozofija Linuxa

Novi uporabniki imajo pogosto napačne predstave in pričakovanja o Linuxu. Pomembno je razumeti filozofijo in zasnovo Linuxa, če ga želite uporabljati učinkovito. Začeli bomo z opisom, kako Linux ni zasnovan.

V komercialnih razvijalskih hišah Unixa se celoten sistem razvija s strogo politiko zagotavljanja kvalitete, ki izkorišča sisteme za nadzor izvorne kode in popravkov, dokumentacijo, in postopke za poročilo in odpravo hroščev. Razvijalci najbrž ne bodo dodajali lastnosti ali spreminjali poglavitnih delov kode zaradi muhavosti. Spremembo morajo upravičiti kot odgovor na poročilo o hrošču in zaporedno ,,prijaviti`` vse spremembe nadzornemu sistemu izvorne kode, tako da lahko po potrebi razveljavijo spremembe. Vsakemu razvijalcu je dodeljen eden ali več delov kode sistema in le ta razvijalec lahko spreminja te dele kode, ko je ta ,,v delu`` (se pravi, ko je koda pod njegovim nadzorom).

V tej organizacijski shemi oddelek za zagotovitev kakovosti izvaja temeljite preizkuse vsake nove različice operacijskega sistema in poroča o hroščih. Razvijalec odpravi odkrite hrošče. Pred izdajo naslednje različice se uporablja zapleten sistem statistične analize, ki zagotavlja, da je določen odstotek hroščev odpravljen in da operacijski sistem v celoti zadošča določenim kriterijem za izdajo.

Programsko podjetje mora imeti seveda kvantitativni dokaz, da je naslednja različica operacijskega sistema pripravljena za prodajo; odtod zbiranje podatkov in statistično analiziranje obnašanja operacijskega sistema. Razvoj komercialnega sistema Unix je ogromen posel, pogosto dovolj velik, da zaposli na stotine, če ne tisoče, programerjev, preizkuševalcev, tehničnih piscev in administrativnega osebja. Seveda noben komercialni proizvajalec Unixa ni povsem enak drugemu, a to je splošna slika.

Model programskega razvoja za Linux zavrača celoten koncept organiziranega razvoja, nadzornih sistemov izvorne kode, strukturiranega poročanja o hroščih in statistične kontrole kvalitete. Linux je, in bo verjetno vedno ostal, operacijski sistem hekerjev. (Z izrazom heker (angl. hacker) mislimo mrzlično vnetega programerja, ki uživa v izkoriščanju računalnikov in z njimi počne zanimive stvari. To je prvotna definicija tega izraza, za razliko od drugega pomena hekerja kot računalniškega falota ali kriminalca.)

Za razvoj Linuxa ni odgovorna nobena organizacija. Vsakdo z dovolj znanja ima možnost pomagati pri razvoju in razhroščevanju napak jedra, prenosu novega programja, pisanju dokumentacije in pomoči novim uporabnikom. Skupnost Linuxa najpogosteje komunicira prek elektronskih spiskov in novičarskih skupin Useneta. Pri razvojnih naporih so se uveljavili nekateri dogovori. Vsakdo, ki želi, da bo njegova koda vključena v ,,uradno`` jedro, jo pošlje Linusu Torvaldsu. Ta jo preizkusi in jo vključi v jedro, če ne kvari obstoječih zadev ali ne nasprotuje celotni zasnovi sistema.

Sam sistem je zasnovan z uporabo odprtega pristopa in z mislijo na dodatke. Vrsta novih dodatkov in kritičnih sprememb sistema se je v zadnjem času zmanjšala, in splošno pravilo je, da se nova različica jedra objavi vsakih nekaj tednov. Seveda je to približna številka. Kriteriji za novo različico vključujejo število odpravljenih hroščev, povratne informacije uporabnikov, ki preizkušajo pred-izdane različice kode, in količino spanca, ki jo je ta teden užil Linus Torvalds.

Dejstvo je, da med dvema izdajama niso odpravljeni vsi hrošči niti niso rešene vse težave. Če se zdi, da je izdaja očiščena kritičnih ali ponavljajočih se hroščev, se reče, da je stabilna, in izdana je nova različica. Namen, skrit za razvojem Linuxa, ni izdaja popolne kode brez hroščev, temveč razvoj proste izvedbe Unixa. Linux je namenjen razvijalcem bolj kot komurkoli drugemu.

Vsakdo, ki ima nov dodatek ali programsko aplikacijo, jo v splošnem objavi kot različico alfa - se pravi testno različico za tiste pogumne uporabnike, ki bi radi izbrskali težave v prvotni kodi. Ker skupnost Linuxa v veliki meri temelji na Internetu, se programje alfa navadno postavi na eno ali več mest za FTP paketov za Linux (glejte dodatek B), sporočilo o dostopnosti in načinu preizkušanja pa se objavi v eni od novičarskih skupin Useneta o Linuxu. Uporabniki, ki vzamejo in preizkusijo programje alfa, lahko avtorju po pošti sporočijo svoje izide, popravke napak in vprašanja.

Ko se odpravijo prvotni hrošči, izvorna koda vstopi v stanje preizkusa beta, v katerem se navadno pojmuje za stabilno, a ne za popolno. Deluje, a vse lastnosti morda še niso prisotne. Programje gre lahko tudi direktno v zadnje stanje, kjer se predpostavi njegova kompletnost in uporabnost.

Zavedajte se, da so to le dogovori - ne pravila. Nekateri razvijalci morda tako zaupajo v svoje programje, da se odločijo, da različici alfa in beta nista potrebni. Takšne odločitve vedno sprejema razvijalec.

Morda vas preseneča, kako lahko nestrukturiran sistem prostovoljcev, ki preizkušajo in razhroščujejo celoten sistem Unix, sploh kaj naredi. Kot se je izkazalo, je to eden od najbolj učinkovitih in motiviranih razvojnih timov, kar se jih je zbralo. Celotno jedro Linuxa je napisano iz ničesar, brez kode lastniškega izvora. Za prenos vsega prostega programja pod soncem na Linux je potrebnega ogromno dela. Knjižnice so napisane in prenesene, datotečni sistemi so razviti in strojni gonilniki napisani za veliko priljubljenih naprav - vse zaradi dela prostovoljcev.

Programje za Linux se v splošnem izdaja kot distribucija, nabor vnaprej pripravljenega programja, ki sestavlja celoten sistem. Za večino uporabnikov bi bilo težko zgraditi popoln sistem od začetka, začenši z jedrom, dodajajoč pripomočke in nameščujoč vse potrebno programje na roko. Namesto tega je dostopnih veliko distribucij programja, ki vključujejo vse potrebno za namestitev in pogon popolnega sistema. Ni ene same, standardne distribucije - več jih je, in vsaka ima svoje prednosti in pomanjkljivosti. Namestitev različnih distribucij Linuxa opisujemo, začenši s stranjo [*].


1.7 Razlike med Linuxom in drugimi operacijskimi sistemi

Pomembno je razumeti razlike med Linuxom in drugimi operacijskimi sistemi, kot so MS-DOS, OS/2 in druge izvedbe Unixa za osebne računalnike. Najprej, Linux lahko srečno sobiva z drugimi operacijskimi sistemi na istem stroju: na istem sistemu lahko poleg Linuxa poganjate še MS-DOS in OS/2 brez težav. Obstajajo celo načini interakcije med različnimi operacijskimi sistemi, kot bomo videli.

Zakaj uporabljati Linux?

Zakaj uporabljati Linux namesto dobro znanega, dobro preizkušenega in dobro dokumentiranega komercialnega operacijskega sistema? Naštejemo vam lahko tisoč razlogov. Eden od najpomembnejših je, da je Linux izvrstna izbira za osebno računalništvo z Unixom. Če ste razvijalec programov za Unix, zakaj bi doma uporabljali MS-DOS? Linux vam omogoča razvoj in preizkus programja za Unix na vašem PC-ju, vključno z bazami podatkov in aplikacijami za X Window System. Če ste študent, verjetno računalniški sistemi vaše univerze tudi poganjajo Unix. Poganjate lahko svoj lastni Unix in ga prikrojite po svojih potrebah. Nameščanje in poganjanje Linuxa je tudi odličen način za učenje Unixa, če nimate dostopa do drugih strojev z Unixom.

A ne izgubimo pregleda. Linux ni le za uporabnike osebnega Unixa. Dovolj je robusten in kompleten, da zmore obdelati velika opravila, kot tudi zadovoljiti potrebe porazdeljenega računanja. Veliko podjetij - posebno manjših - je preselilo svoje sisteme na Linux namesto na druga okolja delovnih postaj Unix. Univerze so ugotovile, da je Linux popoln za učne predmete zasnove operacijskih sistemov. Veliki komercialni proizvajalci so se začeli zavedati priložnosti, ki jih ponuja prosti operacijski sistem.

Linux vs. MS-DOS

Poganjanje Linuxa in MS-DOS-a na istem sistemu ni neobičajno. Mnogo uporabnikov Linuxa se zanaša na MS-DOS za aplikacije, kot je urejanje besedil. Linux ponuja svoje analogije teh aplikacij, a morda imate dober razlog, da poganjate tako MS-DOS kot Linux. Če je vaša disertacija napisana z uporabo urejevalnika Word za Windows, je morda ne boste zlahka pretvorili v TeX ali kak drug format. Veliko komercialnih aplikacij za MS-DOS še ni dostopnih za Linux, a ni razloga, da ne bi uporabljali obeh.

MS-DOS ne izrablja vse funkcionalnosti procesorjev 80386 in novejših. Po drugi strani teče Linux popolnoma v zaščitenem načinu procesorja in uporablja vse njegove prednosti. Neposredno lahko dostopate do vsega dostopnega pomnilnika (in še dlje, z uporabo navideznega RAM-a). Linux priskrbi popoln vmesnik Unixa, ki ni dostopen v MS-DOS-u. Zlahka lahko razvijete in prenašate aplikacije za Unix na Linux, v MS-DOS-u pa ste omejeni le na del funkcionalnosti Unixa.

Linux in MS-DOS sta različna pojma. MS-DOS ni drag v primerjavi z drugimi komercialnimi operacijskimi sistemi in ima močno oporišče v svetu osebnih računalnikov. Noben drug operacijski sistem za osebne računalnike ni dosegel ravni priljubljenosti MS-DOS-a, ker je opravičevanje izdatka $1.000 za drugi operacijski sistem nemogoče za mnogo uporabnikov. Linux pa je prost in končno imate možnost, da se odločite sami.

Med Linuxom in MS-DOS-om se lahko odločite na podlagi svojih pričakovanj in potreb. Linux ni za vsakogar. Če ste si vedno želeli doma poganjati popoln sistem Unix, brez visokih cen drugih izvedb Unixa za osebne računalnike, je morda Linux prav to, kar iščete.

Linux vs. drugi tipi sistemov
V svetu PC-jev je postalo priljubljenih precej naprednih operacijskih sistemov. Posebej sta pri nadgradnji uporabnikov z MS-DOS-a postala popularna IBM-ov OS/2 in Microsoftov Windows.

Tako OS/2 kot Windows NT sta povsem večopravilna operacijska sistema, enako kot Linux. OS/2, Windows NT in Linux podpirajo približno enak uporabniški vmesnik, vmreženost in varnostne odlike. Vendar je prava razlika med Linuxom in drugimi tipi dejstvo, da je Linux različica Unixa, in pridobiva s prispevki širše skupnosti Unixa.

Zakaj je Unix tako pomemben? Ne le, da je to najpopularnejši operacijski sistem za večuporabniške stroje, pač pa je tudi osnova za svet prostega programja. Večina prostega programja na Internetu je napisana prav za sisteme Unix.

Obstaja veliko izvedb Unixa različnih proizvajalcev. Za njihovo razširjanje ni odgovorna ena sama ustanova. V skupnosti Unixa obstajajo veliki pritiski za standardizacijo v obliki odprtih sistemov, a ni ene same skupine, ki bi načrtovala to zasnovo. Vsak proizvajalec (ali, kot se izkaže, vsak heker) lahko razvije standardno izvedbo Unixa.

Po drugi strani so OS/2 in operacijski sistemi Microsofta lastniški. Vmesnik in zasnovo nadzoruje ena sama korporacija, ki razvija kodo operacijskega sistema. V nekem smislu je takšna vrsta organizacije napredek, saj postavlja točne standarde za programiranje in zasnovo uporabniškega vmesnika, za razliko od tistih, ki jih najdemo v skupnosti odprtih sistemov.

Več organizacij je poskušalo opraviti težak posel standardizacije programskega vmesnika za Unix. Linux je večinoma združljiv s standardom POSIX.1. Sčasoma je pričakovati, da se bo sistem Linux prilagodil drugim standardom, vendar standardizacija ni prvotni cilj razvoja Linuxa.

Linux vs. druge izvedbe Unixa
Za osebne računalnike s procesorjem 80386 ali boljšim obstaja precej drugih izvedb Unixa. Arhitektura 80386 je primerna za Unix in proizvajalci so to izkoristili.

Vse izvedbe Unixa za osebni računalnik so podobne Linuxu. Skoraj vse komercialne različice Unixa podpirajo približno isto programje, programsko okolje in lastnosti vmreževanja. Vendar obstajajo med Linuxom in komercialnimi različicami Unixa tudi razlike.

Linux podpira drugačen nabor strojne opreme kot komercialne izvedbe. V splošnem Linux podpira najbolj znane strojne naprave, toda podpora je še vedno omejena na strojno opremo, ki jo imajo razvijalci. Komercialni proizvajalci Unixa od začetka podpirajo več strojne opreme, a seznam v Linuxu podprtih naprav se nenehno daljša. Strojne potrebe za Linux bomo pokrili v razdelku 1.8.

Mnogo uporabnikov poroča, da je Linux vsaj tako stabilen kot komercialni sistemi Unix. Linux se še vedno razvija, a filozofija dvokoračnih izdaj, stabilne in razvojne, je izdelala dostopne stabilne različice, ne da bi upočasnila razvoj.

Za veliko uporabnikov je najpomembnejši dejavnik cena. Programska oprema Linux je prosta in jo lahko vzamete z Interneta ali kakšnega drugega računalniškega omrežja. Če nimate dostopa do Interneta, lahko še vedno poceni kupite Linux po poštnem naročilu na disketi, traku ali CD-ROM-u.

Seveda lahko skopirate Linux od prijatelja, ki že ima programje, ali delite stroške nakupa s kom drugim. Če nameravate namestiti Linux na velikem številu strojev, boste morali nabaviti le en izvod programja - Linux se ne razširja z licenco ,,enega stroja``.

Vrednosti komercialnih izvedb Unixa ne smete podcenjevati. Poleg cene samega programja se plača tudi za dokumentacijo, podporo in zagotovitev kvalitete. Za velike ustanove so to zelo pomembni dejavniki, a uporabniki osebnih računalnikov morda ne potrebujejo teh storitev. V vsakem primeru, mnogo podjetij in univerz je odkrilo, da je poganjanje Linuxa v laboratoriju poceni osebnih računalnikov boljše kot poganjanje komercialnih različic Unixa v laboratoriju delovnih postaj. Linux lahko zagotovi funkcionalnost delovne postaje na osebnem računalniku za delček njenih stroškov.

Sistemi Linux so pluli na visokih morjih Severnega Pacifika in upravljali telekomunikacije in analizo podatkov za oceanografsko raziskovalno plovilo. Sistemi Linux se uporabljajo v raziskovalnih postajah na Antarktiki. Več bolnišnic vzdržuje podatke o pacientih na sistemih Linux.

Za procesorje 80386 in boljše so dostopne tudi druge proste ali poceni izvedbe Unixa. Najbolj znana je 386BSD, izvedba Unixa BSD za 80386. Paket 386BSD je v veliki meri primerljiv z Linuxom, toda kateri od njiju je boljši, je odvisno od vaših potreb in pričakovanj. Edina pomembna razlika, ki jo lahko ugotovimo, je, da se Linux razvija odprto in lahko prostovoljci pomagajo pri razvojnem procesu, medtem ko 386BSD razvija zaključena skupina programerjev. Zaradi tega obstajajo med tema dvema projektoma bistvene filozofske in zasnovne razlike. Cilj Linuxa je razviti popoln sistem Unix iz nič (in se v tem procesu neznansko zabavati), cilj 386BSD je med drugim priredba obstoječe kode BSD za uporabo na 80386.

NetBSD je še en prenos distribucije BSD NET/2 na več strojev, vključno z 80386. NetBSD ima rahlo bolj odprto strukturo razvoja, sicer pa je v mnogih pogledih primerljiv s 386BSD.

Omeniti velja tudi projekt HURD, prizadevanje Free Software Foundation, da bi razvila in razširjala prosto različico Unixa za mnogo platform. Stopite v stik s Free Software Foundation (naslov je v dodatku D) za več informacij o tem projektu. V času tega pisanja je HURD še vedno v razvoju.

Obstajajo tudi druge poceni različice Unixa, na primer Minix, akademski, a uporaben klon Unixa, na katerem je temeljil zgodnji razvoj Linuxa. Nekatere od teh izvedb so le za izobraževalne namene, medtem ko so druge polnokrvni sistemi.

1.8 Strojne potrebe

Zdaj morate biti že prepričani, kako čudovit sistem je Linux in kako sijajne stvari lahko stori za vas. Vendar se morate, preden odhitite in namestite Linux, zavedati njegovih strojnih potreb in omejitev.

Zavedajte se, da Linux razvijajo uporabniki. To večinoma pomeni, da je v Linuxu podprta strojna oprema, do katere imajo dostop uporabniki in razvijalci. Izkaže se, da je podprta večina najbolj priljubljene strojne opreme in perifernih enot za osebne računalnike. Linux podpira več strojne opreme kot nekatere komercialne izvedbe Unixa. Vendar nekatere skrivnostne naprave še niso podprte.

Druga pomanjkljivost podpore strojne opreme v Linuxu je, da veliko podjetij ohranja svoje strojne vmesnike kot svojo last. Prostovoljni razvijalci Linuxa ne morejo napisati gonilnikov za naprave, saj proizvajalec ne objavi tehničnih podrobnosti širši javnosti. Tudi če bi razvijalci Linuxa lahko razvili gonilnike za lastniške naprave, bi bili ti last podjetij, ki si lastijo vmesnike naprav, kar je v nasprotju z GPL. Izdelovalci, ki vzdržujejo lastniške vmesnike, napišejo svoje lastne gonilnike za operacijske sistem kot sta MS-DOS in Microsoft Windows. Uporabnikom in ostalim razvijalcem ni treba nikoli vedeti podrobnosti vmesnika.

V nekaterih primerih so programerji Linuxa poskušali napisati hekerske gonilnike naprave na podlagi svojih domnev o vmesniku. V drugih primerih razvijalci sodelujejo z izdelovalci naprav in z različnimi stopnjami uspeha poskušajo dobiti podatke o vmesniku naprave.

V naslednjih razdelkih bomo poskušali povzeti strojne potrebe za Linux. Bolj popoln spisek podprte strojne opreme vsebuje spis Linux Hardware HOWTO (glejte razdelek 1.9).

¤ Opozorilo: Večina podpore strojne opreme za Linux je na razvojni stopnji. Nekatere distribucije lahko podpirajo eksperimentalne funkcije ali pa tudi ne. Ta razdelek našteva strojno opremo, ki je podprta že nekaj časa in je dokazano stabilna. Če ste v dvomih, preverite dokumentacijo vaše distribucije Linuxa. Glejte razdelek 2.2 za več informacij o distribucijah Linuxa.

Linux je poleg na sistemih Intel 80x86 dostopen še na mnogih drugih platformah. Te vključujejo računalnike Macintosh, Amiga, Sun SparcStation in sisteme s procesorji Digital Equipment Corporation Alpha. V tej knjigi se bomo osredotočili le na vrtiček procesorjev Intel 80386, 80486, Pentium ter klonov proizvajalcev, kot so AMD, Cyrix in IBM.

Matična plošča in procesorske zahteve
Linux trenutno podpira sisteme s centralnimi procesnimi enotami (CPU) Intel 80386, 80486 ali Pentium, vključno z variantami, kot so 80386SX, 80486SX, 80486DX, 80486DX2, Pentium Pro, Pentium II in Celeron. Z Linuxom delujejo tudi ne-Intelovi kloni. Linux je prenesen tudi na računalnike DEC Alpha in Apple PowerMac ...

Če imate 80386 ali 80486SX, boste morda želeli uporabljati matematični koprocesor (FPU), čeprav ta ni potreben. Jedro Linuxa lahko izvaja emulacijo FPU, če stroj nima koprocesorja. Podprti so vsi standardni dodatni čipi FPU, vključno z IIT, Cyrix FasMath in Intel.

Mnogo pogostih matičnih plošč v PC-jih je zasnovanih na vodilu PCI, toda ponujajo tudi priključke ISA. Linux podpira to konfiguracijo kot tudi sisteme z vodili EISA in VESA. Vodilo proizvajalca IBM MicroChannel (MCA), najde se ga v večini sistemov IBM PS/2, je znatno drugačno in podpora zanj je bila dodana šele pred kratkim.

Pomnilniške potrebe
Linux v primerjavi z drugimi enako zmogljivimi operacijskimi sistemi potrebuje zelo malo pomnilnika. Imeti morate vsaj 4 megabajte RAM-a, močno pa priporočamo 16 megabajtov. Več kot imate pomnilnika, hitrejši sistem boste poganjali. Nekatere distribucije potrebujejo več RAM-a za namestitev.

Linux podpira celotni 32-bitni naslovni prostor procesorja. Z drugimi besedami, samodejno uporablja ves vaš RAM.

Linux bo tekel tudi na zgolj 4 megabajtih RAM-a, vključno s poslasticami, kot sta X Window System in Emacs. Vendar je večja količina pomnilnika pomembnejša od hitrosti procesorja. Za splošno uporabo bo 16 megabajtov dovolj, za sisteme z veliko uporabniško obremenitvijo pa bo morda potrebno 32 megabajtov ali več.

Večina uporabnikov Linuxa določi del njihovega trdega diska kot izmenjalni prostor (angl. swap space), ki se uporablja kot navidezni RAM. Kljub temu, da ima vaš stroj več kot 16 megabajtov fizičnega RAM-a, boste morda vseeno želeli uporabljati izmenjalno področje. To ni nadomestilo za fizični RAM, a omogoča vašemu sistemu poganjanje večjih aplikacij z izmenjavanjem delov kode na disk. Kolikšen del diska naj bi namenili za izmenjalni prostor, je odvisno od mnogih dejavnikov; k temu vprašanju se bomo vrnili v poglavju 2.

Podprti krmilniki trdih diskov
Linux je mogoče poganjati tudi z diskete ali pri nekaterih distribucijah z ,,živega`` sistema na CD-ROM-u, a za dobro odzivnost boste potrebovali trdi disk. Linux lahko sobiva z drugimi operacijskimi sistemi - potrebuje le eno ali več particij na disku.

Linux podpira vse krmilnike IDE in EIDE kot tudi starejše krmilnike MFM in RLL. Podprta je tudi večina krmilnikov ESDI, a ne vsi. Splošno pravilo za krmilnik trdega diska ne-SCSI in disketni krmilnik je, da morate biti sposobni do diska dostopati v Linuxu, če lahko do njega dostopate v MS-DOS-u ali drugem operacijskem sistemu.

Linux podpira tudi vrsto priljubljenih krmilnikov diskov SCSI. Ta seznam vključuje večino kartic Adaptec in Buslogic kot tudi kartice z naborom čipov NCR.

Prostorske potrebe na trdem disku
Za namestitev Linuxa boste seveda potrebovali določeno količino prostega prostora na vašem trdem disku. Linux lahko podpira več kot en trdi disk na istem stroju; prostor za Linux lahko določite tudi na več diskih, če je to potrebno.

Količina porabljenega prostora na trdem disku je odvisna od vaših potreb in programske opreme, ki jo nameščate. Linux je relativno majhen glede na druge izvedbe Unixa. Sistem lahko poganjate že na 20 megabajtih diskovnega prostora. Vendar boste za razširitve in večje pakete, kot je X, potrebovali več prostora. Če nameravate dovoliti uporabo stroja več kot eni osebi, boste morali dodeliti prostor za njihove datoteke. Stvarne potrebe po prostoru se gibljejo od 200 megabajtov do enega gigabajta ali več.

Verjetno boste želeli določiti diskovni prostor za navidezni pomnilnik. Nameščanje in uporabo izmenjalnega prostora bomo obdelali v poglavju 2.

Z vsako distribucijo Linuxa pride literatura, ki vam pomaga umeriti natančno količino prostora za namestitev vašega programja. Glejte navodila, ki so priložena vaši distribuciji ali ustrezen razdelek o namestitvi v poglavju 2.

Podprti monitorji in grafične kartice
Linux v privzetem tekstovnem vmesniku podpira standardne kartice Hercules, CGA, EGA, VGA, monokromatsko IBM, Super VGA in veliko grafičnih pospeševalnikov in monitorjev. V splošnem, če grafična kartica in monitor delujeta v operacijskem sistemu, kot je MS-DOS, bi ta kombinacija morala v redu delovati tudi v Linuxu. Vendar se pri originalnih karticah IBM CGA (se jih kdo še spomni?) v Linuxu pojavlja ,,sneg``, česar ni prijetno gledati.

Grafična okolja, kot je X, imajo svoje potrebe po strojni videoopremi. Namesto da bi jih tukaj naštevali, bomo prenesli to razpravo v razdelek 5.1. Podprte so priljubljene grafične kartice in redno se pojavlja podpora za nove.

Različna strojna oprema
Morda imate tudi naprave, kot so pogon CD-ROM, miška ali zvočna kartica in vas zanima, ali je ta strojna oprema podprta v Linuxu.

Miške in druge kazalne naprave
Tipično se miška uporablja le v grafičnih okoljih, na primer v X. Vendar mnogo aplikacij za Linux, ki niso povezane z grafičnim okoljem, tudi dovoljuje uporabo miške.

Linux podpira standardne miške na zaporednih vratih, kot so miške Logitech, serije MM, Mouseman, Microsoft (2-gumbna) in Mouse Systems (3-gumbna). Linux podpira tudi miške Microsoft, Logitech in ATIXL, ki se priključijo na vodilo, in vmesnik miške za PS/2.

Tudi kazalne naprave, ki emulirajo miško, kot so sledilne krogle in dotikalne plošče, bi morale delovati.

Pogoni CD-ROM
Veliko pogostih pogonov CD-ROM se priključi na standardni vmesnik IDE. Drug pogosti vmesnik za CD-ROM-e je SCSI. Podpora SCSI vključuje več logičnih enot na napravo, zato lahko uporabljate ,,jukeboxe`` CD-ROM-ov. Dodatno je podprtih nekaj lastniških vmesnikov, kot so NEC CDR-74, Sony CDU-541 in CDU-31a, Texel DM-3024 in Mitsumi.

Linux podpira standardni datotečni sistem ISO 9660 za CD-ROM-e in razširitve datotečnega sistema High Sierra.

Tračne enote
Vse tračne enote SCSI, vključno s četrt-palčno, DAT in 8MM, so podprte, če je podprt krmilnik SCSI. Naprave, ki se povezujejo na disketni krmilnik, kot so disketni tračni pogoni, so tudi podprti, prav tako tudi nekateri drugi vmesniki, na primer QIC-02.

Tiskalniki
Linux podpira poln nabor tiskalnikov, dostopnih prek vzporednih vrat. Če lahko MS-DOS ali kakšen drug sistem dostopa do vašega tiskalnika na vzporednih vratih, lahko dostopa tudi Linux. Tiskalniško programje za Linux vključuje standardna programa Unixa lp in lpr. To programje vam omogoča tudi tiskanje prek omrežja, če ga imate. Linux vključuje programje, ki omogoča večini tiskalnikov izpis datotek v obliki PostScript.

Modemi
Kot pri tiskalnikih, podpira Linux tudi poln nabor modemov na zaporednih vratih, notranjih in zunanjih. Za Linux je dostopen dobršen del telekomunikacijske programske opreme, vključno s programi Kermit, pcomm, minicom in seyon. Če je vaš modem dostopen iz drugega operacijskega sistema na istem stroju, bi morali do njega dostopati brez težav tudi v Linuxu.

Omrežne kartice
Mnoge popularne kartice Ethernet in adapterji LAN so podprti tudi v Linuxu. Linux podpira tudi nekatere kartice FDDI, ,,frame relay`` in ,,token ring``, in vse kartice Arcnet. Seznam podprtih omrežnih kartic je vključen v izvorno kodo jedra vaše distribucije.

1.9 Viri informacij o Linuxu

sec-intro-sourcesViri informacij o Linuxu

Za Linux je na razpolago veliko drugih virov informacij. Posebej uporabne bodo številne knjige o Unixu na splošno, posebno za bralce, ki se v njem ne počutijo doma. Priporočamo vam, da skrbno preberete eno od njih, preden se poskusite pogumno podati v džunglo Linuxa.

Podatki so dostopni tudi na zvezi, v elektronski obliki. Za dostop do teh podatkov morate imeti dostop do omrežja na zvezi, kot so omrežja Internet, Usenet ali FidoNet. Dobro mesto za začetek je spletna stran http://www.linuxresources.com/ (glejte dodatek A). Če tega dostopa nimate, boste morali najti nekoga, ki bo tako prijazen, da vam bo priskrbel izvode tamkajšnjih spisov.

1.9.1 Dokumentacija na zvezi

Veliko spisov o Linuxu je dostopnih po anonimnem FTP-ju z arhivnih mest Interneta po vsem svetu in z omrežij, kot sta Fidonet in CompuServe. Distribucije Linuxa na CD-ROM-u lahko prav tako vsebujejo tukaj omenjene spise. Če lahko pošljete e-pismo na internetne strežnike, lahko dobite te datoteke z uporabo enega od strežnikov za ,,FTP po pošti`` tudi po pošti. Za več navodil o uporabi tovrstnih strežnikov glejte dodatek B.

V dodatku B je seznam uveljavljenih arhivnih mest za Linux. Zaradi manjše obremenitve omrežja uporabite strežnik FTP, ki vam je zemljepisno najbližji.

Dodatek A vsebuje delni seznam dokumentacije za Linux, dostopne po anonimnem FTP-ju. Imena datotek so lahko odvisna od arhivnega mesta. Večina mest hrani spise o Linuxu v podimeniku docs njihovega arhiva za Linux. Na primer, FTP-strežnik metalab.unc.edu hrani datoteke za Linux v imeniku /pub/Linux, dokumentacijo o Linuxu pa v imeniku /pub/Linux/docs,

Primeri na zvezi dostopnih spisov so Pogosto zastavljena vprašanja o Linuxu z odgovori, PZV, (angl. Frequently Asked Questions, FAQ), zbirka vprašanj, ki jih ljudje najpogosteje vprašujejo o Linuxu; spisi HOWTO za Linux opisujejo določene vidike sistema kot na primer Installation HOWTO (namestitev), Printing HOWTO (tiskanje) in Ethernet HOWTO (uporaba mrežnih kartic); in Linux META-FAQ, ki našteva informacijske vire na Internetu.

Mnogi od teh spisov se redno objavljajo v nekaterih novičarskih skupinah Useneta o Linuxu; glejte razdelek 1.9.4 spodaj.


1.9.2 Linux na svetovnem spletu

Na naslovu http://metalab.unc.edu/LDP/ najdete domačo stran projekta Linux Documentation Project (LDP) na svetovnem spletu (angl. World Wide Web, WWW). Ta spletna stran našteva številne HOWTO-je in druge sestavke v obliki HTML kot tudi kazalce na druga mesta, ki bi utegnila zanimati uporabnike Linuxa, na primer http://www.ssc.com/, dom mesečnika Linux Journal.

Slovenski uporabniki Linuxa vzdržujemo spletno stran http://www.lugos.si/. Na njej so dostopne številne novice, navodila in članki v slovenščini, primeri in povezave.

1.9.3 Knjige in druga objavljena dela

Knjige Dokumentacijskega projekta za Linux (LDP) so rezultat na Internetu združenih naporov, da bi napisali in razširjali precejšen nabor priročnikov za Linux, analogijo dokumentacije, ki spremlja komercialne različice Unixa in pokriva njihovo namestitev, delovanje, programiranje, vmreževanje in razvoj jedra.

Priročniki projekta LDP so dostopni po anonimnem FTP-ju in po poštnem naročilu. Dodatek A našteva dostopne priročnike in opisuje, kako jih dobiti.

Mnogo velikih založnikov, vključno z založbami MIS:Press, Digital Press, O'Reilly & Associates in SAMS je skočilo na potujoči vagon Linuxa. Preverite zalogo v vaši prodajalni računalniške literature ali na spletni strani Specialized Systems Consultants (SSC) na http://www.ssc.com/ ali poglejte preglede knjig v reviji Linux Journal, ki jih včasih objavijo na svoji strani http://www.linuxjournal.com/.

Veliko število knjig o Unixu je v splošnem uporabnih tudi za Linux. Pri svoji uporabi in programskem vmesniku se Linux ne razlikuje dosti od drugih izvedb Unixa. V splošnih besedilih za Unix boste našli skoraj vse, kar bi radi vedeli o uporabi in programiranju Linuxa. Pravzaprav je ta knjiga mišljena kot dodatek k že dostopni knjižnici knjig za Unix. Tukaj predstavljamo le najpomembnejše podrobnosti Linuxa in upamo, da boste za poglobljene informacije pogledali še v druge vire.

Oboroženi z dobrimi knjigami o Unixu in s tole knjigo bi se morali biti sposobni spoprijeti z vsem mogočim. Dodatek A našteva nekatere knjige o Unixu, ki so močno priporočljive za novince in čarovnike Unixa.

Revija Linux Journal se razširja po vsem svetu in je izvrsten način, da ostanete v stiku z dogajanjem v skupnosti Linuxa, posebej če nimate dostopa do novic Useneta (glejte spodaj). Glejte dodatek A za podatke o naročilu na revijo Linux Journal.


1.9.4 Novičarske skupine Useneta

Usenet je svetovni elektronski forum novic in diskusij. Ponuja poglobljeno izbiro novičarskih skupin. Novičarske skupine so razvrščene v različna področja razprav, posvečena določenim temam. Veliko diskusij o razvoju Linuxa se pojavlja na Internetu in Usenetu. Ni presenetljivo, da je Linuxu posvečenih precej novičarskih skupin Useneta.

Prvotna novičarska skupina o Linuxu, alt.os.linux, je bila ustvarjena, da bi preselili razprave o Linuxu iz skupine comp.os.minix in različnih elektronskih spiskov. Promet v alt.os.linux je kmalu tako narasel, da je zagotovil obstoj novičarske skupine v hierarhiji comp. Februarja 1992 je bilo izvedeno glasovanje in ustanovljena je bila comp.os.linux.

Novičarska skupina comp.os.linux je kmalu postala ena najpopularnejših (in najglasnejših) skupin Useneta, popularnejša od katerekoli druge skupine v hierarhiji comp.os. Decembra 1992 je bilo potrebno ponovno glasovanje o razbitju novičarske skupine zaradi zmanjšanja prometa v njej; to glasovanje je prestala le novonastala comp.os.linux.announce. Julija 1993 je bila skupina dokončno razbita v novo hierarhijo. Za reorganizacijo comp.os.linux je glasovalo skoraj 2.000 ljudi, kar pomeni eno od največjih glasovanj (angl. Calls For Votes, CFV) na Usenetu nasploh.

Če nimate Useneta, obstajajo prehodi med pošto in novicami za večino spodnjih skupin (če ne kar za vse).

Ta seznam še zdaleč ni popoln. Nove skupine se rojevajo, ko se pokaže potreba po razdelitvi razprav, obstajajo pa tudi skupine o Linuxu v drugih hierarhijah. V Sloveniji obstajata dve novičarski skupini, povezani z Unixom:


1.9.5 Elektronski poštni spiski na Internetu

Če imate dostop do elektronske pošte Interneta, lahko sodelujete v številnih elektronskih poštnih spiskih, tudi če nimate dostopa do Useneta. Če niste neposredno priključeni na Internet, se lahko priključite enemu od teh elektronskih spiskov, če lahko izmenjujete pošto z Internetom (na primer, preko omrežij UUCP, FidoNet, CompuServe ali drugih omrežij za izmenjavo internetne pošte).

Za več podatkov o elektronskih spiskih za Linux pošljite e-pismo na naslov

majordomo@vger.rutgers.edu
V telo sporočila vključite besedo help in sporočilo se vam bo vrnilo z navodili, kako se prijaviti na različne dopisne sezname in se z njih odjaviti. Osamljena beseda lists v vrstici bo prinesla imena poštnih seznamov, ki so dostopni na strežniku majordomo.vger.rutgers.edu.

Za Linux obstaja tudi precej poštnih seznamov za posebne namene. Najboljši način, da izveste o njih, je, da spremljate novičarske skupine Useneta o Linuxu za najave, pa tudi prebirate seznam javno dostopnih poštnih spiskov, ki se objavlja v skupini Useneta news.answers.

V Sloveniji obstajajo elektronski poštni spiski društva LUGOS o Linuxu. Zanje veljajo podobna navodila kot za prijavo na svetovne spiske, le e-pismo pošljete na naslov

majordomo@lugos.si
Na glavni spisek Lugosa, imenovan lugos-list, se prijavite z naslednjim ukazom v telesu sporočila na naslov majordomo@lugos.si
subscribe lugos-list

1.10 Kako do pomoči za Linux

Med svojimi pustolovščinami v svetu Linuxa boste nedvomno kdaj potrebovali tudi pomoč. Tudi čarovnike Unixa včasih zmede kakšna zvijača ali lastnost Linuxa. Pomembno je vedeti, kako, kje in kdaj poiskati pomoč.

Primarni načini dobivanja pomoči so prek internetnih elektronskih poštnih seznamov in novičarskih skupin, opisanih v razdelku 1.9. Če nimate dostopa do omenjenih virov, boste lahko našli primerljive diskusijske forume pri storitvah na zvezi, kot so BBS-i in CompuServe. Na zvezi je dostopna tudi rubrika Best of Technical Support (Najboljše od tehnične podpore) časopisa Linux Journal, http://www.linuxjournal.com/techsup.html.

Veliko podjetij ponuja komercialno podporo za Linux. Te storitve vam proti plačilu naročnine omogočajo, da pokličete svetovalce za pomoč pri vaših problemih z Linuxom.

Upoštevanje naslednjih predlogov bo precej izboljšalo vaše delo z Linuxom in vam zagotovilo več uspeha pri iskanju pomoči.

Preglejte vso dostopno dokumentacijo ... najprej! To bi morali storiti, ko prvič trčite ob problem. Različni viri informacij so našteti v razdelku 1.9 in dodatku A. Ti spisi so bili napisani s trudom za ljudi kot ste vi, ki potrebujejo pomoč pri sistemu Linux. Kot je omenjeno zgoraj, so za Linux uporabne tudi knjige o Unixu in tudi te bi morali uporabljati.

Če imate dostop do novic Useneta ali katerega od elektronskih spiskov o Linuxu, se prepričajte, da ste prebrali vse tam dostopne podatke, preden pošljete sporočilo širši javnosti. Pogosto so v novičarskih skupinah in dopisnih spiskih lepo obdelane rešitve pogostih problemov, ki jih sicer v dokumentaciji ni lahko najti. Če le pošiljate sporočila na te skupine, a jih ne berete, potem povzročate težave. Tudi če nimate neposrednega dostopa do Useneta, lahko pregledate spletni arhiv vseh večjih svetovnih novičarskih skupin. Ta arhiv se imenuje Deja News in ga lahko obiščete na http://www.dejanews.com/.

Naučite se ceniti samozaupanje. Saj zato ste sploh začeli poganjati Linux. Pomnite, Linux je prežet s hekanjem in odpravljanjem problemov. To ni komercialni operacijski sistem in niti ne poskuša biti. Hekanje vam ne more škoditi. Pravzaprav vas bo razsvetlilo, da boste sami preiskovali in reševali probleme - morda se boste nekega dne celo imenovali guru Linuxa. Naučite se spoštovati polno vrednost hekanja sistema in samostojnega odpravljanja težav. Ne morete pričakovati, da boste poganjali popoln, doma narejen sistem Linux brez nekaj ročnega dela.

Ostanite mirni. Ničesar ne boste opravili, če boste nad svojo škatlo z Linuxom dvignili sekiro - ali še huje, močan magnet. Velika boksarska vreča ali dolg sprehod sta dobra načina za sprostitev običajnih napadov stresa. Upamo, da bo ta problem izginil z zorenjem Linuxa in vse boljšimi distribucijami. Vendar so tudi komercialne izvedbe Unixa in drugih operacijskih sistemov lahko včasih kočljive. Kadar odpove vse drugo, se usedite, nekajkrat globoko vdihnite in se vrnite k problemu, ko se počutite sproščeno. Vaš um in zavest bosta jasnejša.

Izogibajte se pošiljanju prenagljenih sporočil. Mnogo ljudi naredi napako in prehitro prosi za pomoč. Ko naletite na težavo, ne odhitite takoj do najbližjega terminala in pošljite sporočila na eno od novičarskih skupin Useneta. Najprej poskušajte sami odpraviti težavo in se absolutno prepričajte, v čem je sploh problem. Se vaš sistem ne odziva, ko ga prižgete? Mogoče imate samo iztaknjen kabel.

Ko prosite za pomoč, to naredite pomoči vredno. Pomnite, da ljudje, ki berejo vaša sporočila, niso nujno tam zato, da vam bodo pomagali. Torej je pomembno ostati vljuden, jasen in informativen, kot se le da.

Kako se to doseže? Najprej, vključiti bi morali čimveč relevantnih informacij o vašem sistemu in vašem problemu. Če pošljete preprosto zahtevo ,,Izgleda, da v službi ne morem dobiti e-pošte``, vam verjetno to ne bo nič pomagalo, če ne vključite podatkov o vašem sistemu, programski opremi, ki jo uporabljate, ter kaj ste poskusili storiti do sedaj in kakšni so bili rezultati. Ko vključujete tehnične podatke, je dobro vključiti tudi splošne podatke o različici vašega programja (različici jedra Linuxa, na primer), kot tudi kratek povzetek vaše strojne sestave. A pri tem ne pretiravajte - tip in znamka vašega monitorja sta verjetno nepomembna, če poskušate usposobiti omrežno programje.


naprej navzgor nazaj vsebina index
Naprej: 2. Pridobitev in namestitev Navzgor: Namestitev in začetek dela Nazaj: Predgovor
Roman Maurer
1999-03-22