veres józsef - unix (2002, 88 oldal)

130
UNIX

Upload: facsa

Post on 27-Sep-2015

21 views

Category:

Documents


3 download

DESCRIPTION

UNIX

TRANSCRIPT

UNIX

UNIX

A UNIX-rl

A Unix nem egy j opercis rendszer. Elg rgta (informatikai mrtkkel mrve nagyon rgta) stabilan s egyre nvekv arnyban jelen van a szmtstechnikai vilgban. Hossz ideig az egyetemi, kutati szfrban volt egyeduralkod, s mostanban egyre jabb s jabb terleteket (banki, vllalati, adatfeldolgoz szfra) hdt meg. Legfbb ereje dinamikussgban, alkalmazkodkpessgben rejlik: kpes ugyanazt a krnyezetet nyjtani mind a multiprocesszoros mainframe, mind az otthoni x86-os PC-je eltt l felhasznlnak (x86 olyan szmtgp ami IBM PC kompatibilis, processzora lehet: 386/486/pentium/PII/PIII s ezek klnjai). Manapsg, amikor az otthoni szmtgpek teljestmnye, illetve a velk szemben tmasztott ignyek, a vgzend feladatok mr egyre kzelebb kerlnek az egykori "nagygpek" szintjhez, egyre inkbb szksg van egy olyan krnyezetre, amely kpes hardvertl, platformtl fggetlenl mindenhol ugyanazt nyjtani: a szmtstechnikai vilg "utolrte" a Unix-ot.

Mert a Unix meglehetsen rgi dolog. Els vltozatt 1969-ben ksztette Ken Thomson s Dennis Ritchie az AT&T Bell Laboratriumban egy PDP-7 tpus szmtgpre. A rendszer magjt 1973-ban trtk C nyelvre - ennek ksznheti a Unix mind a mai napig legnagyobb elnyt, a knny hordozhatsgot. Az AT&T kezdetben ingyen az amerikai egyetemek rendelkezsre bocstotta a Unix forrskdjt, gy tz ven bell szzezer fl emelkedett a mkd Unix rendszerek szma (ne felejtsk, ez mg a "hskorszakban" volt - a 80-as vek elejn szzezer szmtgp mg hatalmas nagy szm volt). A gyors terjedsnek azonban jelentkeztek a htulti is: nem volt egysges ellenrzse senkinek sem a forrskd, a rendszer egysge felett, gy szmos (helyi mdostsokon alapul) vltozat alakult ki.

Fontos megjegyezni a "UNIX" s a "Unix" terminolgia kztti klnbsget: a szakmban meghonosodott szoks szerint "UNIX"-szal jellik az "igazi", a licensszel rendelkez, eredeti forrskdbl szrmaz rendszereket, mg a "Unix" jells ltalban jell mindenfle "Unix tpus" rendszert, amelyek a "jzan sz" alapjn Unixnak mondhatk, fggetlenl attl, hogy van-e valami kzk az X/Open-hez vagy sem.

Amikor a Unix mg csak az egyetemi s akadmiai szfrban volt kzismert, kialakult krltte egy hatalmas programkrnyezet: minden egyetem, kutatintzet elksztette sajt megoldsait felmerl szmtstechnikai problmira (a szvegszerkesztstl, tblzatkezelstl kezdve a mindenfle apr utility-n keresztl a klnbz fordtprogramokig), s mivel ezek az intzmnyek non-profit szervezetek voltak, elkszlt szoftvereiket publikuss tettk. Forrskdban, C nyelven adtk kzre ezeket a programokat, egyre inkbb a tereblyesed Internet segtsgvel, s a C nyelv s az egysges krnyezet miatt minden Unix felhasznl lefordthatta, hasznlhatta, mdosthatta s tovbbfejleszthette ket szinte teljes szabadsggal. Ennek a folyamatnak az eredmnyeknt alakult meg az FSF (Free Software Foundation) alaptvny, melynek clja egy szabadon (forrskdban is) ingyen hozzfrhet szoftverkrnyezet biztostsa brki szmra, illetve ennek rszeknt a GNU project, amely pedig egy minl teljesebb Unix rendszert kvn ltrehozni s biztostani.

Ennek jogi megfogalmazsa a GPL (GNU General Public License). GPL al es szoftvert brki kszthet, amennyiben megfelel bizonyos feltteleknek, s jogi (copyright) problma esetn szmthat az FSF segtsgre. GPL al es szoftvert brki hasznlhat, st mdosthatja is azt, amennyiben amikor a szoftvert tovbbadja, tovbbadja annak teljes forrskdjt is, esetleges mdostsai feltntetsvel. GPL szoftverrt pnzt krni nem szabad, viszont fel lehet szmtani a msolssal, terjesztssel, installlssal konfigurlssal stb. kapcsolatos kltsgeket. A szoftver mdostsrt sem szabad pnzt krni - GPL forrs mdostva is GPL forrs marad.

A LinuxrlMegvolt teht a GNU krnyezet: fordtk, segdprogramok, s a szabadon terjeszthet XFree grafikus fellet, egy olyan opercis rendszer mag hinyzott csak, amely bizonytottan szabad (nem tartalmaz copyright al es kdot). Ennek megrst kezdte el helsinki egyetemista korban Linus Torvalds, hogy aztn tbb szz segtjvel egytt ltrehozza azt, amit ma Linuxknt ismernk: egy teljes, szabad opercis rendszert brki x86-os PC-jre. Br Linus Torvalds egyedl kezdett hozz opercis rendszere elksztshez, ma mr a Linux oly sokfel gazott s akkorra ntt (ma mr taln ez a legtbb PC-s hardvert tmogat szoftver, es trsa ms architektrkra - Sun, MIPS, DEC Alpha, Macintosh stb. - folyamatban van), hogy Linus maga mr leginkbb csak koordinlja a fejlesztseket.

A Linux jogi rtelemben nem UNIX teht, leghelyesebb volna Unix-klnak nevezni, s nem is kveti szigoran egyik szabvnyt sem: sok jellemvonst egyest magban. Maga a Linux, illetve a Linuxon fut szoftverek legnagyobb rsze a GPL al esik.

Szt kell itt mg ejtennk mg egy fontos dologrl, ami nlkl a Linux opercis rendszer nem szlethetett volna meg: ez pedig az Internet vilghlzat, amely sszekttte a fejlesztket, s amelyen mindig brki szmra ingyen hozzfrhetk az egyes Linux vltozatok. A Unix s az Internet mindig is szorosan ktdtt egymshoz: az els IP (Internet Protocol) implementcikat Unix rendszerekre ksztettk, a Unixot nyltsga, jl bvthetsge miatt vlasztottk a fejlesztk. Az Internetbe kttt gpek legnagyobb rsze Unix alatt fut, az Internet szolgltatsait maximlisan csak Unix alatt tudjuk kihasznlni.

Manapsg taln ez a Unix (Linux) rendszerek gyors terjedsnek f oka. A Linux az Interneten szletett: br tmogat ms hlzati protokollokat is, igazn egyszeren Internetes krnyezetbe illeszthet.

A Linux folyamatosan fejld rendszer. Gyors fejldsnek s terjedsnek egyik oka az, hogy a fejlesztk mr a munkaverzikat elrhetv tettk (s teszik jelenleg is) brki szmra, akrki kiprblhatta (kiprblhatja) a fejleszts brmely stdiumban. Teljesen tipikus eset, hogy - mert a teljes forrskd mindig hozzfrhet - hogy az nkntes (njellt) tesztelk a megtallt hibkat mr a javtssal egytt kldtk vissza a fejlesztknek - az Interneten.

Mivel a Linux rendkvl gyorsan fejldik, (hetente, de nha kt-hrom naponta is jelenik meg j verzi), szsges taln mr itt az elejn kis rendet tennni a verziszmok dzsungelben. Legelszr is jegyezzk meg, hogy ha "stabil" verzirl beszlnk, akkor is csak sajt felelssgnkre hasznlhatjuk a Linuxot: mivel nem ll mgtte kereskedelmi cg, nincs aki a megbzhat mkdsrt garancit vllaljon. (Ha hajlandk vagyunk ldozni r, vsrolhatunk support-ot valamely erre szakosodott cgtl - br Linuxra szakosodott cgek jelenleg leginkbb csak az USA-ban mkdnek - az igyenes Linuxhoz azonban nem jr garancia.)

Ha lefagy, s fontos adataink vesznek el, csak magunkra szmthatunk - azonban a tbb szzezer Linux felhasznl tansga szerint a Linuxnak nem igazn szoksa lefagyni. Megjegyzend egybknt, hogy szoftvereik hibamentessgre gyakran nagy szoftvercgek sem vllalnak garancit.

A kernel verziszmrl

Linux verziszm alatt az n. "kernel", az opercis rendszer mag verziszmt rtjk, ez a tulajdonkppeni Linux, azonban mint minden opercis rendszer esetn, nmagban ez nem j semmire: arra val, hogy ms (felhasznli) programokat futtassunk vele (rajta). A kernel verziszmozsa a kvetkez: x.y.z, ahol az x a f verziszm, ez jelenleg 2 az y, a kzps szm az al-verziszm, amely ha pros, akkor az egy "stabil" verzit jelent, s ha pratlan, akkor pedig fejleszti verzit. A harmadik szm, a z pedig az n. patch-level: az aprbb vltoztatsokat sorszmozzk ezzel. E sorok irsa idejn a legutols stabil, bta llapot verzi szma 2.4.0 volt.

A disztribcikrl

Szoks mg az n. disztribci verziszmrl is beszlni: a disztribci egy Linux kernelen alapul teljes (mkdkpes) Unix rendszer, segdprogramokkal, alkalmazsokkal egytt. Egy disztribci elksztse tulajdonkppen a C forrsban meglv utility-k, programok lefordtsbl, knyvtrstruktrba helyezsbl s sszekonfigurlsbl ll. Sokfle disztribci ltezik, ingyenesek is s kereskedelmiek is Debian, Redhat, Mandrake, SuSe, Corel Linux amely ingyenes s az Internetrl sok helyrl letlthet. Elhangzott, hogy lteznek kereskedelmi (nem ingyenes) disztribcik is - taln ez furcsa lehet egy szabad szoftver esetn, azonban mint azt mr a GPL ismertetsekor lttuk, ezek a cgek nem a Linux-rt krnek pnzt, hanem a disztribci sszelltsrt, illetve esetleg a disztribciban lv, Linux alatt fut de nem ingyenes szoftverek hasznlatrt.

sszefoglalva

A UNIX nv teht nem csak egy szimpla opercis rendszert jelent, hanem a hozz kapcsold user interface-t, programokat, segdprogramokat, amelyek egytt egy tbbfelhasznls, (multi user) tbbfeladatos (multi tasking) rendszer hasznlatt teszik lehetv. Mg a DOS egyfelhasznls, egyfeladatos rendszer, azaz egyszerre csak egy felhasznl egy programot futtathat rajta, addig a UNIX alatt egyszerre tbb felhasznl is dolgozhat, s mindegyikk tbb programot is futtathat egyidejleg. A prhuzamosan fut programok prioritsuk alapjn jutnak processzor idhz. A tbbprocesszoros rendszereknl lehetsges, hogy az egyes processzorokon kln fussanak a programok.

A UNIX felptse

A UNIX rteges felpts. A legbels rsze a kernel, az opercis rendszer magja, amely a rendszer erforrsainak sztosztst, s a fut folyamatok temezst vgzi. A kernel kr plnek a UNIX klnbz programjai. Ezek kz tartoznak a klnbz segdprogramok (pld. ls, cat, mv) s a felhasznl szmra a legfontosabb az gynevezett parancsrtelmez (shell, "hj", "burok"). Ez az a program , amely egy felhasznl belpsekor elindul, kirja a promptot, beolvassa s rtelmezi a felhasznl ltal begpelt parancsokat, meghvja az elindthat programokat s mg egy igen rugalmas programozsi nyelvet is ad a felhasznl szmra.

Bejelentkezs, bejelentkezsi nevek s kulcsszavak A tbbfelhasznls mkds alapja, hogy a gp bekapcsolsnak s a felhasznl belpsnek a folyamata sztvlik. Mivel az egyes felhasznlkat egy UNIX-os gpen meg kell klnbztetni, minden egyes felhasznlnak gynevezett bejelentkezsi neve (login identifer, login id) van. Ez ltalban 8 karakternl nem hosszabb. A belpsi nv utn a rendszer egy jelszt kr tlnk. Ennek clja az egyes felhasznlk adatainak vdelme. A felhasznlknak a rendszergazda (superuser) adja meg a belpsi nevet s a jelszt is lltja be. A felhasznlnak azonban a passwd parancs hasznlatval mdja van a jelsz megvltoztatsra. A rendszergazda kifejezs kapcsn szt kell ejteni egy rendszeren bell a norml s privilgizlt felhasznlk kzti klnbsgrl.

A UNIX gpeken mint ltalban minden nagyobb gpen igaz, hogy a felhasznlk kzl egyesek specilis eljogokkal rendelkeznek ms norml felhasznlkkal szemben. k a privilgizlt felhasznlk. Feladatuk lehet pldul a rendszer kikapcsolsa, j felhasznlk adminisztrcija, programcsomagok installlsa stb. A privilgizlt felhasznlk kztt is kiemelt szerepe van a rendszergazdnak, az, aki mindent megtehet, mert mindenre van jogosultsga. Minden UNIX rendszeren kell hogy legyen egy rendszergazda, aki a fent emltett feladatokat elvgzi. Nagyobb rendszereken ms-ms szemly vgezheti ezeket a feladatokat. A rendszergazda bejelentkezsi neve hagyomnyosan root.

Folyamatkezels, eltr- httrfolyamatok, dmonok s jobok A UNIX rendszernl a vgzett tbbfelhasznls munka sorn kt igen fontos nem azonos fogalmat kell megemlteni a program s a folyamat fogalmt. A program egy futtathat fjl, mg a folyamat a felhasznl ltal elindtott programbl keletkezik. Ez azt jelenti, hogy egyetlen programnak tbb felhasznl ltal trtn elindtsakor tbb folyamat keletkezik, vagy egyetlen felhasznl ltal ugyanazon program tbbszri indtsa sorn szintn tbb folyamat indul el.

A munka sorn a kiadott parancsok a DOS opercis rendszerhez hasonlan szekvencilisan kerlnek vgrehajtsra. A DOS-al ellenttben itt viszont md van gynevezett httrfolyamatok elindtsra, ahol a parancs kiadsa utn a promptot azonnal visszakapjuk s az elzleg kiadott parancs vgrehajtsa a httrben folyik tovbb. Ehhez hasonl lehetsget nyjt PC-n a WINDOWS gynevezett protected (vdett) zemmdban trtn alkalmazsa. A httrfolyamat egy specilis fajtja dmon folyamat. Ezt a rendszer automatikusan indtja el s valamilyen felgyeleti szerepet lt el. Pldul gondoskodik a nyomtatsi krelmek besorolsrl s vgrehajtsrl. A dmonoknak vgrehajtsra tadott nyomtatsi s egyb krelmeket job-oknak nevezik, ezeket a dmon srgssgi s egyb szempontok alapjn sorba rendezi s egyenknt hajtja vgre.

A fjlrendszer, fjlok s katalgusok A UNIX legfontosabb alapfogalma a fjl, ami ebben az esetben egyszeren csak bjtok (karakterek) sorozata. Nem csak programokat s adatokat trolunk a fjlokban, de a parancsok is futtathat fjlok, st mg a terminlokra is ugyangy runk, mint egy kznsges adatfjlba. (Rviden: a UNIX-ban minden fjl, azaz a UNIX minden adatobjektumot azonos mdon, azonos parancsokkal prbl meg kezelni.)

A szablyos fjl nevek A fjlnevek maximlis hossza ltalban 255 karakter lehet, s szinte brmilyen karakterbl

llhatnak. Nhny karakternek azonban klnleges szerepe van, ezrt clszer a nvadshoz csak az angol abc betit, a szmokat, a pontot, valamint a mnusz s az alhzs jelet hasznlni. A kis s nagybetk a fjlnevekben klnbznek szmtanak, csakgy mint a parancsokban. Lehetleg ne hasznljunk a nevekben csillagot (*) s els karakterknt pontot. (Hasonlan a DOS-hoz itt is vannak joker karakterek, melyeket fjlokra val hivatkozskor hasznlhatunk gy pld *c valamennyi c betre vgzd fjlt jelenti, mg a c* valamennyi c betvel kezdd fjlt jelent, ha egy karaktert akarunk helyettesteni a fjl nvben akkor a ? jelet hasznlhatjuk.)

Rejtett fjlok A UNIX-ban vannak olyan fjlok melyek neve pont karakterrel kezddik s ezeket a rendszer mskpp kezeli mint a tbbi fjlt. Ezek az gynevezett rejtett fjlok. A listzsi parancs hatsra ezeknek a fjloknak a neve nem jelenik meg. Fleg konfigurcis informcikat tartalmaznak, melyek egy-egy felhasznl home knyvtrban kell, hogy elhelyezkedjenek.

Katalgusok (Knyvtrak) A UNIX hierarchikus felpts, ami azt jelenti, hogy a fjlokat knyvtrakban trolja. Egy knyvtrbl alknyvtrak nylhatnak, amelyek ugyancsak tartalmazhatnak tovbbi fjlokat s alknyvtrakat, s gy tovbb. A gykr knyvtrnak nincs neve s szl knyvtra. A / jel jelenti a gykeret (root), alknyvtrai pedig az usr, home, stb. A /usr, /home, /stb. hivatkozssal rhetk el. Ezt a hivatkozst elrsi tvonalnak (path) hvjk. Ez fggetlen attl az alknyvtrtl, amelyikben ppen tartzkodunk. A /usr alknyvtrnak tovbbi alknyvtrai vannak, pldul bin, etc, stb. Ezek elrsi tvonala /usr/bin, /usr/etc s gy tovbb.

Melyik knyvtrban mi van? llomnykonvekcik.A UNIX-ban igencsak szertegaz s kiterjedt knyvtrszerkezetet tallunk. Van nhny knyvtr, amelyet hagyomnyosan ugyangy hvnak minden UNIX vltozatban, s a bennk tallhat programok s adatfjlok is ugyanahhoz a tmhoz kapcsoldnak.

Pldul:

/ A knyvtr gykere (root directory), minden ms knyvtr innen nylik s itt tallhat a UNIX nev futtathat program, az opercis rendszer magja (kernel).

/bin Binris programok knyvtra, itt vannak a legfontosabb vgrehajthat binris programok .

/dev Itt vannak az eszkzfjlok (terminlok, lemezek, CD ROM olvask, stb.)

/etc Egyb rendszerfjlok, rendszerint a rendszeradminisztrcis fjlok. A legtbb esetben itt van a jelszavakat trol fjl is. .

/tmp tmeneti trolsra szolgl alknyvtr. Ezt az alknyvtrat rendszeres idkznknt trlik, ezrt soha ne troljunk itt semmi rtkeset!

/usr A felhasznli fjlrendszer: munkaknyvtrak, stb.

/home Bejelentkezsi katalgus (Home directory) a felhasznlk Home knyvtrai.

A fjlrendszer kitntetett pontjai A UNIX fjlrendszerben hrom kitntetett pont ltezik az egyes felhasznlk szmra.

A gykrkatalgus (root directory) a fjlrendszer kezdpontja, ahonnan az egsz llomnyrendszer felpl.

A bejelentkezsi vagy alapkatalgus (home directory home knyvtr) az egyes felhasznlkhoz tartoz kiindulsi pont, ahonnan kezdve a felhasznl elhelyezheti sajt llomnyait.

Az aktulis vagy munkakatalgus (working directory) az a pont ahol a felhasznl ppen tartzkodik az llomnyrendszeren bell.

Mi van mg a fjlrendszerben ? A UNIX fontos tulajdonsga, hogy tbbfelhasznls (multi user), teht biztostania kell, hogy a felhasznlk egyms fjljaihoz ne nylhassanak hozz. Ennek elrse rdekben talltk ki a UNIX alkoti a fjlelrsi jogokat (file permissions). Ennek az a lnyege, hogy a tulajdonos (user) kontrolllja azt, hogy ki frhet hozz az ltala a gpen elhelyezett fjlokhoz, knyvtrakhoz.

A UNIX lehetsget biztost arra is, hogy a felhasznli csoportok tagjai fjlokat megosszanak egyms kztt, s a kzs fjlok lehetnek a csoport (s nem egyetlen felhasznl) tulajdonban.

Hrom fle jog ltezik: olvassi (read), rsi (write) s futtatsi (execute).

Ezeket a jogokat hrom osztlyba osztva adhatjuk meg: magunkra (user), a csoportunkra (group) s mindenki msra (others) nzve.

Az olvassi jog lehetve teszi, hogy a felhasznl a fjl tartalmt megnzhesse, knyvtrak esetn pedig, hogy azt kilistzhassa (ls parancs).

Az rsi jog a felhasznl szmra engedlyezi a fjlok rst, mdostst, knyvtrak esetben pedig j fjlok ltrehozst s a rgiek trlst.

Vgl a futtatsi jog lehetv teszi a programok, burokprogramok (shell script-ek - amennyiben a fjl egy program) - futtatst; knyvtrak esetn az oda val belpst (cd parancs).

A hozzfrsi jogosultsgokat az ls -l parancsal tudjuk megnzni.

-rw-r--r-- 1 akarki student 6242 Aug 28 1992 file1

A legels mez mutatja a fjlelrsi jogokat. (Mezkn egymstl szkzkkel elvlasztott karaktersorozatokat rtnk.) A harmadik a fjl tulajdonost, a negyedik pedig azt, hogy a felhasznl milyen csoportba tartozik. Az utols mez pedig a fjlnv.

Teht a fjl tulajdonosa egy akarki nev felhasznl, aki a student csoportba tartozik, a "-rw-r--r--" pedig a jogokat jelenti a tulajdonos, a csoport, vgl pedig mindenki ms szmra.

Az els karakter ("-") a fjl tipust jelli. A "-" azt jelenti, hogy ez egy "sima" fjl (pl. knyvtr esetn ez "d", mg szimblikus link ez "l" bet lenne.). A kvetkez hrom karakter "rw-" jelentse, hogy a tulajdonos olvashatja s rhatja a fjlt, de nem futtathatja.

A kvetkez hrom karakter, "r--", a csoportra vonatkoz jogokat definilja. E szerint a student csoportba tartoz felhasznlk olvashatjk a fjlt, amint ezt a kis "r" bet mutatja.

Az utols hrom karakter "r--" jelentse pedig az, hogy az elbbiekben felsoroltakon (owner, group) kvl esk is olvashatjk a fjlt.

Fontos itt megjegyezni, hogy az egyes fjlelrsi jogok fggnek annak a knyvtrnak az elrsi jogtol is, amelyben megtallhatak. Pldul, mg ha egy fjl elrsi joga -rwxrwxrwx (teht mindenki mindent csinlhat vele), msok nem frhetnek hozz, ha a knyvtr amiben van, tiltja az olvassi s futtatsi jogokat.

Az elrsi jogok megvltoztatsa Az elrsi jogok megvltoztatsa a chmod paranccsal lehetsges a tulajdonos szmra. Szintaxisa pedig:

chmod [ugoa][+-][rwx] fjlnv...

Az [ugoa] kapcsolkkal rjuk el, hogy kinek adjuk a jogot. Adhatunk jogokat a tulajdonosnak (u - user), a csoportnak (g - group), msoknak (o - others) vagy pedig mindenkinek egyszerre (a - all). A [+-] azt jelenti, hogy adhatunk (+) vagy elvehetnk (-) jogokat. Vgl pedig, hogy olvassi (r - Read), rsi (w - Write) vagy futtatsi (eXecute) jogot adunk. Nehny plda:

chmod a+r file1 - olvassi jog mindenki szmra

chmod +r file1 - ugyanaz, mivel az alaprtelmezs az "all"

chmod go-rwx file1 - a tulajdonoson kvl senkinek semmi

A chmod parancs hasznlhat oktlis formban is, ahol az egyes tulajdonosi kategrikhoz tartoz elrsi jogokat szm formjban adhatjuk meg, mely az egyes elrsi jogok szmainak az sszege. Az olvassi jog rtke 4, az rs 2, a futtats pedig 1. A hrom tulajdonosi kategrihoz hrom oktlis szm tartozik. pld

chmod 644 file1Ennek a parancsnak a hatsra az file1 nev fjl elrsi joga "-rw-r--r--"-ra vltozik.

Az elrsi jogokon kvl mdunkban ll a fjl tulajdonosnak s csoportjnak megvltoztatsa is. Az elbbire a chown az utbbira a chgrp parancs szolgl. pld

-rw-r--r-- 1 akarki student 6242 Aug 28 1992 file1

chown kovacs file1-rw-r--r-- 1 kovacs student 6242 Aug 28 1992 file1

chgrp guest file1-rw-r--r-- 1 kovacs guest 6242 Aug 28 1992 file1

A fjlrendszer kezelsre szolgl parancsok

A pwd (print working directory) parancs Ezzel a paranccsal az aktulis knyvtr nevt rathatjuk ki.

Az ls (list) parancs Ez a parancs megmutatja az aktulis knyvtrban tlalhat fjlok neveit. A lista alaprtelmezs szerint abc sorrendben sorolja fel a neveket, de alkalmas kapcsolk segtsgvel ms sorrendet is elrhatunk.

Kapcsolk:

-a Minden katalgusbejegyzst kilistz. A ponttal kezdd rejtett fjlokat is.

-d Ha az argumentum katalgus, a benne szerepl llomnyokat nem listzza.

-C Tbb hasbban nyomtatja ki a katalgus bejegyzseket.

-l Rszletes informcit listz ki, tulajdonos neve, hozzfrsi jogok.

-r Megfordtja a listzs sorrendjt, ha alfabetikus volt, akkor fordtott abc sorrendben listz, ha keletkezsi id szerint volt, akkor a legidsebbel fogja kezdeni.

-t Fjlok kilistzsa idrendi sorrendben. (A legutols mdosts szerint.)

-R A katalgusnv alatti teljes fjlstruktrt kilistzza, nem csak a megnevezett katalgusban szerepl fjlokat.

-F A listzs sorn minden nv utn / jelet rak ha az katalgus, * jelet rak ha az futtathat fjl s @ jelet rak ha az szimbolikus link.

A kapcsolkbl egyszerre tbb is hasznlhat.

A cd (change directory) parancs A katalgus rendszerben val mozgst teszi lehetv. Paramterknt a megclzott katalgus nevt kell megadni, vagy abszolt, vagy relatv elrsi tvonal hasznlatval.

Az abszolt elrsi tvonal megadsnl a keresett katalgus teljes elrsi tvonalt kell megadni. Ebben az esetben a cd parancs paramtere a / karakterrel kell hogy kezddjn, a cd parancs errl ismeri fel, hogy abszolt elrsi tvonalrl van sz. pl.

cd /users/demo (gy a demo nev alknyvtrba jutunk.)

Relatv cmzs esetn azt mondjuk csak meg, hogy az aktulis katalgushoz kpest hol helyezkedik el a megclzott katalgus. pl.

pwd/users/demo

cd..pwd/users

cd demopwd/users/demo

Ha a cd parancsot argumentum nlkl hvjuk meg, akkor a bejelentkezsi (home) knyvtrunkba jutunk vissza. (Erre j a $ HOME jel, vagy a ~ jel is.)

Az mkdir (make directory) parancs j katalgus ltrehozsra szolgl parancs. Ellenttben a DOS-ban alkalmazott paranccsal itt lehetsg van megfelel kapcsol alkalmazsval tbb alknyvtr egyidej ltrehozsra.

Pl. mkdir ujkonyvtarKapcsolk:

-p Ltrehozza a kvnt katalgus elrsig az ssze szksges katalgust.

Az rmdir (remove directory) parancs Knyvtrak trlsre szolgl parancs. Az rmdir parancs csak res knyvtrat vagy knyvtrakat trl.

Pl.: rmdir konyvtarKapcsolk:

-p A katalgus trlse utn, a szl katalgust is trli, ha res, rekurzven.

-s A -p kapcsol zenetnek az elnyomsa.

Az mv (move) parancs A fjlok llomnyrendszeren belli mozgatsra szolgl parancs. Az els paramterknt megadott file nevet tkereszteli a msodik paramterben megadott file nvre. Ha az utols paramter katalgus nv, akkor az eltte lv fjlokat thelyezi oda nv vltoztats nlkl. pl.

mv file1 file2 (Ha a file2 mr ltezik, akkor azt fellrja rendszerint figyelmeztets nlkl.)

mv file1 file2 demoA cp (copy) parancs Fjlok msolsra szolgl parancs. Az elz parancshoz hasonlan mkdik. Ebben az esetben is kt paramtert kell megadni, elsknt a msolni kvnt fjl nevt, majd msodik paramterknt a clfjlt, vagy clkatalgus nevt. Ha egy fjlt az aktulis knyvtrbl egy msik knyvtrba akarunk msolni vagy mozgatni, meg kell adnunk a cl knyvtr nevt is. Ha a mvelet trgyt kpz fjl nincs az aktulis alknyvtrban, akkor azt is meg kell adni, hogy melyik knyvtrban tlaljuk meg. Az albbi parancs az aktulis knyvtrban lev level1 fjlt tmsolja az (aktulis knyvtrbl nyl) mail knyvtrba:

cp level1 mailA kvetkez plda felttelezi, hogy ppen nem tudjuk, melyik knyvtrban vagyunk, s a gykrbl nyl public/news alknyvtrbl szeretnnk "hazamsolni" (a "home directory"-nkba) a last-news nev fjlt. Ime:

cp /public/news/last-news ~A ~ jel a bejelentkezsi (home) knyvtrunk rvid neve, gy nem kell kirnunk az ltalban tekintlyes hosszsg (/home/users/13k/akarki) home knyvtr nevet.

Az aktulis knyvtrnak is van egy rvidtett neve, mgpedig a pont (.). A kvetkez parancs a /usr/news/legujabb nev fjlt msolja t oda, ahol ppen tartzkodunk - vagyis az aktulis alknyvtrba.

cp /usr/news/legujabb .Kapcsolk:

-i Interaktv mkdsi md. Megkrdezi, hogy valban szeretnnk-e a fjlt fellrni.

-p Megrzi s rkti az eredeti fjl hozzfrsi jogait.

-r A megadott msoland katalgust a benne lv alkatalgusokkal egytt msolja.

-f Ha rsvdett a fjl vagy katalgus nem jelez hibt.

Az rm (remove) parancs Fjlok trlsre szolgl parancs. Ennl a parancsnl szintn megadhatunk tbb fjlnevet a paramterlistn. pl.

rm file1 file2 file3Ez a parancs letrli a file1, file2 s file3 nev fjlokat az aktulis alknyvtrbl.

Kapcsolk:

-f Visszakrdezs nlkl trli az llomnyt, akkor is ha az rsvdett.

-r Az argumentumlistn megadott katalgustl kezdve rekurzven trli az alatta lv llomnyokat s katalgusokat (mindent !)

-i Az llomnyok trlse eltt megkrdezi a felhasznlt.

!!!Ha egy fjlt letrltnk vagy fellrtunk, akkor az megsemmisl s semmilyen eszkzzel sem lehet visszalltani!!!Az ln parancs Segtsgvel egy fjlra tbb fle nvvel is hivatkozhatunk, vagyis egy adott fjlnak tbbfle nevet adhatunk.

Ez akkor lehet fontos, amikor van kett (vagy tbb) futtathat programunk melyek hasonl feladatokat ltnak el, s nem akarjuk mindkettt kln-kln lefordtani binris programm, hanem csak egy nagyobb programot akarunk melyet aszerint futtatunk le, hogy milyen nven hivatkozunk r. gy memria s lemezterleteket lehet megtakartani. Szp plda erre ppen ez a parancs, mely hasonl a cp s az mv parancshoz, gy e hrom tevkenysget tulajdonkppen egy binris program vgzi.

A UNIX ktfle linket ismer a hard s a soft linket, melyek csak abban klnbznek egymstl, hogy a UNIX mskpp kezeli ket.

Szintaxisa:

ln [ -s ] forrsnv clnv

Kapcsolk:

-s Soft linket kszt. (Kapcsol nlkl hard linket kszt.)

Pldul: Hard link kszitse:

ln egy kettoMost az egy s a ketto ugyanaz a fjl - teht, ha az egyiket mdostjuk a msik is mdosul, mivel csak a nv ms, a fjl ugyanaz. Ugy is felfoghatjuk, hogy egy fjlnak egyszerre ket nve is van.

Soft, avagy szimblikus link kszitse:

ln -s egy kettolrw-r--r-- 1 fvarga student 12 Aug 5 14:25 ketto -> egy@

A fjlelrsi jogok kezd "-" jele most l betre vltozott. Innen ltszik, hogy szimblikus linkrl van sz, azaz a link katalgus bejegyzse egy olyan fjlra mutat, ami a lncolt fjl nevt tartalmazza. (lsd a listzs vgn lthat nyilat.)

A df parancsSzabad lemezterlet sszegzse. A df program kijelzi az argumentumaiban megadott fjlokat tartalmaz fjlrendszerekben rendelkezsre ll lemezterletet. Argumentum nll az sszes beptett (mount-olt) fjlrendszer szabad terlett adja meg. Alaprtelmezs szerint a szabad terletek 1K blokkokban rtendk.

A kill parancsMegllt egy processzt (folyamatot). A kill program a megadott jelzst (signal) kldi a megadott processznek. Amennyiben nem adunk meg jelzst, a TERM-jelet kldi el. Ez megli azokat a processzeket, amelyek nem kapjk el ezt a jelzst. Szksg esetn hasznlhat a KILL (9) jelzs, amely nem kaphat el, gy felttlenl meglltja a processzt. A legtbb modern buroknak (shell) van beptett kill parancsa is.

A mount parancsFjlrendszert csatlakoztat (mount-ol). Egy Unix rendszeren elrhet sszes fjl egy nagy, faszerkezet, hierarchikus rendszerben van elhelyezve, amely a / (gykr) knyvtrbl gykerezik. Az innt elrhet fjlok azonban tbb eszkzn helyezkedhetnek el. A mount parancs arra szolgl, hogy egy eszkzn tallhat fjlrendszert ebbe a nagy fastruktrba bekapcsoljunk. Ezzel ellenttes rtelm az umount , ami a lecsatolsra szolgl.

Az umount parancsFjlrendszerek lecsatolsa (unmount-olsa). Az umount parancs lecsatolja a megadott fjlrendszereket a knyvtrstruktrrl. A fjlrendszer megadhat a csatolsi knyvtr vagy a csatolt eszkz specilis eszkzfjljnak megadsval. Megjegyzend, hogy egy fjlrendszert nem lehet lecsatolni, ha `foglalt' (`busy'), pldul ha nyitott fjlok vannak rajta, vagy nmely processznek a munkaknyvtra ezen tallhat, vagy rajta tallhat egy aktv swap fjl.

A ps parancs A processzek (folyamatok) llapott adja meg. A ps program az aktulis processzek pillanatfelvtelt adja. Amennyiben az llapotok ismtld frisstsre van szksg, a top hasznlata javasolt.

A tar parancsA tar archivl segdprogram GNU vltozata.

A zip parancsA zip archivl segdprogram GNU vltozata.

Mveletek szvegfjlokkal

A cat parancs A cat parancs a paramterknt megnevezett fjlokat listzza ki folyamatosan trdels nlkl. pld

cat file1 (A file1 tartalmt kiratja a kpernyre.)

Kapcsolk:

-s Nem kapunk hibazenetet hinyz llomnyok esetn.

-v A nem nyomtathat karaktereket olvashat formban jelenti meg.

A touch parancsMdostja az utols hozzfrs dtumt vagy (ha mg nem ltez fjlra hasznljuk) ltrehozza azt 0 hosszsggal.

touch file1A more parancs Hasonl mint a cat parancs, csak a fjl tartalmt oldalanknt jelenti meg. pld

more file1

A szvegbl most egy kpernynyi rsz jelenik meg, a szkz (space) billenty lenyomsra megmutatja a kvetkez oldalt. Ha nem akarjuk vgignzni az egsz fjlt, ssk le a q bett vagy a Ctrl-C-t.

A head parancs Egy fjl els sorait lehet vele megjelenteni:

head -15 file1

A file1 fjl els tizent sort listzza ki.

A tail parancs A fjl utols sorait lehet vele megtekinteni. pld

tail -3 fjl_nv

A file parancs A file parancs egy adott fjl tpusnak meghatrozsra szolgl. Kapcsolk nlkl az aktulis katalgusban vizsgl.

Kapcsolk:

-f knv A knv nev katalgusbl vizsglja a megadott fjl neveket.

-L Ha a fjl szimblikus link, akkor magt a fjlt vizsglja.

pld

file -f /home/demo file1file1:ascii text

De a file* parancs az aktulis katalgus fjljait fogja megvizsglni.

A du parancs A fjljaink s knyvtraink ltal elfoglalt lemezterletet lehet vele megtekinteni.

Szintaxisa:

du [ -a ] [ -s ] directory

Kapcsolk:

-a A knytrban szerepl sszes fjlrl is ad adatot.

-s Csak a knyvtr teljes helyfoglalst rja ki.

pld

du -s konyvtar15 (A du parancs az eredmnyt kilobjtban adja meg.)

A cmp parancssszehasonlit kt llomnyt ha nincs klnbsg nem tesz semmit, ha van akkor ki irja azt a sort ami klnbzik.

A comm parancssszehasonlt kt sorbarendezett file-t, sorrl sorra. kiirja azokat a sorokat, amelyek megegyeznek, s amelyek klnbznek a kt file-ban. A kt file-nak rendezettnek kell lenni a comm hasznlata eltt. Ha file-nvknt `-'-t adunk meg, az a standard bemenetet jelenti. Opcik nkl a comm hrom oszlopot ad kimenetknt. Az els oszlop a file1-ben lv egyedi sorokat mutatja, a msodik oszlop a file2-ben lvket, a harmadik pedig azokat, amelyek mindkettben egyformk.

pico - egyszer szvegszerkesztA pico egy egyszer kperny orientlt szvegszerkeszt amely a Pine zenetszerkeszt rendszern alapul. A pine-hoz hasonlan a parancsok itt is a kperny aljn jelennek meg s krnyezetfgg sgval rendelkezik. A karakterek a begpels pillanatban megjelennek a szvegben.

A szerkeszt parancsokat a control s a megfelel billenty kombincijval indthatjuk. Mivel a legtbb kommunikcis program "elnyel" bizonyos vezrlkaraktereket ezrt a control billenty az ESC billenty ktszer egyms utn val lenyomsval emullhat majd ezutn ssk be akvnt vezrlkaraktert. Pldul: "ESC ESC c" ugyanazt csinlja mint a ctrl-c. A szerkeszt t alapfunkcija: bekezds igazts, keress, blokk kivgs/ bemsols, helyesras ellenrzs, s fjl bngszs.

Bekezds igazts (vagy kitlts) arra a bekezdsre vonatkozik amelyikben a kurzor ppen ll, vagy ha a kurzor res sorban ll akkor a kvetkez alatta lvre. A bekezdsek res sorokkal vannak elvlasztva vagy olyan sorokkal amelyek szkzzel vagy tabultorral kezddnek. A visszaigazts a control-U billentyk kombincijval tehet meg de csak kzvetlenl az igazts utn.

A szvegkeress nem kis/nagybet rzkeny. Egy keress a kurzor aktulis pozicijtl indul s a szveg vgig tart. A keress sorn a legutols keresett szveget ajnlja fel a program mint alaprtket a kvetkez keresshez.

A szvegblokkok mozgathatak, msolhatak s trlhetek a kijells (ctrl-^), a trls (ctrl-k) s a trls visszavonsa (ctrl-u) parancsok gyes hasznlatval. A trls parancs eltvoltja a kijellsek kztt lv szveget s a "kivgs" bufferbe rakja. A trls visszavonsa parancs egy bemsolst hajt vgre az aktulis kurzorpozicinl.

A helyesrs ellenrz megvizsgl minden szt a szvegben. Ezutn egyms utn felajnlja az elgpelt szavakat javtsra mikzben kiemelve megjelenti ket a szvegben. A helyesrs ellenrzs brmikor megszakthat. A pico helyesrs ellenrz eljrsa helyett hasznlhatunk mst is, ekkor az eljrst a SPELL krnyezeti vltozban kell definilni. Az eljrsnak a standard bemenetet kell olvasnia es a standard kimenetre kell rnia.

A UNIX shell

A UNIX felptse cm fejezetben mr volt rla sz. A shell az a program, amelyik elindul amikor belpnk egy UNIX rendszerbe, a parancsokat innen adjuk ki s a parancsok vgrehajtsa utn ide trnk vissza (hasonl a DOS command processzorhoz). Minden shell egy un. prompttal jelzi, hogy ksz a parancsok fogadsra. Shell-bl tbb fajta ltezik. Az albbiakban a legelterjedttebb vltozatairl lesz sz. Kt f kategria van: az un. "Bourne shell" s a "C shell", ezek neve sh s csh. Nevkn kvl szintaxisukban klnbznek: a csh a C programoknl hasznlatos szintaktikt kveti hasonlan a tcsh-hoz, amely a csh egy kibvtett vltozata. Termszetesen az sh-nak is van bvitett vltozata: a ksh (Korn shell). Ez utbbi mindazokat a funkcikat igyekszik megvalstani amivel a csh tbb az sh-nl. pl. "history" buffer hasonlan a DOS doskey funkcijhoz, vagy aliasing mechanizmus, amelynek rvn hossz parancsokra rvidebb nevekkel tudunk hivatkozni. Mi a Bash shellt hasznljuk ez egyesti a kt shell fajat elnys tulajdongait.

A parancsok ltalnos szintaxisa

A parancssor elejt a prompt jelzi- ez rendszerint % vagy $ esetleg # jel a sor elejn, de brmi ms is lehet, tetszlegesen bellthat. A parancs neve utn szkzkkel elvlasztva kell megadni a paramtereket: ezek hatrozzk meg kzelebbrl, hogy a parancs mit is csinljon. A szkz fontos, mert a parancsrtelmez (shell) a parancssorban szerepl karaktereket az els "fehr karakterig" egybe olvassa. A fehr karakterek kz tartozik a szkz, a tabultor s maga az jsor karakter. A paramterek kzl azokat, amelyek mnusz (-) jellel kezddnek, ezentl kapcsolknak fogjuk hvni, mivel ezekkel lehet bekapcsolni egy parancs klnfle zemmdjait. A kapcsolkbl rendszerint egyszerre tbb is megadhat, ilyenkor ltalban elegend egy mnusz jelet kirni s felsorolni utna a kapcsolkat (ezt nem minden rendszer teszi lehetve!). Pldul az ls -l -a -r parancs megadhat igy is: ls -alr.

A UNIX mindig csak annyi zenetet ad, amennyit elengedhetetlenl szksgesnek tart. Ezrt ne lepdjnk meg, ha egy parancs vgrehajtsa utn semmi sem jelenik meg a kpernyn: ez azt jelenti hogy a parancs hibtlanul lefutott. A UNIX programok sikeres vgrehajts esetn soha nem jeleznek vissza, csak hiba esetn.

A UNIX trekszik az egysgessgre, ennek szellemben minden interaktv parancsbl ugyangy kell kilpni. (Interaktvnak nevezzk azokat a parancsokat, amelyek futs kzben elvrjk, hogy begpeljnk nekik valamit.) Teht ha ki akarunk lpni egy ilyen programbl, ssk le a Ctrl+D billentykombincit.

Ha a parancssorban tjk le a Ctlr+D-t, akkor kijelentkeznk a rendszerbl (nhny gpen ez le van tiltva, helyette a logout parancsot kell hasznlnunk). Ez sszhangban van az elz alapelvvel, mert amikor be vagyunk jelentkezve, valjban egy programot futtatunk (ez a parancsrtelmez, amit shell-nek vagy buroknak hvnak): kijelentkezskor ebbl a programbl lpnk ki.

Ugyancsak alapelv, hogy a kis- s a nagybetk klnbznek szmtanak. gyeljnk erre, s lehetleg semmit ne gpeljk csupa nagybetvel!

A shell vltozk s a krnyezet A shell rszben programozsi nyelv is, ezrt tartalmaz vltozkat, melyek lehetnek loklisak (a shell bels vltozi) s globlisak (a shell krnyezeti vltozi). Figyelem! Az sh-ban (sh, ksh) s a csh-ban (csh, tcsh) msknt kell rtket adni a vltozknak!

Az sh tipusu shellek az "=" jelet hasznljk loklis vltozk megadsra:

a="hello sh"mg a csh tipusuakban a set paranccsal kell rtket adni a vltozknak:

set a="hello csh"A kiratst mindkt shell esetben az echo parancs vgzi, a vltoz neve eltt pedig egy $ jelnek kell szerepelnie:

echo $ahello sh

Ezek a shell bels vltozi - teht csak az aktulis shellben ismertek, loklisak. A shell lehetv teszi a futtatand programok krnyezetnek (environment) belltsat is. A krnyezet azon vltozk csoportja, melyek minden programbl elrhetek, globlisak. A krnyezet belltsnak szempontjbl is klnbzik az sh s a csh. A krnyezet belltsa sh-ban:

Pldul PAGER krnyezeti vltoz, amelyet pldul a man parancs (ksbb mg sz lesz rla) hasznl megjelentprogramknt. A sh-ban kvetkezkppen llthat more helyett cat-ra.

PAGER="cat"export PAGERA krnyezeti vltozk belltsa csh-ban a setenv parancs segtsgvel trtnik. A fenti plda csh-s megfelelje teht:

setenv PAGER catEnnek kicsit kellemetlen az eredmnye, mivel ha man-t krnk, a szveg elrohan a szemnk eltt. Ha oldalanknt szeretnnk ltni a szveget, akkor llitsuk be a krnyezeti vltozt more rtkre.

Amennyiben egy loklis vagy krnyezeti vltozra nincs szksgnk, kitrlhetjk ket. Sh-ban unset vltoznv, csh-ban a loklis vltozkra unset vltoznv, a globlisokra pedig unsetenv vltoznv. Azt hogy milyen vltozk vannak bellitva gy tudhatjuk meg, hogy a set ill. a setenv parancsok utn nem runk vltoznevet.

A PATH krnyezeti vltoz Kiemelten kezeli a shell a PATH (csh-ban path) nev vltozt, ugyanis ez a vltoz jelzi a shell szmra, hogy hol kell keresnie a futtatand programot. Pldul:

echo $PATH/bin /usr/bin /usr/local/bin .

A fenti plda az sh -t mutatja, mindez csh-ban igy nz ki:

echo $path

/bin /usr/bin /usr/local/bin .

Teht a shell elszr megnzi, hogy a futtatand program a /bin-ben, a /usr/bin-ben, a /usr/local/bin-ben vgl pedig az aktulis knyvtrban (a "." ezt jelzi) tallhat-e?

Automatikus indts shell scriptek Minden shell kpes arra, hogy indulaskor egy adott nev shell scriptet elindtson, gy a felhasznlknak lehetsgk van arra, hogy krnyezetket szemlyisgkhz igaztsk.

Ez a program az sh-nl a bejelentkezsi knyvtrban (home directory) lv ".profile", csh esetben pedig a bejelentkezs esetn a ".login" s minden ms csh indtsnl a bejelentkezsi knyvtrban lv ".cshrc" rejtett fjl. Ki-ki ebbe teheti az ltala kedvelt vltoz s krnyezet belltsokat.

Lssuk mit lehet belltani egy .cshrc fjlban.

cat .cshrcset history=100

alias h history

alias ls ls -F

alias ll 'ls -l | more'

set prompt="`hostname` > "

A set history arra szolgl, hogy a begpelt parancsainkat a rendszer megrizze. A 100-as szm azt jelzi, hogy 100 parancsot riz meg. (mint a DOS-nl a doskey)

A h parancs most a history parancs ekvivalense - a history parancs az eddig begpelt utastsokat listzza ki.

A kvetkez sorban az ls az ls -F -nek lesz az ekvivalense. Ezutn minden ls parancs automatikusan ls -F lesz.

Az ezutni sor mg rdekesebb, mivel arra plda, hogy egy utasitssorozatnak legyen egy rvid neve. Teht egy lista kimenett tadjuk a more nzeget programnak, hogy oldalanknt lssuk azt.

Ezutn a prompt belltsra lthatunk pldt. A gp elszr lefuttatja a hostname programot, ami kirja a gp nevt s azt berakja a promptba. A ` (visszafel mutat egyes idzjel) jelentse, hogy a program futsnak eredmnyt helyettestse be a hostname sz helyett.

Az alias parancs arra szolgl, hogy egy hosszab utasitssorozatot egy parancs begpelsvel indthassunk. A jelenleg definilt aliasokat a paramterek nlkl hvott alias parancs mutatja meg; egy-egy aliast pedig az unalias paranccsal tudunk megszntetni.

Bemenet s kimenet fogalma

Mint mr korbban olvashattuk, a UNIX parancsok nem, vagy nagyon ritkn jelzik, ha jl mkdnek. Az, hogy a UNIX nem jelzi a hiba nlkli futst, azrt van, hogy a parancsok be- s kimenetei ms parancsoknak tadhatak legyenek. A legtbb program a bemenetrl (standard input - stdin) veszi az adatait s a kimenetre (standard output - stdout) kldi az eredmnyt. Azonban elfordulhat, hogy hiba lp fel s azt a programnak jeleznie kell. Ilyenkor a hiba lerst egy ms helyen, a hibacsatornn kapjuk (stderr). Rendszerint a bemenet a billentyzet, a kimenet s a hibacsatorna pedig a kperny.

Pldul: a sort parancs rendezi a bemenetrl berkez sorokat (a -r kapcsolval fordtott (reverse) rendezs):

sortgyufaizzokcsoko

csoko

gyufa

izzok

Megjegyzs: a a control (Ctrl) s a d billentyk egyttes letst jelenti!

Igy mris abc-sorrendbe raktuk a bevsrllistt.

A bemenet s a kimenet tirnytsa A shell lehetsget ad arra, hogy a kimenetet tirnytsuk (redirection), s ehhez csupn a ">" jelet kell hogy hasznljuk. Nzzk, hogy is mkdik ez az elz pldn.

sort > mit_vegyekgyufaizzokcsoko

Ugyanezzel a mdszerrel - tirnytas - hoztunk ltre fjlt (ott a cat parancs kimenett irnytottuk t). Az eredmny nem lthat, hanem a mit_vegyek nev fjlba kerlt. Nzzk meg, hogy valban ez trtnt-e?

cat mit_vegyekcsoko

gyufa

izzok

Ugyanez vonatkozik a bemenet tirnytsra is, ennek jele ">", ami szintn a kimenet tirnytst teszi lehetv; klnbsg kzte s a szimpla tirnytjel kztt annyi, hogy ha ezt hasznljuk, a fjl vghez tudunk hozzfzni j adatokat.

Csvek Azt mr tudjuk, hogy egy-egy program eredmnyt hogy lehet fjlba tirnytani, azonban lehetsg van arra, hogy egy program a bemenett egy msik programtl vegye. Erre talaltk ki UNIX-ban a cs (pipe) fogalmt. Azt, hogy egy program kimenett egy msik bemenetre szeretnnk tirnytani a "|" jellel jelezzk.

Vegynk egy konkrt pldt - szeretnnk a bejelentkezsi knyvtrunkat fordtott abc-sorrendben kiratni. Eddigi tudsunkkal hogyan tudjuk ezt megvalstani?

ls -l > file_listcat file_listtotal 3

drwxr-xr-x 2 fvarga 1024 Jul 21 1992 Apps

drwxr-xr-x 8 fvarga 1024 Oct 19 13:35 Library

drwxr-xr-x 3 fvarga 1024 Jul 25 1992 Mailboxes

sort -r < file_listtotal 3

drwxr-xr-x 3 fvarga 1024 Jul 25 1992 Mailboxes

drwxr-xr-x 8 fvarga 1024 Oct 19 13:35 Library

drwxr-xr-x 2 fvarga 1024 Jul 21 1992 Apps

A sort kapcsoli csak azt jelentik, hogy a 3. meztl kezdjen rendezni (egyet ki kell vonni a mez sorszmbl!), s hogy forditva (r - reverse)

Ezt a cs hasznlatval egy sorban is el lehet intzni, s az eredmny ugyanaz:

ls -l | sort -rNagyon j szolglatot tesznek a csvek a hosszu knyvtrlistk nzegetsnl is. Az ls -l | more paranccsal oldalanknt nzegethetjk a listt, igy az nem fut le a kpernyrl.

forrs: Csonka Gabor es Varga Ferenc: UNIX felhasznli ismeretek

LINUX

bevetezets

A Linux szabadterjeszts szoftver, teht brki ingyen msolhatja, tovbbadhatja, mdosthatja, ha ezrt nem kr pnzt. (Ez egy kiss bonyolultabb, de pecz megfogalmazsban olvashat a 6.2 fejezetben.) Ebbl addan a Linux mgtt nincs egy vilgcg, amely reklmmal, piackutatssal, megvesztegetssel egyengetn a rendszer tjt. Ezzel szemben tbb szz fejleszt dolgozik a tkletestsn, s Linus Torvalds mostanra nemcsak fejleszti Linux-ot, hanem ezt a fejlesztst koordinlja. Ezek a fejlesztk tbbnyire nem ismerik egymst, csak az Interneten keresztl tartjk a kapcsolatot. Ez a sztszrt fejleszts mgis olyan hatkonysggal trtnik, hogy a Linux megbzhatsg, sebessg tekintetben btran felveheti a versenyt brmely ``pnzes'' opercis rendszerrel. (Az rban meg egyenesen verhetetlen.)

A Linux trtnetbe val bepillants teht egy olyan vilgba vezet minket, ahol a programozk ``dicssgrt'' programoznak, mindenki szabadon tadja ismereteit a tbbieknek, s az egsz vllalkozst a lelkeseds viszi elre, mgis a szoftvernagyhatalmakkal sszevethet eredmnyessggel dolgozik.

Ez a mentalits nemcsak a Linuxot jellemzi, hisz mr a `70-es vekben jelentkeztek a UNIX-os vilgban az els szabad terjeszts programok (maga a UNIX is az volt eredetileg). Ezeket a szabad szoftvereket a ``GNU project'', valamint a ``Free Software Foundation'' fogja ssze, melyeknek tevkenysge szlesesebb kr, mint a Linux rendszer. Ezen munkkba is bepillantst szeretnnk adni ezen dolgozatban.

Mi is az a Linux?

Ma a Linux egy 32/64 bites, POSIX szabvnyt kvet UNIX vltozat, amely eredetileg csak IBM PC gpeken futott (80386 vagy jobb processzor esetn), de mra nagyon sok hardverre adaptltk. gy ltezik Linux DEC AXP, PowerPC, M680x0, Sun Sparc alap gpekre is. A klnbz hardverekre a rendszer kidolgozottsga eltr fok, de mindegyik esetn legalbbis sszemrhet hatkonysg s megbzhatsg az azon a gpen szoksos opercis rendszerekkel, tbb esetben pedig sok szempontbl jobb.

Klnsen igaz ez a 386/486/586/686 alap IBM PC-k esetben: sebessg s megbzhatsg tekintetben messze tlszrnyalja a leginkbb elterjedt DOS, Windows, Windows '95 rendszereket. Pldul teljesen megszokott, hogy egy Linuxos szerver jjel-nappali zemben dolgozva, 2-6 felhasznl ltal ignybe vve hnapokig megbzhatan zemel, mg a legelterjedtebb rendszerekkel egy felhasznl sem tudja knnyen elrni, hogy naponta egyszer ne kapjon ``ltalnos vdelmi hiba'', vagy hasonl sokatmond zenetet.

Egy msik plda erre az, hogy az Ultra Sparc processzoron fut 64 bites Linux teljesen stabilnak tnik, mg a Sun mg nem tudott elllni stabil 64 bites opercis rendszerrel ugyanerre a processzorra..

A Linux valban 32/64 bites s valban tbbfelhasznls (multiuser) s tbbfeladatos (multitasking) opercis rendszer. Ennek az az oka, hogy rja nem egy korbbi rendszert kezdett el tkletestgetni, toldozgatni, hanem ``az els bittl kezdve'' elrl rta meg, felhasznlva sok ms programoz tapasztalatt, ksbb programrszleteit.

A nagyon gondos programozs miatt ritka, hogy kt program (pontosabban: kt process) zavarja egymst, gy kitnen alkalmas programfejlesztsre is.

A Linux rendelkezik a szoksos funkcikkal: virtulis memria, merevlemez gyorsttr, memrialemez, Internet hozzfrs, a leggyakoribb hardverelemek (CD-olvas/ir, nyomtat, IDE s SCSI lemezek, stb.) kezelse.

A rendszer kidolgozottsga olyan fok, hogy egyre tbb helyen alkalmazzk UNIXos munkallomsknt, vagy hlzati szerverknt. Mindkt esetben hatalmas elny a szoksos IBM PC-s programokkal szemben a nagyfok megbzhatsg s az alacsony r, valamint az sem elhanyagolhat, hogy nagyon nagy a hasonlsg a Linux s a ``nagygpek'' opercis rendszerei kzt, azaz pl.\ egy Linuxos program knnyen tvihet mondjuk egy Sun SPARC gpre, de gondos programozs esetn akr egy CRAY szupergpre is.

Joggal merlhet fel a krds: ha mindez gy van, mirt nem Linuxot hasznl mindenki a vilgon. Erre a dolgozat htralev rszben rszletes magyarzatot adunk, itt csak a fbb szempontokat emltjk meg.

Mivel a Linux szabadterjeszts, gy a programozk szmra nem biztost meglhetst (st, leginkbb egy garast sem). Ezrt senki nem vllal felelssget azrt, hogy az ltala rt rsz mkdni fog. Ez sokakat visszariaszt, s ki sem prbljk a rendszert. Tovbb, mivel nincs a Linux mgtt egy nagy cg, nincs biztostk arra, hogy a rendszer fejlesztse nem marad abba mondjuk jvre. Ugyanezen ok miatt nincs reklmozva sem a termk, teht sokan meg sem ismerik.

Az, hogy ezek ellenre a Linux-felhasznlk szma millikban mrhet, azt jelzi, hogy rdemes erre a rendszerre odafigyelni, s a szmtstechnika trtnetnek rdekes, s ma is l sznfoltjt jelenti ez a program, s az a mozgalom, ami krltte kialakult.

A Linux trtnete napjainkig

Nehz egy ilyen szertegaz rendszer trtnett megrni. A tbb szz fejleszt miatt -- a kezdeteket leszmtva -- az esemnyek ugyanis tbb szlon zajlottak. Ezek kzl itt elszr, a rendszermag (kernel) fejldsvel foglalkozunk. Ksbb kitrnk a terjesztsi csomagok (disztribcik) trtnetre is.

A Linux szletse, csecsemkora (0.01-0.10)

A Linux fejlesztsnek kezdetn Linus Torvalds a 80386 processzor vdett md (protected mode), feladat-vlt (task-switching) lehetsgeivel szeretett volna megismerkedni. Ez kb. 1991 nyarnak elejn lehetett. A pontos dtumra maga a szerz sem emlkszik, de amikor egyszer megkrdeztk, mikor van a Linux szletsnapja, azt mondta, hogy nem tudja megmondani, de egy e-mail tansga szerint jlius 3-n mr a POSIX szabvny utn rdekldtt, gy akkor mr biztos futott az alaprendszer.

1 bra: Linus Torvalds

A program fejlesztse egy korbbi PC-s UNIX, a Minix alatt trtnt, eleinte assembly-ben. Az els fzisban kialakul 0.01-es vltozat mg semmire sem volt hasznlhat, csak egy lpcs volt a tovbbfejlesztshez. Linus Torvalds gy r errl:

Kt hnap telt el az alaprendszer fellltsig, de utna rvidesen lett egy lemezmeghajtm (amely slyos programhibkkal volt tele, de az n gpemen trtnetesen mkdtt) s egy kis fjl-rendszerem. Krlbell ekkor [1991.\ augusztusnak vgn] tettem kzz a 0.01-es vltozatot: nem volt kicsinostva, nem volt floppi-meghajtja, s nem sok mindent tudott csinlni. Azt hiszem, soha senki nem fordtotta le ezt a vltozatot. De akkor mr beindultam, s nem akartam addig megllni, amg tl nem haladom a Minixet. Amikor Linus ttrt a C nyelvre, a fejleszts lnyegesen gyorsabb vlt, s olyan nagyratr tervek fogalmazdtak meg, hogy valaha le lehessen fordtani a GNU C fordtjt Linux alatt. (Ma mr csak csodlkozni lehet azon, hogy 1991-ben ez volt a nagy lom, s azta hol tart a rendszer.)

Ez a legels vltozat mg nem volt hasznlhat: csak Minix alatt lehetett lefordtani, s semmi hasznos funkcija nem volt azon kvl, hogy rja megismerkedett a processzorral.

1991. oktber 5-n hirdette meg Linus az els ``hivatalos'', 0.02-es Linux-ot az Interneten. Ekkor mr nhny alapprogram futott a rendszeren (pl. a GNU ``gcc'' nev C fordtja, valamint a ``bash'' burokprogram), gy mr el lehetett kezdeni hasznlni a rendszert. Ekkor nem is a rendszer hasznlhatsgnak nvelse volt a f cl, hanem a rendszermag fejlesztse. Ezrt ekkor nem kszltek dokumentcik, installcis csomagok, stb. A Linux ekkor mg csak a megszllott hackereknek kszlt.

Linus ekkor elhatrozta, hogy az Interneten keresztl bevonja a fejlesztsbe a szabad kapacitssal rendelkez programozkat, s a kvetkez hirdetmnyt tette kzz a comp.os.minix hrcsoportban:

Svrogsz a Minix-1.1 szp napjai utn, amikor a frfiak igazi frfiak voltak, s mindenki maga rta a sajt eszkzmeghajtjt? Egy szp project nlkl vagy, s pp fened a fogad egy opercis rendszerre, amit ignyeidnek megfelelen alakthatsz? Frusztrlnak tallod, ha minden mkdik Minix alatt? ...Akkor ez a levl lehet hogy pont neked szl.

Ahogy egy hnapja emltettem, egy szabad Minix-szersgen dolgozom AT-386 szmtgpre. Vglis elrkeztem egy olyan llapotra, amikor ez egytaln hasznlhat (br ez fgghet attl, mit akarsz), s a program forrskdjt szlesebb krben tervezem sztosztani. Ez mg csak a 0.02-es vltozat, de sikeresen futtattam a bash, gcc, gnu-make, gnu-sed, compress, stb. programokat alatta. Megjegyzend, hogy ekkor, s mg egy darabig a Linux ersen kapcsoldott a Minix-hez: nllan nem is ltezett, csak alatta lehetett lefordtani, futtatni, tovbb az Interneten is a Minix hrcsoportjban folyt a Linux-rl szl trgyals.

A 0.03-as verzi kt-hrom ht alatt megszletett, majd 1991.\ decemberben Linus kibocstotta a 0.10-eset is. Ez az ugrs a szmozsban azt tkrzte, hogy jelentsen megntt a Linux alatt futtathat alkalmazsok szma, de a Linux mg mindig nem volt nll, szerzje szerint is ``egy hacker ltal hackereknek rt'' rendszerrl van sz, gy a rendszernek csak fejleszti vannak, felhaszli nem.

A Linux gyermekkora (0.11-0.99)

1991. december 19-tl, a 0.11-es vltozat kibocststl szmthatjuk a Linux gyerekkort. Ez volt az els nll rendszer, teht nem kellett Minix a hasznlathoz. Sok olyan tulajdonsggal rendelkezett, amely jelezte, hogy itt valami komoly kszl. Ezeket Linus felsorolsban adjuk kzre:

A 0.11-nek a kvetkez jdonsgai vannak:

demand loading

kd s adatmegoszts nem kapcsold processzek kzt

sokkal jobb floppi-vezrlk (most mr tbbnyire mkdnek)

hibajavtsok

Hercules/MDA/CGA/EGA/VGA tmogats

a konzol hangot is ad (h! Fantasztikus rendszermag!)

mkfs/fsck/fdisk (fjlrendszer karbantart programok)

amerikai/nmet/francia/finn billentyzet

a com1/2 sebessge bellthat

A 0.12-es vltozat 1992. janur 15-n ltott napvilgot, nhny bvtssel: Mr volt init/login szolgltats (nem root-knt kellett elszr bejelentkezni, s inicializlni a rendszert), kzeledett a POSIX szabvnyhoz, virtulis memrit is hasznlt s kissebb korrekcikat tartalmazott.

Ez egy elg stabil vltozat lett, ekkortl kezddtt el a Linux igazi hdtsa. A 0.12-es Linuxot ugyanis elkezdtk hasznlni ``egyszer'' felhasznlk is, nemcsak megszllottak.

Szintn ehhez a vltozathoz kapcsoldik a Linux fejlesztsnek kiszlesedse: a 0.12-es mr lnyeges rszeket tartalmazott, melyeket nem Linus Torvalds rt. Pl. a ``job control''-t Theodore Ts'o, a virtulis konzolokat Peter MacDonald programozta.

Az gy elll rendszer mr tbb vonatkozsban jobb volt a Minix-nl, de mg mindig nem volt lthat, hogy ebbl akkora mozgalom lesz, mint ami mra kialakult.

A sikeren felbuzdulva a verziszm hirtelen ugrott: a 0.95-s 1992.\ mrciusban, a 0.96 prilisban lett kibocstva. Ekkortl kezdve hihetetlen temben gyarapodott a Linux-felhasznlk s -programozk szma.

Ekkor a verziszm hirtelen ``befkezett''. 1993. decemberben a verziszm 0.99pl14 volt. (A pl14 a ``patch level 14'' rvidtse, azaz ez a 14.\ javtott vltozat.) Br a 0.95-s verzitl kezdve a szolgltatsok szma, a megbzhatsg, s sok egyb szempontbl jelents javuls kvetkezett be, s hihetetlenl sokan hasznltk ezeket a rendszermagokat, az 1.0 verziszmot csak akkor mertk kiadni (1994. elejn), amikor a POSIX szabvnnyal val kompatibilits kielgtv vlt.

A 0.95-0.99 rendszermagra pl rendszereknek risi npszersgk volt. Egyes egyetemeken, pontosabban azok bizonyos intzeteiben gyakorlatilag likvidltk az sszes nem Linux-os programot, s a PC-ken nem lehetett DOS-t vagy Windows-t tallni. (Legfeljebb a titkrsgokon.) Ez fleg olyan helyeken kvetkezett be, ahol a kutatk UNIX alatt dolgoztak, mert egy Linux-os PC-n otthon is fejleszthettk a programjukat, s ezeket egyszer volt az intzet nagykapacits gpeire ttenni. (Egyik ismersm szemlyesen tapasztalta ezt 1993-ban a Wrzburgi Egyetem Csillagszati Tanszkn: sz szerint senki sem hasznlt DOS-t, mg otthon sem, legfeljebb a kedvenc jtkprogram futtatsra. Az otthoni Linux-os gpen kifejlesztett, tesztelt programok gond nlkl ttehetk voltak az intzet CRAY gpre.)

Haznkban ekkortjt (1993) kezdett igazn elterjedni a Linux, mert ekkorra ktttk be a felsoktatsi intzmnyek nagy rszt az Internetbe, gy sokaknak megnylt a lehetsge a Linux beszerzsre.

Megjegyezzk, hogy a 9.1 fejezetben pontosan megadjuk a kernelek megjelensi idpontjait.

A Linux s a Minix sztvlst meggyorstotta, hogy a Minix szerzje, Andrew Tanenbaum nem nzte j szemmel a Linux-ot. Alapveten elhibzottnak tartotta a Linux rendszermag tpust; Linus Torvalds ugyanis n.\ ``monolitikus kernelt'' rt, mg Andrew Tannenbaum (elmleti megfontolsok alapjn) a ``mikrokernelt'' jobb vlasztsnak tartotta. Sajnos, a vitba szemlyes elemek is keveredtek, s a vita jrszt az Internet hrcsoportjaiban zajlott, meglehetsen nagy nyilvnossg eltt. gy kiss ideges hangulatban zajlott le a Minix s a Linux sztvlsa.

Csak zeltl:

Andrew Tannenbaum:

Tovbbra is fenntartom azt, hogy 1991-ben monolitikus kernelt tervezni alapvet hiba. rlj, hogy nem vagy a tantvnyom. Nem kapnl tl j minstst egy ilyen tervezsre :-) Linus Torvalds:

Az n foglalkozsa professzor s kutat: Ez egy pokolian j mentsg a Minix nmely agysrlsre. Andrew Tannenbaum (1992-ben):

A Linux elavult! Mivel nem ismerem a Minixet, ezrt nem tudok dntbr lenni a vitban, de mra a Linux felhasznlk szma, alkalmazsok sokrtsge, s egy csom ms szempont szerint nagysgrendekkel veri a Minix-et. Taln elg azt megjegyezni, hogy a Linux-szal kapcsolatos angol nyelv hrcsoportok szma tbb, mint 10, s magyarul is jpr (kb. 6) Linuxos hrcsoport mkdik, mg a Minix-szel csak egy foglalkozik az egsz vilgon, melynek forgalma ssze sem vethet a magyar Linux-listkval sem.

Annyit azonban meg kell jegyezni, hogy a Minix azrt sem terjedhetett annyira, mint a Linux, mert nem szabadterjeszts. Ennek ellenre az valsznsthet, hogy Andrew Tanenbaumnak nem volt igaza abban, hogy a Linux alapvet szervezse teljesen hibs, mert alapvet hibkkal nem lehetne egy rendszer ennyire stabil, s nem is terjedt volna el. Taln szemlyes ambciit srtette, hogy egy egyetemista az vnl hasznlhatbb rendszert hozott ssze, mely mellett a Minix elhanyagolhat szerepet jtszik. Mindenesetre sajnlatos, hogy ilyen veszekedsekre is sor kerlhet komoly szakemberek kztt.

A Linux fiatalkora (1.0.0-1.2.13)

A POSIX szabvnyosts megfelel szint elrsvel 1994. mrciusban megjelent az 1.0.0 sorszm kernel. Ekkortl kezdve egy specilis sorszmozsi eljrst vezettek be a fejlesztk: A verziszmot hrom, ponttal elvlasztott nemnegatv egsz jelzi. Az els a f verziszm, ami csak a rendszermag lnyegt rint vltozsoknl vlt eggyel nagyobbra. A msodik szm elg specilis jelents: ha pros, akkor stabil, tesztelt kernelrl van sz, amit brkinek ajnlanak hasznlatra, mg a pratlan szm tesztvltozatot jell, amit inkbb azoknak javasolnak, akik tesztelni, fejleszteni szeretnk a kernelt, s akiknek nem szmt, ha a rendszer nha ``elszll''. A harmadik szm pedig kisebb mdostsokkor ugrik egyet.

PRIVATE "TYPE=PICT;ALT=figure44"

bra: A Linux "hivatalos" emblmja

Ennek megfelelen egyszerre kt szlon fut a legjabb verziszm: pl. a legfrissebb kt kernel sorszma 2.0.30 illetve 2.1.46. A stabil verzikba csak olyan modulok kerlhetnek bele, amelyek a fejleszti vltozatokban mr zembiztosnak bizonyultak.

Ez a fura sorszmozs lehetv teszi, hogy az egyszer felhasznlk csak a valban hasznlhat vltozatokat kapjk meg, de kzben az esetleg mg hibkat tartalmaz fejleszti vltozatok is hozzfrhetek legyenek. A ksbbiekben mi csak a stabil verziszmokkal foglalkozunk, mert ezek a ``hivatalos'' vltozatok.

Ezen vltozatok nem hoztak jabb hatalmas ttrst, mert az mr korbban bekvetkezett. A fejleszts sorn a rendszermag egyre hatkonyabb lett, beptettk a legjabb hardverek meghajtit (CD-olvask, PCI-buszok, jabb SCSI-eszkzk, stb.). Taln leginkbb az 1.2.x-es kernelekkel bevezetett j vgrehajthat programformtum, az ELF megjelenst kell itt megemlteni.

Ebben az idben a Linux alatti felhasznli programok szma ntt meg hihetetlenl. Mg korbban fleg mr meglev szoftvereket vittek t a Linux al, addig ekkor mr megjelennek azok a programok, melyeket Linux alatt fejlesztenek, s innt viszik t a tbbi rendszerre. Ekkor mr nagy szoftvercgek is elksztik programjaik Linux-os vltozatt (pl. Maple V, Motif 2.0). Ezek termszetesen nem szabadterjesztsek, s az, hogy megri Linux-ra is adaptlni ket, egyrtelmen jelzi, hogy a Linux-felhasznlk tbora vilgmretekben is piacot jelent.

Ekkortjt egyre tbb Linux-disztribci kezd megjelenni, azaz tbb cg olyan programcsomagot llt el, amelyekkel a Linux teleptse, karbantartsa sokkal knnyebb, mintha mindenki egyenknt gyjten be a rendszer rszeit. Ezekrl egy ksbbi fejezetben kln szlunk.

Napjaink Linux-a (2.0.0-2.0.30)

1996. augusztusban jelent meg a 2.0.0 sorszm rendszermag. Ennek f jtsa a modulok megjelense volt: a kernel bizonyos rszei modulknt is elkszthetk, s ezek a modulok akr automatikusan, akr kzzel betlthetk a memriba, ahonnt a rendszer kipakolja ket, ha rgta nem hasznljuk.

PRIVATE "TYPE=PICT;ALT=figure50"

bra: A Linux 2.0 logja

Pldul a nyomtat, floppi-vezrl, nem Linux-os fjlrendszereket kezel rszeket clszer modulba tenni, mert ekkor ezek csak addig foglaljk a memrit, amg ppen hasznljuk ket, s ez tbbnyire a munkaid jelentktelen rsze.

Ezzel az az rdekes helyzet llt el, hogy a rendszermag memriaignye kisebb lett, mg hatkonysga s megbzhatsga megntt. (Errl a tendencirl pldt vehetnnek a piacot ural szoftverhatalmak is. Csakhogy azok nem hatkonyabb, hanem nagyobb anyagi hasznot hoz rendszer rsban rdekeltek, s a hardvergyrtkkal val sszefonds miatt sokszor a nagyobb memriaigny kifejezetten elny a cg szmra.)

A Linux jvje

Nehz, s veszlyes dolog jslsokba bocstkozni, de nhny alapvet dologban biztosak lehetnk.

A Linuxnak akkora tbora van, hogy mg Linus Torvalds s a tbbi vezet programoz kilpse esetn is tovbb fog folytatdni a munka. Klnsen igaz ez azrt, mert mra nemcsak IBM PC-ken, hanem a legerterjedtebb munkallomsokon is fut Linux.

A mai napig folyamatosan nvekszik a Linuxos szoftverek, a felhasznlk szma, s az alkalmazsok sokrtsge. Hogy csak egy pldt emltsek: megptettek egy ``LOKI'' nev Linux-os szupergpet, amely 16db, hlzatban sszekapcsolt 200MHz-es PC-bl ll, s ezt a Los Alamos National Laboratory-ban komoly kutatsi feladatokra hasznljk, mert szmtsi kapacitsa egy kisebb CRAY szmtgpvel egyenrtk, az ra pedig annak tredke. (A rendszer fbb paramterei: 16 db Pentium Pro processzor, 2 gigabjt RAM, 50 gigabjt winchester, 1.2 gigaflop. Az ra: 63000$.)

gy nz ki teht, hogy lendletben van a rendszer, s tbb vig tart biztos dinamikus fejlds eltt ll.

Vlemnyem szerint az egyetemi s kutatsi helyeken mlt vetlytrsa brmelyik opercis rendszernek, s itt a jelenleginl sokkal nagyobb elterjedsre szmthatunk a kzeljvben. (Klnsen, ha figyelembe vesszk a magyar felsoktatsi intzmnyek anyagi helyeztt.)

Ugyanez nem mondhat el az irodai alkalmazsokrl, mert hinyzanak az ide szksges szoftverek, de leginkbb a kzrthet, tbb nyelven elrhet dokumentcik. Igaz ugyan, hogy az utbbi idben ez is vltozni ltszik: pl. a Staroffice rendszer, amelynek jelenleg nemrg jelent meg az els stabil vltozata, kifejezetten irodai clokra kszl, s lltlag teljesen kompatibilis mdon fut Linux, Windows `95, Windows NT, SunOS, s a legelterjedtebb opercis rendszerek alatt.

Ezen kvl is egyre tbb irodai csomag kezd megjelenni Linux al, melyek kzl taln az Applixware rendszert illetve a Wordperfect szvegszerkeszt programot kell leginkbb megemlteni.

Az biztos, hogy Linus Torvalds nem lesz a fejlds gtja. Egy helyen ugyanis ezt rja:

Azon a napon, amikor a Linuxot valaki ms jobban tudja szolglni (az FSF egy termszetes alternatva), flrellok. Nem gondolom, hogy emiatt valakinek aggdni kellene, s nem is gondolom, hogy ez a kzeljvben bekvetkezik. Szeretek a Linuxszal foglalkozni, mg ha ez egy kis munkval jr is, s mg senkitl sem kaptam panaszt. (Csak nhny, majdhogynem szgyenls emlkeztett arrl, hogy egy foltot elfelejtettem, vagy nem vettem figyelembe, de eddig semmi negatvot.)

Ne vegytek gy a fentieket, hogy azon a napon, amikor valaki ellenkezik, abbahagyom: elg kemnyfej vagyok (Lasu, aki ezt a vllam felett olvassa, megjegyezte, hogy ``a FAfej kzelebb van az igazsghoz'') egy kis mocskoldshoz. Ha nem lennk az, abbahagytam volna a Linux fejlesztst, amikor a comp.os.minix-en nevetsgess tettek. Csak arra gondoltam, hogy br a Linux eddig az n gyermekem volt, nem akarok tban lenni, ha az emberek jobbat szeretnnek csinlni (*).

(*) H, lehet, hogy krhetnm a szentt avatsomat a Pptl! Tudja valaki az e-mail cmt?

A Linux-terjesztsek (disztribcik)

A Linuxot kezdetben pusztn az Internetrl lehetett beszerezni, s az installls nem volt tl knny. Ekkor a rendszert mg csak a szmtgphez nagyon rtk hasznltk. A npszersg nvekedtvel azonban igny mutatkozott olyan programcsomag-rendszerre, amely a kevsb szakrt szmra is lehetv teszi a teleptst. Ez volt az oka a Linux-terjesztsek (disztribcik) megjelensnek.

ltalnos tendenciaknt azt emlthetjk, hogy az egyre ksbbi disztribcik egyre jobban megknnytik a felhasznl dolgt. Igaz, ennek ra van: egyrszt a legautomatikusabb vltozatok pnzbe kerlnek, msrszt egy automatikus telepts sohasem olyan gazdasgos, mint egy kzi vezrls. Teht egy automatikus teleptskor felkerlhetnek felesleges programok is, vagy a konfigurci nem a legjobban illeszkedik a rendszerhez, viszont a telepts elkezdse s a rendszer hasznlatba vtele kzt sokkal kevesebb id telik el, s az j programvltozatok is knnyen telepthetk lesznek.

Trtnetileg az els, vilgmretekben elterjedt disztribci a ``Slackware'' volt. Ez megknnytette a rendszer teleptst, gy nemcsak szmtgp-specialistk tudtk feltenni a Linuxot a gpkre. Ez azonban nem azt jelenti, hogy a telepts knny lenne: elg sok dokumentcit kell elolvasni annak, aki Slackware-t akart telepteni. Ez a disztribci magn viseli a mlt nyomait: mg mindig 1.4 megabjtonknt, azaz floppyra tehet mdon vannak rendezve a programcsomagok, br ma mr kevesen teleptik a Linuxot floppyrl. (Taln CD-rl trtnik a legtbb installci, de sokszor a az Interneten keresztl, valamilyen kzeli szerverrl trtnik a telepts.)

Megemltend azonban, hogy a kezdeti idkben sem volt egyeduralkod a Slackware: lteztek ms disztribcik is. Ilyenek voltak pl. az SLS, Transameritech illetve MCC terjesztsek, melyekrl pontosabb informcival nem rendelkezek.

A Slackware rendelkezik programcsomagok installlsra, letrlsre, karbantartsra rt programmal, de ez viszonylag kezdetleges a ksbbi disztribcikhoz kpest. (Igaz, a legjabb, 3.2-es Slackware-ben ezt lltlag javtottk, de mg nem szereztem megbthat rteslseket errl.)

Mostanban egyre nagyobb trt hdt a ``Red Hat'' disztribci. Ez klnsen a knny telepthetsgvel, fejlett csomagkezelsvel, s a programcsomagok nagy vlasztkval nyjt a Slackware-nl tbb knyelmet. Igaz, ennek ra van: 8 megabjt RAM alatt nem telepthet, mg a Slackware ennek felvel is megelgszik. A RedHat legfrisseb verziszma a 4.2-es.

A Red Hat-hez hasonl szolgltatsokat nyjt a ``Debian'' is, de errl nem tudtam pontos informcikat begyjteni.

Az eddig emltett disztribcikkal ellenttben a ``Caldera Open Linux'' teljes vltozata nem szabadterjeszts: nemcsak az informcihordozt s a msolsi kltsget kell megfizetnie annak, aki ilyenhez szeretne jutni. Az ra (kb. 15-20000Ft) azonban mg gy is kedvez a hasonl cl ``opercis'' rendszerekkel sszevetve, klnsen azrt, mert egy teljes Caldera Open Linux csomag kereskedelmi (pnzes) szoftvereket is tartalmaz, mint pl. Netscape, Staroffice.

A szabad szoftverek (freeware) s a GNU project

A Linux szabad szoftverknt terjed. Els pillanatra ez furcsa lehet, azonban ha a szmtstechnika trtnett megnzzk, rjhetnk, hogy ez nem mai tallmny.

Az mai rtelemben vett szmtstechnika az 50-es vekben indult. Ekkor a gpek ptsi s karbantartsi (hardver) mveletek nagysgrendekkel tbb emberi munkt ignyeltek, mint a programok (szoftver) ksztse. Ennek egyik oka abban keresend, hogy igen drga volt az elektronikai berendezsek ellltsa, msrszrl a programok -- mai szemmel -- meglehetsen kis mretek voltak. (Nem is lehettek nagyok az akkori gpeken.) Ez azt eredmnyezte, hogy a szoftvereket szabadon, barti alapon terjesztettk rik, illetve az opercis rendszerek a szmtgp tartozkainak szmtottak. Mg az 1969-ben szletett UNIX forrskdjnak egy vltozata is szabadterjeszts volt eredetileg. Ksbb egyes intzmnyek, cgek is megrtk a sajt UNIX-vltozatukat, s ezek nmelyikt mr komoly sszegekrt rultk, mindenfle mdon vdekezve a szabad msols ellen. (Hasonl jelensg volt megfigyelhet ms opercis rendszerek esetn is.) gy tnik, az MS-DOS is sok tletet szedett a UNIX-tl, ha nem is kzvetlenl, de a CP/M-en keresztl. (Pl. faszerkezet knyvtrstruktra, standard input-output tirnyts.)

A 70-es vek vgn s a 80-as vek elejn tbb programoz nem vette szvesen a nem msolhat programok, s az zleti gondolkods trhdtst. Szabadsgukat korltoz tnyeznek lttk a terjesztsre s a mdostsra kirtt korltokat, amelyek a egyesek meggazdagodst szolgljk csak, mikzben j esetben kzepes szint programok szletnek ilyen krlmnyek kztt.

Ezrt ezek a programozk sajt programjaikat tovbbra is szabadon kzreadtk, vrtk msok mdost javaslatait, esetleg programrszeit, ezek kzl a jobbakat beptettk az j verzikba, s gy tkletestettk programjukat. Ez tbbnyire jobb minsg szoftverekhez vezetett, mint a nagy cgek korltozott programozi grdinak termkei, amelyek ersen zleti megfontolsok szerint kszlnek.

A sok klnll elsznt programozt szerette volna Richard M. Stallman sszefogni a 80-as vek els felben azzal, hogy megalaptotta a ``Free Softvare Foundation''-t (FSF, Szabad Szoftver Alaptvny), s elindtotta a ``GNU project''-et. Elbbinek elsdleges clja, hogy alaptvnyknt adomnyokat fogadhat el, amelyekbl gpparkot tarthat fenn s fizethet a programozknak, utbbi magt a programozsi munkt hivatott koordinlni. A GNU project alapvet clja, hogy egy teljesen szabadterjeszts programokbl ll, UNIX-szer rendszert hozzon ssze.

A kvetkez fejezetben ennek 1985-ben megjelent kiltvnybl szeretnnk nhny rdekes rszt idzni, mert ez rthetbb teszi a GNU project alapfilozfijt, amibe a Linux nagyon szpen beilleszkedik.

Rszletek a GNU project kiltvnybl

Mi a GNU? A GNU Nem UNIX!

A GNU (jelentse: a Gnu Nem UNIX) egy teljes, UNIX-kompatibilis szoftverrendszer, melyet azrt rok, hogy brkinek, aki hasznlni tudja, ingyen odaadhassam. Szmos nkntes segt nekem. Nagy szksgnk lenne tovbbi tmogatsra munkban, pnzben, programokban s felszerelsben.

Eddig elksztettnk egy Emacs szvegszerkesztot egy editor-parancsok rsra alkalmas Lisp-pel, egy forrsszintu debugger-t, egy yacc-kompatibilis rtelmezot, egy linker-t, s mg mintegy 35-fle eszkzt. Mr egy shell (parancs-interpreter) is majdnem kszen van. Egy j, hordozhat, optimalizl C-fordt mr lefordtotta nmagt, s valsznuleg mg az idn kzreadjuk. Egy kezdetleges kernel is mukdik mr, de mg sok rszlet hinyzik belole a UNIX emulcihoz. Ha a kernel s a fordt kszen lesz, lehetov vlik a GNU, mint programfejlesztsre alkalmas rendszer terjesztse. Szvegformzknt TeX-et fogunk hasznlni, de az nroff fejlesztse is folyik mr. Az ingyenes s hordozhat X-windows rendszert is hasznlni fogjuk. Ezek utn ksztnk majd egy hordozhat Common Lisp-et, egy Empire game-t, egy tblzatkezelot, s mg szz meg szz egyb dolgot, belertve az on-line dokumentcit. Remljk, hogy minden hasznos dolgot, amit egy UNIX rendszer tartalmaz, biztostani tudunk, sot, mg annl tbbet is.

......

Ki vagyok n?

Richard Stallman vagyok, a sokat utnzott EMACS megalkotja. Rgebben az MIT AI laboratriumban dolgoztam. Nagyrszt fordtkat, editorokat, debuggereket, parancsrtelmezoket rtam, s az Inkompatibilis Idoosztsos Rendszer s a Lisp Machine opercis rendszer fejlesztsben vettem rszt.

......

Mirt kell megrnom a GNU-t?

Az aranyszably szerint, ha n kedvelek egy programot, akkor azt msokkal is meg kell osztanom. A szoftver-kereskedok egyms ellen akarjk fordtani a felhasznlkat, majd uralkodni akarnak flttk. El akarjk rni, hogy a felhasznlk beleegyezzenek: nem osztjk meg a programokat msokkal. Visszautastom, hogy a tbbiekkel val szolidaritst gy felrgjam. Nem tudok tiszta lelkiismerettel alrni egy titoktartsi vagy szoftver forgalmazsi szerzodst. Az AI laborban tlttt vek alatt ellenlltam az ilyen tendenciknak s ms bartsgtalan lpseknek, de vgl tl messzire mentek: nem maradhattam egy olyan intzmnyben, ahol ilyen dolgokat kvettek el az n nevemben, az akaratom ellenre.

Azrt, hogy a szmtgpeket minden szgyenkezs nlkl tovbb hasznlhassam, elhatroztam, hogy sszegyujtk egy olyan szabad szoftvercsomagot, amely lehetov teszi szmomra, hogy a nem szabad szoftver nlkl is boldoguljak. Elmentem ht az AI laboratriumtl, hogy az MIT ne tudja megakadlyozni, hogy a GNU-t kzreadhassam.

......

Mirt akar sok programoz segteni?

Sok programozt talltam, akit "lzba hozott" a GNU, s segteni akar.

Sok programoz nem rl a rendszerprogramok elzletiesedsnek. Ez lehetov teszi, hogy tbb pnzt keressenek, de azt is megkvnja, hogy a ms programozkat rivlisnak s ne kollgnak tekintsenek. A programozk kztti alapveto barti tnykeds a programok klcsns megosztsa; a jelenlegi piaci szerzodsek rendszerint megtiltjk a programozknak, hogy msokat bartnak tekintsenek. Aki szoftvert vesz, annak vlasztania kell a bartsg s trvny betartsa kztt. Termszetesen sokan gy dntenek, hogy a bartsg fontosabb. De azok, akik hisznek a trvnyben, kellemetlen helyzetbe kerlnek, brmit is vlasztanak. Cinikuss vlnak, s azt gondoljk, hogy a programozs csupn a pnzkeress egyik mdja.

Ha inkbb a GNU-n dolgozunk s ezt hasznljuk szerzoi joggal vdett programok helyett, bartiak lehetnk mindenkivel, s a trvnyt is tiszteletben tartjuk. Tovbb, a GNU pldaknt szolgl s inspirl, jelkp lesz, amely arra sztkl, hogy jra egyek legynk s megosszuk egymssal, amink van. Ez a harmnia rzett adja, ami lehetetlen, ha nem szabad szoftvert hasznlunk. A programozk mintegy felnek, akikkel idonknt beszlgetek, ez a boldogsg fontos, s pnzzel nem helyettestheto.

......

Mirt lesz ez minden felhasznlnak j?

Ha a GNU elkszl, mindenki ugyangy kaphat majd j rendszerszoftvert, mint levegot.

Ez sokkal tbbet jelent annl, mint hogy mindenki megtakartja egy UNIX-engedly rt. Ez azt jelenti, hogy a sok pazarl rendszerprogramozsi erofeszts, mellyel hasonl, de fggetlen megoldsok kszltek, elkerlheto lesz. Ezek az erofesztsek a programozsi mdszerek fejlesztsre szolglnak majd.

A rendszer sszes eroforrsai mindenki szmra elrhetok lesznek. Ennek eredmnyekppen, ha a felhasznlnak vltoztatsokra van szksge, azt mindig szabadon megteheti sajt maga, vagy megfizethet ms "rro" programozt vagy cget, hogy elvgezze neki azokat. A felhasznlk nem lesznek kitve az eroforrsokat birtokl s monopolhelyzetben lvo programoz vagy cg knynek-kedvnek.

Az iskolk egy sokkal inkbb nevelo hats krnyezetet biztostanak majd, arra btortva a dikokat, hogy tanulmnyozzk s fejlesszk a rendszerprogramokat.

Msolsi jogok

A szabad szoftverek vilgban kln problma a msolsi jogok krdse. Tegyk fel ugyanis, hogy valaki r egy j, hasznlhat programot, de nem ri meg neki a hivatalos terjesztssel jr adminisztrcis, dokumentlsi, tesztelsi munkt elvgezni, ezrt szabad szoftverknt kibocstja a programot az Interneten keresztl. Amg a felhasznlk hasznljk a programot, esetleg tkletestik, s javaslatokat tesznek a szerznek, addig minden rendben van. A szerzk azonban biztosan nem szeretnk, ha programjaikra lecsapna egy szoftvercg, s bepten sajt termkei kz, jelents hasznot hajtva ezzel magnak, amibl a szerz semmit se kap.

Ilyen, s hasonl problmk kikszblsre szletett a ``GNU General Public Licence'' (GPL) irat, amely magban foglalja a GNU cg szoftverforgalmazsi filozfijt is. Maga a GPL jogi preczsggel van megfogalmazva, gy nem kzlnnk itt le, hanem Richard M. Stallman bevezetjt adjuk kzre magyar fordtsban. Ennl jobban nem sikerlne elmagyarzni, mi is az a szabad szoftver (freeware).

A fordts alapjul a 2.0.27-es Linux kernel ``COPYRIGHT'' fjlja szolglt.

Bevezet a GPL-hez

Mindenkinek megengedett bet szerint msolni s terjeszteni ezt az engedlyezsi dokumentumot, de megvltoztatni tilos.

A legtbb szoftver engedlyeit gy tervezik, hogy elvegyk a terjesztsi s mdostsi szabadsgodat. Ezzel ellenttben, a GNU ltalnos Publikus Engedly biztostani szndkozik szabadsgodat a szoftverek szabad megosztsban s vltoztatsban, hogy biztostsuk a szoftver szabadsgt minden felhasznlja szmra. Ez az ltalnos Publikus Engedly rvnyes a ``Free Software Foundation'' (Szabad Szoftver Alaptvny) legtbb programjra, s azokra, amelyeknek szezje alkalmazni akarja. (Nhny ms ``Free Softvare Foundation'' program a GNU Knytr ltalnos Publikus Engedly hatlya al esik.) Alkalmazhatod a sajt programodra is.

Amikor szabad szoftverrl beszlnk, a szabadsgra hivatkozunk, nem az rra. A mi ltalnos Publikus Engedlyeinket gy terveztk, hogy biztostva legyen szabadsgod a szabad szoftver msolatainak terjesztsre (s ezen szolgltatsrt jr djazsra), hogy megkapod a forrskdot, ha akarod, hogy megvltoztathatod a szoftvert, vagy felhasznlhatod rszeit ms szabad szoftverekben; s hogy tudd, hogy ezt megteheted.

Azrt, hogy megvdjk jogaidat, korltozsokat kell bevezetnnk, amelyek mindenki msnak megtiltjk, hogy megtagadja tled ezeket a jogokat, vagy megkrjen ezen jogok feladsra. Ezek a korltozsok bizonyos felelssggel jrnak szmodra, ha a szofver msolatait terjeszted, vagy mdostod.

Pldul ha egy ilyen program msolatait terjeszted, akr pnzrt, akr ingyen, gyfeleidnek mindazokat a a jogokat meg kell adnod, amelyek neked megvannak. Biztosnak kell lenned abban, hogy k is megkapjk, vagy meg tudjk szerezni a forrskdot. s ezeket kzlnd kell velk, hogy tudjk jogaikat.

Jogaidat kt lpsben vdjk: (1) copyright-ot adunk ki a szoftverre, s (2) felajnjluk neked ezt az engedlyt, amely valban megengedi a szoftver msolst, terjesztst s/vagy mdostst.

Minden szerz s a magunk vdelmben meg szeretnnk bizonyosodni arrl, hogy mindenki megrtette, hogy nincs garancia erre a szabad szoftverre. Ha a szoftvert valaki ms mdostja s tovbbadja, minden gyfelnek tudni kell, hogy amit kaptak, az nem az eredeti, gy a msok ltal bevezetett problmk nem hatnak vissza az eredeti szerz megtlsre.

Vgl is, minden szabad program lland fenyegetettsgnek van kitve a szoftverszabadalmak rszrl. Ettl a veszlytl szeretnnk vdekezni, gy, hogy a szabad program terjeszti egyenknt megkapjk a szabadalmi engedlyeket, hogy a program szabadalma mkdhessen. Hogy ezt megvdjk, vilgoss tettk, hogy minden szabadalom vagy mindenki szmra engedlyezett legyen, vagy senki szmra sem.

A Linux s a GNU kapcsolata

Az elz fejezetekben zeltt adtunk a szabadterjeszts programok vilgbl. Maga ez a tma is megrne egy kln dolgozatot, de itt hely hinyban csak az alapgondolatokat ismertettk. Ebbe az alapfilozfiba illeszkedik bele a Linux rendszer is.

Egyrszt, a Linux rendszermag (az els nhny verzi kivtelvel) a GPL hatlya al esik, msrszt a Linux rendszerek alapprogramjai s a felhasznli programok jelents hnyada a GNU project keretben kszlt, vagy rja a GPL-t alkalmazza.

Bizonyos szempontbl a Linux kiegszti a GNU projectet. Mint fent olvashattuk, a GNU egy teljes rendszer szeretne lenni, de ezidig mg nem rtak r egy megbzhat rendszermagot. (Jelenleg a GNU rendszermag a 0.2-es verzinl tart, de ez mg nem teljesen stabil vltozat.) Linus Torvalds s trsai viszont pont ezt tettk meg, igaz, nem a GNU keretein bell.

Nem lthat pontosan elre, hogy hogyan alakul a jv. Az is lehet, hogy a GNU rendszermag nem fog elkszlni, vagy legalbbis elterjedni, mert a Linuxot nehz lesz tlszrnyalni. De az sem kizrhat, hogy Richard Stallman egyszer csak mgis elll a GNU kernellel, ami lespri a Linux-ot a sznrl. (Br ezt kevss tartom valsznnek.)

Humor a Linuxban

A Linux kr egy nagy mozgalom alakult ki mra. Emltettk a kb. 200 programozt, aki a rendszermagot rta, a tbb ezret, aki a felhasznli programokat ksztettk vagy adaptltk ms gprl, s a millikat, akik hasznljk. Mivel a csatlakozs brmelyik szinthez nkntes, nem kapcsoldnak hozz anyagi rdekek, amelyek ellenttesek a rendszer ri s felhasznli kzt, a Linux fejlesztse s terjesztse nagyon oldott hangulatban zajlik. Ez sokszor a programok dokumentcijban, vagy a hibazenetekben is jelentkezik, de mg inkbb a Linux-os levelezsi listkon s hrcsoportokban.

Pl. a rgebbi kernelek egy rsze a rendszer indulsakor megvizsglta a processzort, s ha olyan tpus volt, akkor kirta:

This processor honours the WP bit even in supervisor mode.

Good!

Ami magyarul: ``Ez a processzor tiszteletben tartja a WP bitet supervisor mdban is. J!''

Egy ilyen zenet nemigen fordulhatna el egy ``komoly'' kereskedelmi szoftverben.

Vagy pl. ha a tar programmal nem megfelel formtum fjlt akarunk kicsomagolni, akkor is specilis a hibazenet eleje:

tar: Hmm, this doesn't look like a tar archive.

Azaz: ``Hmm, ez nem gy nz ki, mint egy tar archvum.''

Maga Linus Torvalds is vicceldik programjval kapcsolatban. Egyszer megkrdeztk tle:

-- Azon kvl, hogy a Linux egy cool nv, meg tudn mondani, mirt hasznljunk Linuxot BSD helyett?

-- Nem, pont ez az. A cool nv, az a lnyeg. Nagyon kemnyen dolgoztunk egy olyan nven, ami vonzert gyakorol az emberek tbbsgre, s biztosan megrte: tbb ezer ember csak azrt hasznl Linuxot, hogy az mondhassa: ``OS/2? ! Nekem Linuxom van. Micsoda cool nv!''

A 386BSD elkvette azt a hibt, hogy sok szmot s htborzongat rvidtst tett bele a nvbe, ami sok embert elriasztott, csak azrt, mert tl technikusan hangzik. Vagy mskor:

Ha krbe akarod utazni a vilgot, s szeretnd, hogy meghvjanak egy csom helyre eladst tartanai: rj egy UNIX opercis rendszert. Egy nemzetkzi Linux konferencin pedig ezt mondta:

Mindnyjan tudjuk, hogy a Linux hatalmas ... 5 msodperc alatt vgrehajtja a vgtelen ciklusokat is. Egy hibajelentsre vlaszolva ezt rta:

Idita vagyok. Legalbbis ezen hiba megtallsa 5 percembe kerlt. Termszetesen msok is trflkoznak a rendszerrel kapcsolatban.

Mostanban azt kezdem hinni, hogy a Linux valban a legjobb dolog a szeletelt kenyr ta. Linux felhasznlnak lenni egy olyan letet jelent, mintha egy nagy, csokbl s ptszekbl ll csalddal laknl egytt. Minden reggel, amikor felkelsz, a hz egy kicsit megvltozott. Lehet, hogy egy j torony plt, vagy nhny falat elmozdtottak. Vagy esetleg valaki ideiglenesen eltntette a padlt az gyad all. (a Linux) ... fstjeleken kvl mindennel kpes kommuniklni. pp most jtszottam le a kernelt a hangkrtymon s azt hittem, Isten szl hozzm. Egy hullmz fstkdn keresztl felnztem, s elvaktott egy fnyes, fehr fny. Ez Isten. Nem, nem Richard Stallman vagy Linus Torvalds, hanem Isten. Zg hangon azt mondta: ``Ez egy jel. Haszlj Linuxot, a 386-ra rt szabad UNIX rendszert.'' A Linux igenis felhasznl-bart. Nem tudatlan-bart s nem idita-bart. A Linux hvei sokszor vicceldnek a nagy szoftvercgekkel, klnsen a Microsoft s Bill Gates a clpontjuk. lljon itt nhny idzet errl a tmrl: (Nmelyik idzet csak eredetiben lvezhet. Ezeket nem fordtom le.)

Microsoft is not the answer.

Microsoft is the question.

NO (or Linux) is the answer.A legtbb orszgban bntetik az rtalmas dolgok, mint pl. a kbtszer rustst. Akkor hogy lehet, hogy az emberek bntetlenl rulhatnak Microsoft szoftvereket? DOS: Egy kicsi, bosszant boot-vrus, amely vletlenszer, spontn rendszerlellsokat eredmnyez, rendszerint egy komoly munka elmentse eltt. Knnyen kezelhet UNIX-szal. Lsd mg MS-DOS, IBM-DOS, DR-DOS. Avoid the Gates of Hell. Use Linux A Linuxot klfldi terroristk rtk, hogy az USA vllalataitl, mint pl.\ a Microsoft, pnzt vegyenek el. Nem gondolom, hogy Bill Gates a Gonosz. Csak azt gyantom, hogy ha a Microsoft valaha tallkozik a Gonosszal, nem lesz szksg tolmcsra. sszefoglals

Egy olyan rendszer sikertrtnett kvethettk itt nyomon, amely az tlagos szmtgp-felhasznlk szmra (egyenlre ?) ismeretlen. Egy hobbiprogrambl 6 v alatt vilgmret mozgalom vlt, s ez taln egyedlll a szmtstechnika trtnetben. Mindez gy trtnt, hogy a Linux rendszerhez lnyegben ingyen juthat mindenki hozz, gy mg hihetetlenebb a siker.

Megvizsglva a szabad szoftverek s gyrtik trtnett, ez az egsz mgis rthetv vlik. Tbb vtizede csiszoldtak a megszllott programozk szoftverei, tletei, amire a Linux elkezddtt. Ezekbe a programokba mindenki azt adta bele, amihez a legjobban rtett, nem pedig valami kvlrl rerltetett feladaton dolgozott. A programok tesztelse is igen szles kr volt. Ezen kvl, a freeware-programok nem zleti clbl kszltek, gy alkotik nem a maximlis anyagi hasznot kerestk, hanem maguk szmra akartak hasznlhat rendszert sszehozni, s villogni akartak a tbbiek eltt tudsukkal. Ez a lgkr sokkal jobban kedvezett a hatkony, stabil programok kialaktsnak, mint a szoftverbirodalmak pnzorientlt rendszere.

Termszetesen a szabad szoftverek sok szempontbl mindig is htrnyban lesznek a ``gyri'' programokkal szemben. Ilyen szempontok pl. a dokumentltsg, piackutatsi adatok felhasznlsa, reklm, stb.

Ezen jelensgek sszessgbl mgsem a szabad szoftverek kerlnek ki vesztesknt, hanem bizonyos terleteken (pl. a tudomnyos kutatsban) egyre nagyobb trt hdtanak.

A Linux esetben teht egy jl eltallt rendszermag tallkozott egy flig meglev freeware-rendszerrel, s ebbl szletett az, amirl dolgozatom szl.

Mindenkpp rdemes volt teht a szmtstechnika trtnetnek ezen fejezett megvizsglni, mert -- br a nagykznsg keveset tud rla -- vilgmretekben sem elhanyagolhat jelentsg rendszerrl s mozgalomrl van sz.

Appendix

A Linux kernelek megjelensnek idpontjai

A Linux elterjedtsge

Forrsok

A Linux kernelek megjelensnek idpontjai

Kiegszt anyagknt megadjuk a Linux kernelek megjelensi idpontjait. Ez tulajdonkppen az linux.kernel.org szerveren tallt, a rendszermagokat tartalmaz knyvtr listja.

Mar 13 1994 linux-1.0.tar.gz

Mar 16 1994 patch1.gz

Mar 18 1994 patch2.gz

Mar 21 1994 patch3.gz

Mar 22 1994 patch4.gz

Mar 28 1994 patch5.gz

Apr 3 1994 patch6.gz

Apr 6 1994 patch7.gz

Apr 7 1994 patch8.gz

Apr 16 1994 patch9.gz

. . . . . . . .

Mar 7 1995 linux-1.2.0

Mar 17 1995 linux-1.2.1

Mar 27 1995 linux-1.2.2

Apr 2 1995 linux-1.2.3

Apr 6 1995 linux-1.2.4

Apr 12 1995 linux-1.2.5

Apr 23 1995 linux-1.2.6

Apr 29 1995 linux-1.2.7

May 3 1995 linux-1.2.8

Jun 1 1995 linux-1.2.9

Jun 12 1995 linux-1.2.10

Jun 26 1995 linux-1.2.11

Jul 25 1995 linux-1.2.12

Aug 2 1995 linux-1.2.13

Jun 9 1996 linux-2.0

Jul 3 1996 linux-2.0.1

Jul 5 1996 linux-2.0.2

Jul 6 1996 linux-2.0.3

Jul 8 1996 linux-2.0.4

Jul 10 1996 linux-2.0.5

Jul 12 1996 linux-2.0.6

Jul 15 1996 linux-2.0.7

Jul 25 1996 linux-2.0.8

Jul 26 1996 linux-2.0.9

Jul 27 1996 linux-2.0.10

Aug 5 1996 linux-2.0.11

Aug 9 1996 linux-2.0.12

Aug 16 1996 linux-2.0.13

Aug 20 1996 linux-2.0.14

Aug 25 1996 linux-2.0.15

Aug 31 1996 linux-2.0.16

Sep 2 1996 linux-2.0.17

Sep 5 1996 linux-2.0.18

Sep 11 1996 linux-2.0.19

Sep 13 1996 linux-2.0.20

Sep 20 1996 linux-2.0.21

Oct 8 1996 linux-2.0.22

Oct 18 1996 linux-2.0.23

Oct 30 1996 linux-2.0.24

Nov 8 1996 linux-2.0.25

Nov 22 1996 linux-2.0.26

Dec 1 1996 linux-2.0.27

Jan 14 1997 linux-2.0.28

Feb 7 1997 linux-2.0.29

Apr 8 1997 linux-2.0.30

Lthatjuk, hogy a fejleszts idnknt meggyorsul, majd esetleg hnapokat kell vrni az j kernelre. Ennek ellenre a fejleszts llandan folyik, s remlhetleg folytatdni fog.

A Linux elterjedtsge

A Linux annyira szabad terjeszts, hogy a felhasznljnak mg regisztrltatnia sem kell magt. Ez azt jelenti, hogy nem is lehet pontosan felmrni a Linuxos gpek s felhasznlik szmt.

Azrt, hogy mgis lehessen valamit mondani, az Interneten egy ``Linux Registration Project''-et indtottak be, ahova nkntesen mindenki berhatja Linux-os gpnek, s sajt magnak adatait. A project honlapja megtallhat a http://counter.li.org:29659/ Web-cmen.

Az itt felhalmozott informcikbl szeretnnk kzreadni nhny rdekeset.

Az sszests:

This is the Linux Counter summary as of Mon Jul 21 05:02:07 1997

There are 48446 persons registerd.

1909 users have been registered by friends.

There are 20423 machines registered.

I guesstimate that between 0.2% and 5% of all Linux users have

registered with the Linux Counter.

So the total number of Linux users is probably between

968,920 and 24,223,000 people.

A lnyeg teht: 1997. jlius 21-n csaknem 50000 regisztrlt Linux-felhasznl s kb. 20000 Linux-os gp van szerte a vilgban. A Linux Counter gazdja a honlapon bvebben kifejtett indokok szerint a regisztrltakat a tnyleges felhasznlk 0.2-5%-nak gondolja, azaz a tnyleges Linux-felhasznlk szma kb. egy- s huszonngymilli kzt lehet.

Lthat teht, hogy pontos szmadat nem adhat, de az biztos, hogy tbb milli Linux-felhasznl van a vilgon.

rdekes az orszgok szerinti eloszls tblzata. (A rendezs az egymilli lakosra jut Linux felhasznlk szma szerint trtnt.)

No Country Pers Fri Mach P/Mpop Mpop

======================================================================

1 FI Finland 1453 34 594 284.6 5.1

2 NO Norway 1141 18 425 260.3 4.4

3 IS Iceland 70 3 33 259.0 0.3

4 AQ Antarctica 1 0 0 243.0 0.0

5 SE Sweden 1378 29 480 154.8 8.9

6 SI Slovenia 207 7 72 106.1 2.0

7 NL Netherlands 1544 30 597 99.2 15.6

8 DK Denmark 512 6 180 97.5 5.2

9 CA Canada 2349 64 942 81.5 28.8

10 US USA 20170 468 7273 75.7 266.5

11 AU Australia 1358 29 535 74.4 18.3

12 AT Austria 522 19 206 65.1 8.0

13 NZ New Zealand 195 2 108 55.0 3.5

14 CH Switzerland 368 10 155 51.1 7.2

15 EE Estonia 74 9 58 50.7 1.5

16 BE Belgium 510 518 221 50.1 10.2

17 DE Germany 4150 118 1627 49.7 83.5

18 LU Luxembourg 19 0 5 45.7 0.4

19 IE Ireland 158 4 68 44.3 3.6

20 SG Singapore 138 5 52 40.6 3.4

21 IL Israel 220 10 76 40.6 5.4

22 GB Great Britain 2334 61 906 39.9 58.5

23 HU Hungary 383 14 262 38.3 10.0

24 GL Greenland 2 0 0 34.4 0.1

25 BM Bermuda 2 0 2 32.2 0.1

26 LI Liechtenstein 1 0 0 32.1 0.0

27 GU Guam 5 0 0 31.9 0.2

28 MC Monaco 1 0 0 31.5 0.0

29 FR France 1831 71 555 31.4 58.3

30 KY Cayman Islands 1 0 2 28.9 0.0

(A tblzat 130 orszgot tartalmaz, itt terjedelmi okokbl csak az els 30-at kzltk.)

Magyarorszg az utbbi idkben elretr: az v elejn mg nem voltunk benn az els 30-ban, most meg mr 23-dikak vagyunk. Vlemnyem szerint ebben a CHIP-CD-ken megjelent RedHat Linuxnak fontos szerepe van.

A Linux-os gpek felhasznlsi helyei: (nhnyan tbb helyek is megjelltek)

WHERE PEOPLE USE LINUX

Place Users Percent

==============================

school 5793 12.20%

home 40513 85.29%

not used 8 0.02%

work 15489 32.61%

somewhere 2269 4.78%

=========================