Informatika | Operációs rendszerek » Veres József - UNIX

Alapadatok

Év, oldalszám:2002, 88 oldal

Nyelv:magyar

Letöltések száma:1061

Feltöltve:2004. július 26.

Méret:613 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

UNIX A UNIX-ról A Unix nem egy új operációs rendszer. Elég régóta (informatikai mértékkel mérve nagyon régóta) stabilan és egyre növekvõ arányban jelen van a számítástechnikai világban. Hosszú ideig az egyetemi, kutatói szférában volt egyeduralkodó, és mostanában egyre újabb és újabb területeket (banki, vállalati, adatfeldolgozó szféra) hódít meg. Legfõbb ereje dinamikusságában, alkalmazkodóképességében rejlik: képes ugyanazt a környezetet nyújtani mind a multiprocesszoros mainframe, mind az otthoni x86-os PC-je elõtt ülõ felhasználónak (x86 – olyan számítógép ami IBM PC kompatibilis, processzora lehet: 386/486/pentium/PII/PIII és ezek klónjai). Manapság, amikor az otthoni számítógépek teljesítménye, illetve a velük szemben támasztott igények, a végzendõ feladatok már egyre közelebb kerülnek az egykori "nagygépek" szintjéhez, egyre inkább szükség van egy olyan környezetre, amely

képes hardvertõl, platformtól függetlenül mindenhol ugyanazt nyújtani: a számítástechnikai világ "utolérte" a Unix-ot. Mert a Unix meglehetõsen régi dolog. Elsõ változatát 1969-ben készítette Ken Thomson és Dennis Ritchie az AT&T Bell Laboratóriumában egy PDP-7 típusú számítógépre. A rendszer magját 1973-ban átírták C nyelvre - ennek köszönheti a Unix mind a mai napig legnagyobb elõnyét, a könny ű hordozhatóságot. Az AT&T kezdetben ingyen az amerikai egyetemek rendelkezésére bocsátotta a Unix forráskódját, így tíz éven belül százezer fölé emelkedett a mûködõ Unix rendszerek száma (ne felejtsük, ez még a "hõskorszakban" volt - a 80-as évek elején százezer számítógép még hatalmas nagy szám volt). A gyors terjedésnek azonban jelentkeztek a hátulütõi is: nem volt egységes ellenõrzése senkinek sem a forráskód, a rendszer egysége felett, így számos (helyi módosításokon alapuló)

változat alakult ki. Fontos megjegyezni a "UNIX" és a "Unix" terminológia közötti különbséget: a szakmában meghonosodott szokás szerint "UNIX"-szal jelölik az "igazi", a licensszel rendelkezõ, eredeti forráskódból származó rendszereket, míg a "Unix" jelölés általában jelöl mindenféle "Unix típusú" rendszert, amelyek a "józan ész" alapján Unixnak mondhatók, függetlenül attól, hogy van-e valami közük az X/Open-hez vagy sem. Amikor a Unix még csak az egyetemi és akadémiai szférában volt közismert, kialakult körülötte egy hatalmas programkörnyezet: minden egyetem, kutatóintézet elkészítette saját megoldásait felmerülõ számítástechnikai problémáira (a szövegszerkesztéstõl, táblázatkezeléstõl kezdve a mindenféle apró utility-n keresztül a különbözõ fordítóprogramokig), és mivel ezek az intézmények non-profit szervezetek voltak, elkészült

szoftvereiket publikussá tették. Forráskódban, C nyelven adták közre ezeket a programokat, egyre inkább a terebélyesedõ Internet segítségével, és a C nyelv és az egységes környezet miatt minden Unix felhasználó lefordíthatta, használhatta, módosíthatta és továbbfejleszthette õket szinte teljes szabadsággal. Ennek a folyamatnak az eredményeként alakult meg az FSF (Free Software Foundation) alapítvány, melynek célja egy szabadon (forráskódban is) ingyen hozzáférhetõ szoftverkörnyezet biztosítása bárki számára, illetve ennek részeként a GNU project, amely pedig egy minél teljesebb Unix rendszert kíván létrehozni és biztosítani. Ennek jogi megfogalmazása a GPL (GNU General Public License). GPL alá esõ szoftvert bárki készíthet, amennyiben megfelel bizonyos feltételeknek, és jogi (copyright) probléma esetén számíthat az FSF segítségére. GPL alá esõ szoftvert bárki használhat, sõt módosíthatja is azt, amennyiben

amikor a szoftvert továbbadja, továbbadja annak teljes forráskódját is, esetleges módosításai feltüntetésével. GPL szoftverért pénzt kérni nem szabad, viszont fel lehet számítani a másolással, terjesztéssel, installálással konfigurálással stb. kapcsolatos költségeket A szoftver módosításáért sem szabad pénzt kérni - GPL forrás módosítva is GPL forrás marad. A Linuxról Megvolt tehát a GNU környezet: fordítók, segédprogramok, és a szabadon terjeszthetõ XFree grafikus felület, egy olyan operációs rendszer mag hiányzott csak, amely bizonyítottan szabad (nem tartalmaz copyright alá esõ kódot). Ennek megírását kezdte el helsinki egyetemista korában Linus Torvalds, hogy aztán több száz segítõjével együtt létrehozza azt, amit ma Linuxként ismerünk: egy teljes, szabad operációs rendszert bárki x86-os PC-jére. Bár Linus Torvalds egyedül kezdett hozzá operációs rendszere elkészítéséhez, ma már a Linux oly sokfelé

ágazott és akkorára nõtt (ma már talán ez a legtöbb PC-s hardvert támogató szoftver, es átírása más architektúrákra - Sun, MIPS, DEC Alpha, Macintosh stb. - folyamatban van), hogy Linus maga már leginkább csak koordinálja a fejlesztéseket. A Linux jogi értelemben nem UNIX tehát, leghelyesebb volna Unix-klónak nevezni, és nem is követi szigorúan egyik szabványt sem: sok jellemvonást egyesít magában. Maga a Linux, illetve a Linuxon futó szoftverek legnagyobb része a GPL alá esik. Szót kell itt még ejtenünk még egy fontos dologról, ami nélkül a Linux operációs rendszer nem születhetett volna meg: ez pedig az Internet világhálózat, amely összekötötte a fejlesztõket, és amelyen mindig bárki számára ingyen hozzáférhetõk az egyes Linux változatok. A Unix és az Internet mindig is szorosan kötõdött egymáshoz: az elsõ IP (Internet Protocol) implementációkat Unix rendszerekre készítették, a Unixot nyíltsága, jól

bõvíthetõsége miatt választották a fejlesztõk. Az Internetbe kötött gépek legnagyobb része Unix alatt fut, az Internet szolgáltatásait maximálisan csak Unix alatt tudjuk kihasználni. Manapság talán ez a Unix (Linux) rendszerek gyors terjedésének fõ oka. A Linux az Interneten született: bár támogat más hálózati protokollokat is, igazán egyszerûen Internetes környezetbe illeszthetõ. A Linux folyamatosan fejlõdõ rendszer. Gyors fejlõdésének és terjedésének egyik oka az, hogy a fejlesztõk már a munkaverziókat elérhetõvé tették (és teszik jelenleg is) bárki számára, akárki kipróbálhatta (kipróbálhatja) a fejlesztés bármely stádiumában. Teljesen tipikus eset, hogy - mert a teljes forráskód mindig hozzáférhetõ - hogy az önkéntes (önjelölt) tesztelõk a megtalált hibákat már a javítással együtt küldték vissza a fejlesztõknek - az Interneten. Mivel a Linux rendkívül gyorsan fejlõdik, (hetente, de néha

két-három naponta is jelenik meg új verzió), szüséges talán már itt az elején kis rendet tennni a verziószámok dzsungelében. Legelõször is jegyezzük meg, hogy ha "stabil" verzióról beszélünk, akkor is csak saját felelõsségünkre használhatjuk a Linuxot: mivel nem áll mögötte kereskedelmi cég, nincs aki a megbízható mûködésért garanciát vállaljon. (Ha hajlandók vagyunk áldozni rá, vásárolhatunk support-ot valamely erre szakosodott cégtõl - bár Linuxra szakosodott cégek jelenleg leginkább csak az USA-ban mûködnek - az igyenes Linuxhoz azonban nem jár garancia.) Ha lefagy, és fontos adataink vesznek el, csak magunkra számíthatunk - azonban a több százezer Linux felhasználó tanúsága szerint a Linuxnak nem igazán szokása lefagyni. Megjegyzendõ egyébként, hogy szoftvereik hibamentességére gyakran nagy szoftvercégek sem vállalnak garanciát. A kernel verziószámáról Linux verziószám alatt az ún.

"kernel", az operációs rendszer mag verziószámát értjük, ez a tulajdonképpeni Linux, azonban mint minden operációs rendszer esetén, önmagában ez nem jó semmire: arra való, hogy más (felhasználói) programokat futtassunk vele (rajta). A kernel verziószámozása a következõ: x.yz, ahol az x a fõ verziószám, ez jelenleg 2 az y, a középsõ szám az al-verziószám, amely ha páros, akkor az egy "stabil" verziót jelent, és ha páratlan, akkor pedig fejlesztői verziót. A harmadik szám, a z pedig az ún patch-level: az apróbb változtatásokat sorszámozzák ezzel. E sorok irása idején a legutolsó stabil, béta állapotú verzió száma 240 volt A disztribúciókról Szokás még az ún. disztribúció verziószámáról is beszélni: a disztribúció egy Linux kernelen alapuló teljes (mûködõképes) Unix rendszer, segédprogramokkal, alkalmazásokkal együtt. Egy disztribúció elkészítése tulajdonképpen a C forrásban meglévõ

utility-k, programok lefordításából, könyvtárstruktúrába helyezésébõl és összekonfigurálásából áll. Sokféle disztribúció létezik, ingyenesek is és kereskedelmiek is – Debian, Redhat, Mandrake, SuSe, Corel Linux amely ingyenes és az Internetrõl sok helyrõl letölthetõ. Elhangzott, hogy léteznek kereskedelmi (nem ingyenes) disztribúciók is - talán ez furcsa lehet egy szabad szoftver esetén, azonban mint azt már a GPL ismertetésekor láttuk, ezek a cégek nem a Linux-ért kérnek pénzt, hanem a disztribúció összeállításáért, illetve esetleg a disztribúcióban lévõ, Linux alatt futó de nem ingyenes szoftverek használatáért. Összefoglalva A UNIX név tehát nem csak egy szimpla operációs rendszert jelent, hanem a hozzá kapcsolódó user interface-t, programokat, segédprogramokat, amelyek együtt egy többfelhasználós, (multi user) többfeladatos (multi tasking) rendszer használatát teszik lehetõvé. Míg a DOS

egyfelhasználós, egyfeladatos rendszer, azaz egyszerre csak egy felhasználó egy programot futtathat rajta, addig a UNIX alatt egyszerre több felhasználó is dolgozhat, s mindegyikük több programot is futtathat egyidejûleg. A párhuzamosan futó programok prioritásuk alapján jutnak processzor idõhöz. A többprocesszoros rendszereknél lehetséges, hogy az egyes processzorokon külön fussanak a programok. A UNIX felépítése A UNIX réteges felépítésû. A legbelsõ része a kernel, az operációs rendszer magja, amely a rendszer erõforrásainak szétosztását, és a futó folyamatok ütemezését végzi. A kernel köré épülnek a UNIX különbözõ programjai. Ezek közé tartoznak a különbözõ segédprogramok (pld ls, cat, mv) és a felhasználó számára a legfontosabb az úgynevezett parancsértelmezõ (shell, "héj", "burok"). Ez az a program , amely egy felhasználó belépésekor elindul, kiírja a promptot, beolvassa és értelmezi a

felhasználó által begépelt parancsokat, meghívja az elindítható programokat és még egy igen rugalmas programozási nyelvet is ad a felhasználó számára. Bejelentkezés, bejelentkezési nevek és kulcsszavak A többfelhasználós mûködés alapja, hogy a gép bekapcsolásának és a felhasználó belépésének a folyamata szétválik. Mivel az egyes felhasználókat egy UNIX-os gépen meg kell különböztetni, minden egyes felhasználónak úgynevezett bejelentkezési neve (login identifer, login id) van. Ez általában 8 karakternél nem hosszabb. A belépési név után a rendszer egy jelszót kér tõlünk Ennek célja az egyes felhasználók adatainak védelme. A felhasználóknak a rendszergazda (superuser) adja meg a belépési nevet és a jelszót is õ állítja be. A felhasználónak azonban a passwd parancs használatával módja van a jelszó megváltoztatására. A rendszergazda kifejezés kapcsán szót kell ejteni egy rendszeren belül a normál és

privilégizált felhasználók közti különbségrõl. A UNIX gépeken mint általában minden nagyobb gépen igaz, hogy a felhasználók közül egyesek speciális elõjogokkal rendelkeznek más normál felhasználókkal szemben. Õk a privilégizált felhasználók. Feladatuk lehet például a rendszer kikapcsolása, új felhasználók adminisztrációja, programcsomagok installálása stb. A privilégizált felhasználók között is kiemelt szerepe van a rendszergazdának, õ az, aki mindent megtehet, mert mindenre van jogosultsága. Minden UNIX rendszeren kell hogy legyen egy rendszergazda, aki a fent említett feladatokat elvégzi. Nagyobb rendszereken más-más személy végezheti ezeket a feladatokat. A rendszergazda bejelentkezési neve hagyományosan root. Folyamatkezelés, elõtér- háttérfolyamatok, démonok és jobok A UNIX rendszernél a végzett többfelhasználós munka során két igen fontos nem azonos fogalmat kell megemlíteni a program és a folyamat fogalmát.

A program egy futtatható fájl, míg a folyamat a felhasználó által elindított programból keletkezik. Ez azt jelenti, hogy egyetlen programnak több felhasználó által történõ elindításakor több folyamat keletkezik, vagy egyetlen felhasználó által ugyanazon program többszöri indítása során szintén több folyamat indul el. A munka során a kiadott parancsok a DOS operációs rendszerhez hasonlóan szekvenciálisan kerülnek végrehajtásra. A DOS-al ellentétben itt viszont mód van úgynevezett háttérfolyamatok elindítására, ahol a parancs kiadása után a promptot azonnal visszakapjuk és az elõzõleg kiadott parancs végrehajtása a háttérben folyik tovább. Ehhez hasonló lehetõséget nyújt PC-n a WINDOWS úgynevezett protected (védett) üzemmódban történõ alkalmazása. A háttérfolyamat egy speciális fajtája démon folyamat. Ezt a rendszer automatikusan indítja el és valamilyen felügyeleti szerepet lát el. Például gondoskodik a

nyomtatási kérelmek besorolásáról és végrehajtásáról. A démonoknak végrehajtásra átadott nyomtatási és egyéb kérelmeket job-oknak nevezik, ezeket a démon sürgõsségi és egyéb szempontok alapján sorba rendezi és egyenként hajtja végre. A fájlrendszer, fájlok és katalógusok A UNIX legfontosabb alapfogalma a fájl, ami ebben az esetben egyszerûen csak bájtok (karakterek) sorozata. Nem csak programokat és adatokat tárolunk a fájlokban, de a parancsok is futtatható fájlok, sõt még a terminálokra is ugyanúgy írunk, mint egy közönséges adatfájlba. (Röviden: a UNIX-ban minden fájl, azaz a UNIX minden adatobjektumot azonos módon, azonos parancsokkal próbál meg kezelni.) A szabályos fájl nevek A fájlnevek maximális hossza általában 255 karakter lehet, és szinte bármilyen karakterbõl állhatnak. Néhány karakternek azonban különleges szerepe van, ezért célszerû a névadáshoz csak az angol abc betûit, a számokat, a pontot,

valamint a mínusz és az aláhúzás jelet használni. A kis és nagybetûk a fájlnevekben különbözõnek számítanak, csakúgy mint a parancsokban. Lehetõleg ne használjunk a nevekben csillagot (*) és elsõ karakterként pontot. (Hasonlóan a DOS-hoz itt is vannak joker karakterek, melyeket fájlokra való hivatkozáskor használhatunk így pld *c valamennyi c betûre végzõdõ fájlt jelenti, míg a c* valamennyi c betûvel kezdõdõ fájlt jelent, ha egy karaktert akarunk helyettesíteni a fájl névben akkor a ? jelet használhatjuk.) Rejtett fájlok A UNIX-ban vannak olyan fájlok melyek neve pont karakterrel kezdõdik és ezeket a rendszer másképp kezeli mint a többi fájlt. Ezek az úgynevezett rejtett fájlok A listázási parancs hatására ezeknek a fájloknak a neve nem jelenik meg. Fõleg konfigurációs információkat tartalmaznak, melyek egy-egy felhasználó home könyvtárában kell, hogy elhelyezkedjenek. Katalógusok (Könyvtárak) A UNIX hierarchikus

felépítésû, ami azt jelenti, hogy a fájlokat könyvtárakban tárolja. Egy könyvtárból alkönyvtárak nyílhatnak, amelyek ugyancsak tartalmazhatnak további fájlokat és alkönyvtárakat, és így tovább. A gyökér könyvtárnak nincs neve és szülõ könyvtára A / jel jelenti a gyökeret (root), alkönyvtárai pedig az usr, home, stb. A /usr, /home, /stb hivatkozással érhetõk el. Ezt a hivatkozást elérési útvonalnak (path) hívják Ez független attól az alkönyvtártól, amelyikben éppen tartózkodunk. A /usr alkönyvtárnak további alkönyvtárai vannak, például bin, etc, stb. Ezek elérési útvonala /usr/bin, /usr/etc és így tovább Melyik könyvtárban mi van? Állománykonvekciók. A UNIX-ban igencsak szerteágazó és kiterjedt könyvtárszerkezetet találunk. Van néhány könyvtár, amelyet hagyományosan ugyanúgy hívnak minden UNIX változatban, és a bennük található programok és adatfájlok is ugyanahhoz a témához kapcsolódnak.

Például: / A könyvtár gyökere (root directory), minden más könyvtár innen nyílik és itt található a UNIX nevû futtatható program, az operációs rendszer magja (kernel). /bin Bináris programok könyvtára, itt vannak a legfontosabb végrehajtható bináris programok . /dev Itt vannak az eszközfájlok (terminálok, lemezek, CD ROM olvasók, stb.) /etc Egyéb rendszerfájlok, rendszerint a rendszeradminisztrációs fájlok. A legtöbb esetben itt van a jelszavakat tároló fájl is. /tmp Átmeneti tárolásra szolgáló alkönyvtár. Ezt az alkönyvtárat rendszeres idõközönként törlik, ezért soha ne tároljunk itt semmi értékeset! /usr A felhasználói fájlrendszer: munkakönyvtárak, stb. /home Bejelentkezési katalógus (Home directory) a felhasználók Home könyvtárai. A fájlrendszer kitüntetett pontjai A UNIX fájlrendszerében három kitüntetett pont létezik az egyes felhasználók számára. A gyökérkatalógus (root directory) a fájlrendszer

kezdõpontja, ahonnan az egész állományrendszer felépül. A bejelentkezési vagy alapkatalógus (home directory – home könyvtár) az egyes felhasználókhoz tartozó kiindulási pont, ahonnan kezdve a felhasználó elhelyezheti saját állományait. Az aktuális vagy munkakatalógus (working directory) az a pont ahol a felhasználó éppen tartózkodik az állományrendszeren belül. Mi van még a fájlrendszerben ? A UNIX fontos tulajdonsága, hogy többfelhasználós (multi user), tehát biztosítania kell, hogy a felhasználók egymás fájljaihoz ne nyúlhassanak hozzá. Ennek elérése érdekében találták ki a UNIX alkotói a fájlelérési jogokat (file permissions). Ennek az a lényege, hogy a tulajdonos (user) kontrollálja azt, hogy ki férhet hozzá az általa a gépen elhelyezett fájlokhoz, könyvtárakhoz. A UNIX lehetõséget biztosít arra is, hogy a felhasználói csoportok tagjai fájlokat megosszanak egymás között, és a közös fájlok lehetnek a

csoport (és nem egyetlen felhasználó) tulajdonában. Három féle jog létezik: olvasási (read), írási (write) és futtatási (execute). Ezeket a jogokat három osztályba osztva adhatjuk meg: magunkra (user), a csoportunkra (group) és mindenki másra (others) nézve. Az olvasási jog lehetõve teszi, hogy a felhasználó a fájl tartalmát megnézhesse, könyvtárak esetén pedig, hogy azt kilistázhassa (ls parancs). Az írási jog a felhasználó számára engedélyezi a fájlok írását, módosítását, könyvtárak esetében pedig új fájlok létrehozását és a régiek törlését. Végül a futtatási jog lehetõvé teszi a programok, burokprogramok (shell script-ek - amennyiben a fájl egy program) - futtatását; könyvtárak esetén az oda való belépést (cd parancs). A hozzáférési jogosultságokat az ls -l parancsal tudjuk megnézni. -rw-r--r-- 1 akarki student 6242 Aug 28 1992 file1 A legelsõ mezõ mutatja a fájlelérési jogokat. (Mezõkön

egymástól szóközökkel elválasztott karaktersorozatokat értünk.) A harmadik a fájl tulajdonosát, a negyedik pedig azt, hogy a felhasználó milyen csoportba tartozik. Az utolsó mezõ pedig a fájlnév Tehát a fájl tulajdonosa egy “akarki” nevû felhasználó, aki a student csoportba tartozik, a "-rw-r-r--" pedig a jogokat jelenti a tulajdonos, a csoport, végül pedig mindenki más számára. Az elsõ karakter ("-") a fájl tipusát jelöli. A "-" azt jelenti, hogy ez egy "sima" fájl (pl könyvtár esetén ez "d", míg szimbólikus link ez "l" betû lenne.) A következõ három karakter "rw-" jelentése, hogy a tulajdonos olvashatja és írhatja a fájlt, de nem futtathatja. A következõ három karakter, "r--", a csoportra vonatkozó jogokat definiálja. E szerint a student csoportba tartozó felhasználók olvashatják a fájlt, amint ezt a kis "r" betû mutatja. Az utolsó

három karakter "r--" jelentése pedig az, hogy az elõbbiekben felsoroltakon (owner, group) kívül esõk is olvashatják a fájlt. Fontos itt megjegyezni, hogy az egyes fájlelérési jogok függnek annak a könyvtárnak az elérési jogátol is, amelyben megtalálhatóak. Például, még ha egy fájl elérési joga -rwxrwxrwx (tehát mindenki mindent csinálhat vele), mások nem férhetnek hozzá, ha a könyvtár amiben van, tiltja az olvasási és futtatási jogokat. Az elérési jogok megváltoztatása Az elérési jogok megváltoztatása a chmod paranccsal lehetséges a tulajdonos számára. Szintaxisa pedig: chmod [ugoa][+-][rwx] fájlnév. Az [ugoa] kapcsolókkal írjuk elõ, hogy kinek adjuk a jogot. Adhatunk jogokat a tulajdonosnak (u - user), a csoportnak (g - group), másoknak (o - others) vagy pedig mindenkinek egyszerre (a all). A [+-] azt jelenti, hogy adhatunk (+) vagy elvehetünk (-) jogokat Végül pedig, hogy olvasási (r - Read), írási (w - Write) vagy

futtatási (eXecute) jogot adunk. Nehány példa: chmod a+r file1 - olvasási jog mindenki számára chmod +r file1 - ugyanaz, mivel az alapértelmezés az "all" chmod go-rwx file1 - a tulajdonoson kívül senkinek semmi A chmod parancs használható oktális formában is, ahol az egyes tulajdonosi kategóriákhoz tartozó elérési jogokat szám formájában adhatjuk meg, mely az egyes elérési jogok számainak az összege. Az olvasási jog értéke 4, az írásé 2, a futtatásé pedig 1 A három tulajdonosi kategóriához három oktális szám tartozik. pld chmod 644 file1 Ennek a parancsnak a hatására az file1 nevû fájl elérési joga "-rw-r--r--"-ra változik. Az elérési jogokon kívül módunkban áll a fájl tulajdonosának és csoportjának megváltoztatása is. Az elõbbire a chown az utóbbira a chgrp parancs szolgál. 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 fájlrendszer kezelésére szolgáló parancsok A pwd (print working directory) parancs Ezzel a paranccsal az aktuális könyvtár nevét írathatjuk ki. Az ls (list) parancs Ez a parancs megmutatja az aktuális könyvtárban tálalható fájlok neveit. A lista alapértelmezés szerint abc sorrendben sorolja fel a neveket, de alkalmas kapcsolók segítségével más sorrendet is elõírhatunk. Kapcsolók: -a Minden katalógusbejegyzést kilistáz. A ponttal kezdõdõ rejtett fájlokat is -d Ha az argumentum katalógus, a benne szereplõ állományokat nem listázza. -C Több hasábban nyomtatja ki a katalógus bejegyzéseket. -l Részletes információt listáz ki, tulajdonos neve, hozzáférési jogok. -r Megfordítja a listázás sorrendjét, ha alfabetikus volt, akkor fordított abc sorrendben listáz, ha keletkezési idõ szerint volt, akkor a legidõsebbel fogja kezdeni. -t Fájlok kilistázása idõrendi

sorrendben. (A legutolsó módosítás szerint) -R A katalógusnév alatti teljes fájlstruktúrát kilistázza, nem csak a megnevezett katalógusban szereplõ fájlokat. -F A listázás során minden név után / jelet rak ha az katalógus, * jelet rak ha az futtatható fájl és @ jelet rak ha az szimbolikus link. A kapcsolókból egyszerre több is használható. A cd (change directory) parancs A katalógus rendszerben való mozgást teszi lehetõvé. Paraméterként a megcélzott katalógus nevét kell megadni, vagy abszolút, vagy relatív elérési útvonal használatával. Az abszolút elérési útvonal megadásánál a keresett katalógus teljes elérési útvonalát kell megadni. Ebben az esetben a cd parancs paramétere a / karakterrel kell hogy kezdõdjön, a cd parancs errõl ismeri fel, hogy abszolút elérési útvonalról van szó. pl cd /users/demo (Így a demo nevû alkönyvtárba jutunk.) Relatív címzés esetén azt mondjuk csak meg, hogy az aktuális

katalógushoz képest hol helyezkedik el a megcélzott katalógus. pl pwd /users/demo cd. pwd /users cd demo pwd /users/demo Ha a cd parancsot argumentum nélkül hívjuk meg, akkor a bejelentkezési (home) könyvtárunkba jutunk vissza. (Erre jó a $ HOME jel, vagy a ~ jel is) Az mkdir (make directory) parancs Új katalógus létrehozására szolgáló parancs. Ellentétben a DOS-ban alkalmazott paranccsal itt lehetõség van megfelelõ kapcsoló alkalmazásával több alkönyvtár egyidejû létrehozására. Pl. mkdir ujkonyvtar Kapcsolók: -p Létrehozza a kívánt katalógus eléréséig az össze szükséges katalógust. Az rmdir (remove directory) parancs Könyvtárak törlésére szolgáló parancs. Az rmdir parancs csak üres könyvtárat vagy könyvtárakat töröl. Pl.: rmdir konyvtar Kapcsolók: -p A katalógus törlése után, a szülõ katalógust is törli, ha üres, rekurzíven. -s A -p kapcsoló üzenetének az elnyomása. Az mv (move) parancs A fájlok

állományrendszeren belüli mozgatására szolgáló parancs. Az elsõ paraméterként megadott file nevet átkereszteli a második paraméterben megadott file névre. Ha az utolsó paraméter katalógus név, akkor az elõtte lévõ fájlokat áthelyezi oda név változtatás nélkül. pl mv file1 file2 (Ha a file2 már létezik, akkor azt felülírja rendszerint figyelmeztetés nélkül.) mv file1 file2 demo A cp (copy) parancs Fájlok másolására szolgáló parancs. Az elõzõ parancshoz hasonlóan mûködik Ebben az esetben is két paramétert kell megadni, elsõként a másolni kívánt fájl nevét, majd második paraméterként a célfájlt, vagy célkatalógus nevét. Ha egy fájlt az aktuális könyvtárból egy másik könyvtárba akarunk másolni vagy mozgatni, meg kell adnunk a cél könyvtár nevét is. Ha a mûvelet tárgyát képzõ fájl nincs az aktuális alkönyvtárban, akkor azt is meg kell adni, hogy melyik könyvtárban tálaljuk meg. Az alábbi parancs az

aktuális könyvtárban levõ level1 fájlt átmásolja az (aktuális könyvtárból nyíló) mail könyvtárba: cp level1 mail A következõ példa feltételezi, hogy éppen nem tudjuk, melyik könyvtárban vagyunk, és a gyökérbõl nyíló public/news alkönyvtárból szeretnénk "hazamásolni" (a "home directory"-nkba) a last-news nevû fájlt. Ime: cp /public/news/last-news ~ A ~ jel a bejelentkezési (home) könyvtárunk rövid neve, így nem kell kiírnunk az általában tekintélyes hosszúságú (/home/users/13k/akarki) home könyvtár nevet. Az aktuális könyvtárnak is van egy rövidített neve, mégpedig a pont (.) A következõ parancs a /usr/news/legujabb nevû fájlt másolja át oda, ahol éppen tartózkodunk - vagyis az aktuális alkönyvtárba. cp /usr/news/legujabb . Kapcsolók: -i Interaktív mûködési mód. Megkérdezi, hogy valóban szeretnénk-e a fájlt felülírni -p Megõrzi és örökíti az eredeti fájl hozzáférési jogait. -r A

megadott másolandó katalógust a benne lévõ alkatalógusokkal együtt másolja. -f Ha írásvédett a fájl vagy katalógus nem jelez hibát. Az rm (remove) parancs Fájlok törlésére szolgáló parancs. Ennél a parancsnál szintén megadhatunk több fájlnevet a paraméterlistán. pl rm file1 file2 file3 Ez a parancs letörli a file1, file2 és file3 nevû fájlokat az aktuális alkönyvtárból. Kapcsolók: -f Visszakérdezés nélkül törli az állományt, akkor is ha az írásvédett. -r Az argumentumlistán megadott katalógustól kezdve rekurzíven törli az alatta lévõ állományokat és katalógusokat (mindent !) -i Az állományok törlése elõtt megkérdezi a felhasználót. !!!Ha egy fájlt letöröltünk vagy felülírtunk, akkor az megsemmisül és semmilyen eszközzel sem lehet visszaállítani!!! Az ln parancs Segítségével egy fájlra több féle névvel is hivatkozhatunk, vagyis egy adott fájlnak többféle nevet adhatunk. Ez akkor lehet fontos,

amikor van kettõ (vagy több) futtatható programunk melyek hasonló feladatokat látnak el, és nem akarjuk mindkettõt külön-külön lefordítani bináris programmá, hanem csak egy nagyobb programot akarunk melyet aszerint futtatunk le, hogy milyen néven hivatkozunk rá. Így memória és lemezterületeket lehet megtakarítani Szép példa erre éppen ez a parancs, mely hasonló a cp és az mv parancshoz, így e három tevékenységet tulajdonképpen egy bináris program végzi. A UNIX kétféle linket ismer a hard és a soft linket, melyek csak abban különböznek egymástól, hogy a UNIX másképp kezeli õket. Szintaxisa: ln [ -s ] forrásnév célnév Kapcsolók: -s Soft linket készít. (Kapcsoló nélkül hard linket készít) Például: Hard link készitése: ln egy ketto Most az egy és a ketto ugyanaz a fájl - tehát, ha az egyiket módosítjuk a másik is módosul, mivel csak a név más, a fájl ugyanaz. Ugy is felfoghatjuk, hogy egy fájlnak egyszerre ket néve is

van Soft, avagy szimbólikus link készitése: ln -s egy ketto lrw-r--r-- 1 fvarga student 12 Aug 5 14:25 ketto -> egy@ A fájlelérési jogok kezdõ "-" jele most l betûre változott. Innen látszik, hogy szimbólikus linkrõl van szó, azaz a link katalógus bejegyzése egy olyan fájlra mutat, ami a láncolt fájl nevét tartalmazza. (lásd a listázás végén látható nyilat) A df parancs Szabad lemezterület összegzése. A df program kijelzi az argumentumaiban megadott fájlokat tartalmazó fájlrendszerekben rendelkezésre álló lemezterületet. Argumentum nélül az összes beépített (mount-olt) fájlrendszer szabad területét adja meg. Alapértelmezés szerint a szabad területek 1K blokkokban értendők. A kill parancs Megállít egy processzt (folyamatot). A kill program a megadott jelzést (signal) küldi a megadott processznek. Amennyiben nem adunk meg jelzést, a TERM-jelet küldi el Ez megöli azokat a processzeket, amelyek nem kapják el ezt a

jelzést. Szükség esetén használható a KILL (9) jelzés, amely nem kapható el, így feltétlenül megállítja a processzt. A legtöbb modern buroknak (shell) van beépített kill parancsa is. A mount parancs Fájlrendszert csatlakoztat (mount-ol). Egy Unix rendszeren elérhető összes fájl egy nagy, faszerkezetű, hierarchikus rendszerben van elhelyezve, amely a / (gyökér) könyvtárból gyökerezik. Az innét elérhető fájlok azonban több eszközön helyezkedhetnek el A mount parancs arra szolgál, hogy egy eszközön található fájlrendszert ebbe a nagy fastruktúrába bekapcsoljunk. Ezzel ellentétes értelmű az umount , ami a lecsatolásra szolgál Az umount parancs Fájlrendszerek lecsatolása (unmount-olása). Az umount parancs lecsatolja a megadott fájlrendszereket a könyvtárstruktúráról. A fájlrendszer megadható a csatolási könyvtár vagy a csatolt eszköz speciális eszközfájljának megadásával. Megjegyzendő, hogy egy fájlrendszert nem lehet

lecsatolni, ha `foglalt (`busy), például ha nyitott fájlok vannak rajta, vagy némely processznek a munkakönyvtára ezen található, vagy rajta található egy aktív swap fájl. A ps parancs A processzek (folyamatok) állapotát adja meg. A ps program az aktuális processzek pillanatfelvételét adja. Amennyiben az állapotok ismétlődő frissítésére van szükség, a top használata javasolt. A tar parancs A tar archiváló segédprogram GNU változata. A zip parancs A zip archiváló segédprogram GNU változata. Mûveletek szövegfájlokkal A cat parancs A cat parancs a paraméterként megnevezett fájlokat listázza ki folyamatosan tördelés nélkül. pld cat file1 (A file1 tartalmát kiíratja a képernyõre.) Kapcsolók: -s Nem kapunk hibaüzenetet hiányzó állományok esetén. -v A nem nyomtatható karaktereket olvasható formában jeleníti meg. A touch parancs Módosítja az utolsó hozzáférés dátumát vagy (ha még nem létező fájlra használjuk)

létrehozza azt 0 hosszúsággal. touch file1 A more parancs Hasonló mint a cat parancs, csak a fájl tartalmát oldalanként jeleníti meg. pld more file1 A szövegbõl most egy képernyõnyi rész jelenik meg, a szóköz (space) billentyû lenyomására megmutatja a következõ oldalt. Ha nem akarjuk végignézni az egész fájlt, üssük le a q betût vagy a Ctrl-C-t. A head parancs Egy fájl elsõ sorait lehet vele megjeleníteni: head -15 file1 A file1 fájl elsõ tizenöt sorát listázza ki. A tail parancs A fájl utolsó sorait lehet vele megtekinteni. pld tail -3 fájl név A file parancs A file parancs egy adott fájl típusának meghatározására szolgál. Kapcsolók nélkül az aktuális katalógusban vizsgál. Kapcsolók: -f knév A knév nevû katalógusból vizsgálja a megadott fájl neveket. -L Ha a fájl szimbólikus link, akkor magát a fájlt vizsgálja. pld file -f /home/demo file1 file1:ascii text De a file* parancs az aktuális katalógus fájljait fogja

megvizsgálni. A du parancs A fájljaink és könyvtáraink által elfoglalt lemezterületet lehet vele megtekinteni. Szintaxisa: du [ -a ] [ -s ] directory Kapcsolók: -a A könytárban szereplõ összes fájlról is ad adatot. -s Csak a könyvtár teljes helyfoglalását írja ki. pld du -s konyvtar 15 (A du parancs az eredményt kilobájtban adja meg.) A cmp parancs Összehasonlit két állományt ha nincs különbség nem tesz semmit, ha van akkor ki irja azt a sort ami különbözik. A comm parancs Összehasonlít két sorbarendezett file-t, sorról sorra. kiirja azokat a sorokat, amelyek megegyeznek, és amelyek különböznek a két file-ban. A két file-nak rendezettnek kell lenni a comm használata elött. Ha file-névként `--t adunk meg, az a standard bemenetet jelenti Opciók nékűl a comm három oszlopot ad kimenetként. Az első oszlop a file1-ben lévő egyedi sorokat mutatja, a második oszlop a file2-ben lévőket, a harmadik pedig azokat, amelyek mindkettőben

egyformák. pico - egyszerű szövegszerkesztő A pico egy egyszerű képernyő orientált szövegszerkesztő amely a Pine üzenetszerkesztő rendszerén alapul. A pine-hoz hasonlóan a parancsok itt is a képernyő alján jelennek meg és környezetfüggő súgóval rendelkezik. A karakterek a begépelés pillanatában megjelennek a szövegben. A szerkesztő parancsokat a control és a megfelelő billentyű kombinációjával indíthatjuk. Mivel a legtöbb kommunikációs program "elnyel" bizonyos vezérlőkaraktereket ezért a control billentyű az ESC billentyű kétszer egymás után való lenyomásával emulálható majd ezután üssük be akívánt vezérlőkaraktert. Például: "ESC ESC c" ugyanazt csinálja mint a ctrl-c A szerkesztő öt alapfunkciója: bekezdés igazítás, keresés, blokk kivágás/ bemásolás, helyesíras ellenőrzés, és fájl böngészés. Bekezdés igazítás (vagy kitöltés) arra a bekezdésre vonatkozik amelyikben a kurzor

éppen áll, vagy ha a kurzor üres sorban áll akkor a következő alatta lévőre. A bekezdések üres sorokkal vannak elválasztva vagy olyan sorokkal amelyek szóközzel vagy tabulátorral kezdődnek. A visszaigazítás a control-U billentyűk kombinációjával tehető meg de csak közvetlenül az igazítás után. A szövegkeresés nem kis/nagybetű érzékeny. Egy keresés a kurzor aktuális poziciójától indul és a szöveg végéig tart. A keresés során a legutolsó keresett szöveget ajánlja fel a program mint alapértéket a következő kereséshez. A szövegblokkok mozgathatóak, másolhatóak és törölhetőek a kijelölés (ctrl-^), a törlés (ctrl-k) és a törlés visszavonása (ctrl-u) parancsok ügyes használatával. A törlés parancs eltávolítja a kijelölések között lévő szöveget és a "kivágás" bufferbe rakja. A törlés visszavonása parancs egy bemásolást hajt végre az aktuális kurzorpoziciónál. A helyesírás ellenörző

megvizsgál minden szót a szövegben. Ezután egymás után felajánlja az elgépelt szavakat javításra miközben kiemelve megjeleníti őket a szövegben. A helyesírás ellenörzés bármikor megszakítható. A pico helyesírás ellenörző eljárása helyett használhatunk mást is, ekkor az eljárást a SPELL környezeti változóban kell definiálni. Az eljárásnak a standard bemenetet kell olvasnia es a standard kimenetre kell írnia. A UNIX shell A UNIX felépítése címû fejezetben már volt róla szó. A shell az a program, amelyik elindul amikor belépünk egy UNIX rendszerbe, a parancsokat innen adjuk ki és a parancsok végrehajtása után ide térünk vissza (hasonló a DOS command processzorához). Minden shell egy un. prompttal jelzi, hogy kész a parancsok fogadására Shell-bõl több fajta létezik Az alábbiakban a legelterjedttebb változatairól lesz szó. Két fõ kategória van: az un "Bourne shell" és a "C shell", ezek neve sh és

csh. Nevükön kívül szintaxisukban különböznek: a csh a C programoknál használatos szintaktikát követi hasonlóan a tcsh-hoz, amely a csh egy kibõvített változata. Természetesen az sh-nak is van bõvitett változata: a ksh (Korn shell) Ez utóbbi mindazokat a funkciókat igyekszik megvalósítani amivel a csh több az sh-nál. pl "history" buffer hasonlóan a DOS doskey funkciójához, vagy aliasing mechanizmus, amelynek révén hosszú parancsokra rövidebb nevekkel tudunk hivatkozni. Mi a Bash shellt használjuk ez egyesíti a két shell fajat elönyös tulajdonágait. A parancsok általános szintaxisa A parancssor elejét a prompt jelzi- ez rendszerint % vagy $ esetleg # jel a sor elején, de bármi más is lehet, tetszõlegesen beállítható. A parancs neve után szóközökkel elválasztva kell megadni a paramétereket: ezek határozzák meg közelebbrõl, hogy a parancs mit is csináljon. A szóköz fontos, mert a parancsértelmezõ (shell) a

parancssorban szereplõ karaktereket az elsõ "fehér karakterig" egybe olvassa. A fehér karakterek közé tartozik a szóköz, a tabulátor és maga az újsor karakter. A paraméterek közül azokat, amelyek mínusz (-) jellel kezdõdnek, ezentúl kapcsolóknak fogjuk hívni, mivel ezekkel lehet bekapcsolni egy parancs különféle üzemmódjait. A kapcsolókból rendszerint egyszerre több is megadható, ilyenkor általában elegendõ egy mínusz jelet kiírni és felsorolni utána a kapcsolókat (ezt nem minden rendszer teszi lehetõve!). Például az ls -l -a -r parancs megadható igy is: ls -alr. A UNIX mindig csak annyi üzenetet ad, amennyit elengedhetetlenül szükségesnek tart. Ezért ne lepõdjünk meg, ha egy parancs végrehajtása után semmi sem jelenik meg a képernyõn: ez azt jelenti hogy a parancs hibátlanul lefutott. A UNIX programok sikeres végrehajtás esetén soha nem jeleznek vissza, csak hiba esetén. A UNIX törekszik az egységességre, ennek

szellemében minden interaktív parancsból ugyanúgy kell kilépni. (Interaktívnak nevezzük azokat a parancsokat, amelyek futás közben elvárják, hogy begépeljünk nekik valamit.) Tehát ha ki akarunk lépni egy ilyen programból, üssük le a Ctrl+D billentyûkombinációt. Ha a parancssorban ütjük le a Ctlr+D-t, akkor kijelentkezünk a rendszerbõl (néhány gépen ez le van tiltva, helyette a logout parancsot kell használnunk). Ez összhangban van az elõzõ alapelvvel, mert amikor be vagyunk jelentkezve, valójában egy programot futtatunk (ez a parancsértelmezõ, amit shell-nek vagy buroknak hívnak): kijelentkezéskor ebbõl a programból lépünk ki. Ugyancsak alapelv, hogy a kis- és a nagybetûk különbözõnek számítanak. Ügyeljünk erre, és lehetõleg semmit ne gépeljük csupa nagybetûvel! A shell változók és a környezet A shell részben programozási nyelv is, ezért tartalmaz változókat, melyek lehetnek lokálisak (a shell belsõ változói)

és globálisak (a shell környezeti változói). Figyelem! Az sh-ban (sh, ksh) és a csh-ban (csh, tcsh) másként kell értéket adni a változóknak! Az sh tipusu shellek az "=" jelet használják lokális változók megadására: a="hello sh" míg a csh tipusuakban a set paranccsal kell értéket adni a változóknak: set a="hello csh" A kiíratást mindkét shell esetében az echo parancs végzi, a változó neve elõtt pedig egy $ jelnek kell szerepelnie: echo $a hello sh Ezek a shell belsõ változói - tehát csak az aktuális shellben ismertek, lokálisak. A shell lehetõvé teszi a futtatandó programok környezetének (environment) beállításat is. A környezet azon változók csoportja, melyek minden programból elérhetõek, globálisak. A környezet beállításának szempontjából is különbözik az sh és a csh. A környezet beállítása sh-ban: Például PAGER környezeti változó, amelyet például a man parancs (késõbb még szó

lesz róla) használ megjelenítõprogramként. A sh-ban következõképpen állítható more helyett cat-ra PAGER="cat" export PAGER A környezeti változók beállítása csh-ban a setenv parancs segítségével történik. A fenti példa csh-s megfelelõje tehát: setenv PAGER cat Ennek kicsit kellemetlen az eredménye, mivel ha man-t kérünk, a szöveg elrohan a szemünk elõtt. Ha oldalanként szeretnénk látni a szöveget, akkor állitsuk be a környezeti változót more értékre. Amennyiben egy lokális vagy környezeti változóra nincs szükségünk, kitörölhetjük õket. Sh-ban unset változónév, csh-ban a lokális változókra unset változónév, a globálisokra pedig unsetenv változónév. Azt hogy milyen változók vannak beállitva úgy tudhatjuk meg, hogy a set ill a setenv parancsok után nem írunk változónevet. A PATH környezeti változó Kiemelten kezeli a shell a PATH (csh-ban path) nevû változót, ugyanis ez a változó jelzi a shell

számára, hogy hol kell keresnie a futtatandó programot. Például: echo $PATH /bin /usr/bin /usr/local/bin . A fenti példa az sh -t mutatja, mindez csh-ban igy néz ki: echo $path /bin /usr/bin /usr/local/bin . Tehát a shell elõször megnézi, hogy a futtatandó program a /bin-ben, a /usr/bin-ben, a /usr/local/bin-ben végül pedig az aktuális könyvtárban (a "." ezt jelzi) található-e? Automatikus indítású shell scriptek Minden shell képes arra, hogy indulasákor egy adott nevû shell scriptet elindítson, így a felhasználóknak lehetõségük van arra, hogy környezetüket személyiségükhöz igazítsák. Ez a program az sh-nál a bejelentkezési könyvtárban (home directory) lévõ ".profile", csh esetében pedig a bejelentkezés esetén a ".login" és minden más csh indításnál a bejelentkezési könyvtárban lévõ ".cshrc" rejtett fájl Ki-ki ebbe teheti az általa kedvelt változó és környezet beállításokat.

Lássuk mit lehet beállítani egy .cshrc fájlban cat .cshrc set history=100 alias h history alias ls ls -F alias ll ls -l | more set prompt="`hostname` > " A set history arra szolgál, hogy a begépelt parancsainkat a rendszer megõrizze. A 100-as szám azt jelzi, hogy 100 parancsot õriz meg. (mint a DOS-nál a doskey) A h parancs most a history parancs ekvivalense - a history parancs az eddig begépelt utasításokat listázza ki. A következõ sorban az ls az ls -F -nek lesz az ekvivalense. Ezután minden ls parancs automatikusan ls -F lesz. Az ezutáni sor még érdekesebb, mivel arra példa, hogy egy utasitássorozatnak legyen egy rövid neve. Tehát egy lista kimenetét átadjuk a more nézegetõ programnak, hogy oldalanként lássuk azt. Ezután a prompt beállítására láthatunk példát. A gép elõször lefuttatja a hostname programot, ami kiírja a gép nevét és azt berakja a promptba. A ` (visszafelé mutató egyes idézõjel) jelentése, hogy a

program futásának eredményét helyettesítse be a hostname szó helyett. Az alias parancs arra szolgál, hogy egy hosszab utasitássorozatot egy parancs begépelésével indíthassunk. A jelenleg definiált aliasokat a paraméterek nélkül hívott alias parancs mutatja meg; egy-egy aliast pedig az unalias paranccsal tudunk megszüntetni. Bemenet és kimenet fogalma Mint már korábban olvashattuk, a UNIX parancsok nem, vagy nagyon ritkán jelzik, ha jól mûködnek. Az, hogy a UNIX nem jelzi a hiba nélküli futást, azért van, hogy a parancsok be- és kimenetei más parancsoknak átadhatóak legyenek. A legtöbb program a bemenetrõl (standard input - stdin) veszi az adatait és a kimenetre (standard output - stdout) küldi az eredményt. Azonban elõfordulhat, hogy hiba lép fel és azt a programnak jeleznie kell. Ilyenkor a hiba leírását egy más helyen, a hibacsatornán kapjuk (stderr). Rendszerint a bemenet a billentyûzet, a kimenet és a hibacsatorna pedig a képernyõ.

Például: a sort parancs rendezi a bemenetrõl beérkezõ sorokat (a -r kapcsolóval fordított (reverse) rendezés): sort gyufa izzok csoko <ctrl-d> csoko gyufa izzok Megjegyzés: a <ctrl-d> a control (Ctrl) és a d billentyûk együttes leütését jelenti! Igy máris abc-sorrendbe raktuk a bevásárlólistát. A bemenet és a kimenet átirányítása A shell lehetõséget ad arra, hogy a kimenetet átirányítsuk (redirection), és ehhez csupán a ">" jelet kell hogy használjuk. Nézzük, hogy is mûködik ez az elõzõ példán sort > mit vegyek gyufa izzok csoko <ctrl-d> Ugyanezzel a módszerrel - átirányítas - hoztunk létre fájlt (ott a cat parancs kimenetét irányítottuk át). Az eredmény nem látható, hanem a mit vegyek nevû fájlba került Nézzük meg, hogy valóban ez történt-e? cat mit vegyek csoko gyufa izzok Ugyanez vonatkozik a bemenet átirányítására is, ennek jele "<". Például: csináljunk egy áruk

nevû fájlt, aminek tartalmát rendezzük: cat > aruk izzok gyufa csoko <ctrl-d> sort < aruk csoko gyufa izzok Fontos jel még a ">>", ami szintén a kimenet átirányítását teszi lehetõvé; különbség közte és a szimpla átirányítójel között annyi, hogy ha ezt használjuk, a fájl végéhez tudunk hozzáfûzni új adatokat. Csövek Azt már tudjuk, hogy egy-egy program eredményét hogy lehet fájlba átirányítani, azonban lehetõség van arra, hogy egy program a bemenetét egy másik programtól vegye. Erre talalták ki UNIX-ban a csõ (pipe) fogalmát. Azt, hogy egy program kimenetét egy másik bemenetére szeretnénk átirányítani a "|" jellel jelezzük. Vegyünk egy konkrét példát - szeretnénk a bejelentkezési könyvtárunkat fordított abcsorrendben kiíratni. Eddigi tudásunkkal hogyan tudjuk ezt megvalósítani? ls -l > file list cat file list total 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 list total 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 kapcsolói csak azt jelentik, hogy a 3. mezõtõl kezdjen rendezni (egyet ki kell vonni a mezõ sorszámából!), és hogy forditva (r - reverse) Ezt a csõ használatával egy sorban is el lehet intézni, és az eredmény ugyanaz: ls -l | sort -r Nagyon jó szolgálatot tesznek a csövek a hosszu könyvtárlisták nézegetésénél is. Az ls -l | more paranccsal oldalanként nézegethetjük a listát, igy az nem fut le a képernyõrõl. forrás: Csonka Gabor es Varga Ferenc: UNIX felhasználói ismeretek LINUX BEVETEZETÉS A Linux szabadterjesztésű szoftver, tehát bárki ingyen másolhatja, továbbadhatja, módosíthatja, ha ezért nem kér pénzt. (Ez egy kissé bonyolultabb, de pecíz megfogalmazásban olvasható a 62

fejezetben.) Ebből adódóan a Linux mögött nincs egy világcég, amely reklámmal, piackutatással, megvesztegetéssel egyengetné a rendszer útját. Ezzel szemben több száz fejlesztő dolgozik a tökéletesítésén, és Linus Torvalds mostanára nemcsak fejleszti Linux-ot, hanem ezt a fejlesztést koordinálja. Ezek a fejlesztők többnyire nem ismerik egymást, csak az Interneten keresztül tartják a kapcsolatot. Ez a szétszórt fejlesztés mégis olyan hatékonysággal történik, hogy a Linux megbízhatóság, sebesség tekintetében bátran felveheti a versenyt bármely ``pénzes operációs rendszerrel. (Az árban meg egyenesen verhetetlen) A Linux történetébe való bepillantás tehát egy olyan világba vezet minket, ahol a programozók ``dicsőségért programoznak, mindenki szabadon átadja ismereteit a többieknek, és az egész vállalkozást a lelkesedés viszi előre, mégis a szoftvernagyhatalmakkal összevethető eredményességgel dolgozik. Ez a mentalitás

nemcsak a Linuxot jellemzi, hisz már a `70-es években jelentkeztek a UNIX-os világban az első szabad terjesztésű programok (maga a UNIX is az volt eredetileg). Ezeket a szabad szoftvereket a ``GNU project, valamint a ``Free Software Foundation fogja össze, melyeknek tevékenysége szélesesebb körű, mint a Linux rendszer. Ezen munkákba is bepillantást szeretnénk adni ezen dolgozatban. MI IS AZ A LINUX? Ma a Linux egy 32/64 bites, POSIX szabványt követő UNIX változat, amely eredetileg csak IBM PC gépeken futott (80386 vagy jobb processzor esetén), de mára nagyon sok hardverre adaptálták. Így létezik Linux DEC AXP, PowerPC, M680x0, Sun Sparc alapú gépekre is A különböző hardverekre a rendszer kidolgozottsága eltérő fokú, de mindegyik esetén legalábbis összemérhető hatékonyságú és megbízhatóságú az azon a gépen szokásos operációs rendszerekkel, több esetben pedig sok szempontból jobb. Különösen igaz ez a 386/486/586/686 alapú IBM

PC-k esetében: sebesség és megbízhatóság tekintetében messze túlszárnyalja a leginkább elterjedt DOS, Windows, Windows 95 rendszereket. Például teljesen megszokott, hogy egy Linuxos szerver éjjel-nappali üzemben dolgozva, 2-6 felhasználó által igénybe véve hónapokig megbízhatóan üzemel, míg a legelterjedtebb rendszerekkel egy felhasználó sem tudja könnyen elérni, hogy naponta egyszer ne kapjon ``Általános védelmi hiba, vagy hasonló sokatmondó üzenetet. Egy másik példa erre az, hogy az Ultra Sparc processzoron futó 64 bites Linux teljesen stabilnak tűnik, míg a Sun még nem tudott előállni stabil 64 bites operációs rendszerrel ugyanerre a processzorra. A Linux valóban 32/64 bites és valóban többfelhasználós (multiuser) és többfeladatos (multitasking) operációs rendszer. Ennek az az oka, hogy írója nem egy korábbi rendszert kezdett el tökéletesítgetni, toldozgatni, hanem ``az első bittől kezdve előről írta meg,

felhasználva sok más programozó tapasztalatát, később programrészleteit. A nagyon gondos programozás miatt ritka, hogy két program (pontosabban: két process) zavarja egymást, így kitűnően alkalmas programfejlesztésre is. A Linux rendelkezik a szokásos funkciókkal: virtuális memória, merevlemez gyorsítótár, memórialemez, Internet hozzáférés, a leggyakoribb hardverelemek (CD-olvasó/iró, nyomtató, IDE és SCSI lemezek, stb.) kezelése A rendszer kidolgozottsága olyan fokú, hogy egyre több helyen alkalmazzák UNIXos munkaállomásként, vagy hálózati szerverként. Mindkét esetben hatalmas előny a szokásos IBM PC-s programokkal szemben a nagyfokú megbízhatóság és az alacsony ár, valamint az sem elhanyagolható, hogy nagyon nagy a hasonlóság a Linux és a ``nagygépek operációs rendszerei közt, azaz pl. egy Linuxos program könnyen átvihető mondjuk egy Sun SPARC gépre, de gondos programozás esetén akár egy CRAY szupergépre is. Joggal

merülhet fel a kérdés: ha mindez így van, miért nem Linuxot használ mindenki a világon. Erre a dolgozat hátralevő részében részletes magyarázatot adunk, itt csak a főbb szempontokat említjük meg. Mivel a Linux szabadterjesztésű, így a programozók számára nem biztosít megélhetést (sőt, leginkább egy garast sem). Ezért senki nem vállal felelősséget azért, hogy az általa írt rész működni fog. Ez sokakat visszariaszt, és ki sem próbálják a rendszert Továbbá, mivel nincs a Linux mögött egy nagy cég, nincs biztosíték arra, hogy a rendszer fejlesztése nem marad abba mondjuk jövőre. Ugyanezen ok miatt nincs reklámozva sem a termék, tehát sokan meg sem ismerik. Az, hogy ezek ellenére a Linux-felhasználók száma milliókban mérhető, azt jelzi, hogy érdemes erre a rendszerre odafigyelni, és a számítástechnika történetének érdekes, és ma is élő színfoltját jelenti ez a program, és az a mozgalom, ami körülötte kialakult.

A LINUX TÖRTÉNETE NAPJAINKIG Nehéz egy ilyen szerteágazó rendszer történetét megírni. A több száz fejlesztő miatt -- a kezdeteket leszámítva -- az események ugyanis több szálon zajlottak. Ezek közül itt először, a rendszermag (kernel) fejlődésével foglalkozunk. Később kitérünk a terjesztési csomagok (disztribúciók) történetére is. A Linux születése, csecsemőkora (0.01-010) A Linux fejlesztésének kezdetén Linus Torvalds a 80386 processzor védett módú (protected mode), feladat-váltó (task-switching) lehetőségeivel szeretett volna megismerkedni. Ez kb 1991 nyarának elején lehetett. A pontos dátumra maga a szerző sem emlékszik, de amikor egyszer megkérdezték, mikor van a Linux születésnapja, azt mondta, hogy nem tudja megmondani, de egy e-mail tanúsága szerint július 3-án már a POSIX szabvány után érdeklődött, így akkor már biztos futott az alaprendszer. 1 Ábra: Linus Torvalds A program fejlesztése egy korábbi PC-s

UNIX, a Minix alatt történt, eleinte assembly-ben. Az első fázisban kialakuló 0.01-es változat még semmire sem volt használható, csak egy lépcső volt a továbbfejlesztéshez. Linus Torvalds így ír erről: Két hónap telt el az alaprendszer felállításáig, de utána rövidesen lett egy lemezmeghajtóm (amely súlyos programhibákkal volt tele, de az én gépemen történetesen működött) és egy kis fájl-rendszerem. Körülbelül ekkor [1991 augusztusának végén] tettem közzé a 001-es változatot: nem volt kicsinosítva, nem volt floppi-meghajtója, és nem sok mindent tudott csinálni. Azt hiszem, soha senki nem fordította le ezt a változatot. De akkor már beindultam, és nem akartam addig megállni, amíg túl nem haladom a Minixet. Amikor Linus áttért a C nyelvre, a fejlesztés lényegesen gyorsabbá vált, és olyan nagyratörő tervek fogalmazódtak meg, hogy valaha le lehessen fordítani a GNU C fordítóját Linux alatt. (Ma már csak csodálkozni

lehet azon, hogy 1991-ben ez volt a nagy álom, és azóta hol tart a rendszer.) Ez a legelső változat még nem volt használható: csak Minix alatt lehetett lefordítani, és semmi hasznos funkciója nem volt azon kívül, hogy írója megismerkedett a processzorral. 1991. október 5-én hirdette meg Linus az első ``hivatalos, 002-es Linux-ot az Interneten Ekkor már néhány alapprogram futott a rendszeren (pl. a GNU ``gcc nevű C fordítója, valamint a ``bash burokprogram), így már el lehetett kezdeni használni a rendszert. Ekkor nem is a rendszer használhatóságának növelése volt a fő cél, hanem a rendszermag fejlesztése. Ezért ekkor nem készültek dokumentációk, installációs csomagok, stb. A Linux ekkor még csak a megszállott hackereknek készült. Linus ekkor elhatározta, hogy az Interneten keresztül bevonja a fejlesztésbe a szabad kapacitással rendelkező programozókat, és a következő hirdetményt tette közzé a comp.osminix hírcsoportban:

Sóvárogsz a Minix-1.1 szép napjai után, amikor a férfiak igazi férfiak voltak, és mindenki maga írta a saját eszközmeghajtóját? Egy szép project nélkül vagy, és épp fened a fogad egy operációs rendszerre, amit igényeidnek megfelelően alakíthatsz? Frusztrálónak találod, ha minden működik Minix alatt? .Akkor ez a levél lehet hogy pont neked szól Ahogy egy hónapja említettem, egy szabad Minix-szerűségen dolgozom AT-386 számítógépre. Végülis elérkeztem egy olyan állapotra, amikor ez egyátalán használható (bár ez függhet attól, mit akarsz), és a program forráskódját szélesebb körben tervezem szétosztani. Ez még csak a 0.02-es változat, de sikeresen futtattam a bash, gcc, gnu-make, gnu-sed, compress, stb programokat alatta. Megjegyzendő, hogy ekkor, és még egy darabig a Linux erősen kapcsolódott a Minix-hez: önállóan nem is létezett, csak alatta lehetett lefordítani, futtatni, továbbá az Interneten is a Minix

hírcsoportjában folyt a Linux-ról szóló tárgyalás. A 0.03-as verzió két-három hét alatt megszületett, majd 1991 decemberében Linus kibocsátotta a 0.10-eset is Ez az ugrás a számozásban azt tükrözte, hogy jelentősen megnőtt a Linux alatt futtatható alkalmazások száma, de a Linux még mindig nem volt önálló, szerzője szerint is ``egy hacker által hackereknek írt rendszerről van szó, így a rendszernek csak fejlesztői vannak, felhaszálói nem. A Linux gyermekkora (0.11-099) 1991. december 19-től, a 011-es változat kibocsátásától számíthatjuk a Linux gyerekkorát Ez volt az első önálló rendszer, tehát nem kellett Minix a használatához. Sok olyan tulajdonsággal rendelkezett, amely jelezte, hogy itt valami komoly készül. Ezeket Linus felsorolásában adjuk közre: A 0.11-nek a következő újdonságai vannak: • demand loading • kód és adatmegosztás nem kapcsolódó processzek közt • sokkal jobb floppi-vezérlők (most

már többnyire működnek) • hibajavítások • Hercules/MDA/CGA/EGA/VGA támogatás • a konzol hangot is ad (Óh! Fantasztikus rendszermag!) • mkfs/fsck/fdisk (fájlrendszer karbantartó programok) • amerikai/német/francia/finn billentyűzet • a com1/2 sebessége beállítható A 0.12-es változat 1992 január 15-én látott napvilágot, néhány bővítéssel: Már volt init/login szolgáltatás (nem root-ként kellett először bejelentkezni, és inicializálni a rendszert), közeledett a POSIX szabványhoz, virtuális memóriát is használt és kissebb korrekciókat tartalmazott. Ez egy elég stabil változat lett, ekkortól kezdődött el a Linux igazi hódítása. A 012-es Linuxot ugyanis elkezdték használni ``egyszerű felhasználók is, nemcsak megszállottak. Szintén ehhez a változathoz kapcsolódik a Linux fejlesztésének kiszélesedése: a 0.12-es már lényeges részeket tartalmazott, melyeket nem Linus Torvalds írt. Pl a ``job control-t

Theodore Tso, a virtuális konzolokat Peter MacDonald programozta. Az így előálló rendszer már több vonatkozásban jobb volt a Minix-nél, de még mindig nem volt látható, hogy ebből akkora mozgalom lesz, mint ami mára kialakult. A sikeren felbuzdulva a verziószám hirtelen ugrott: a 0.95-ös 1992 márciusában, a 096 áprilisban lett kibocsátva. Ekkortól kezdve hihetetlen ütemben gyarapodott a Linux-felhasználók és -programozók száma. Ekkor a verziószám hirtelen ``befékezett. 1993 decemberében a verziószám 099pl14 volt (A pl14 a ``patch level 14 rövidítése, azaz ez a 14. javított változat) Bár a 095-ös verziótól kezdve a szolgáltatások száma, a megbízhatóság, és sok egyéb szempontból jelentős javulás következett be, és hihetetlenül sokan használták ezeket a rendszermagokat, az 1.0 verziószámot csak akkor merték kiadni (1994. elején), amikor a POSIX szabvánnyal való kompatibilitás kielégítővé vált. A 0.95-099

rendszermagra épülő rendszereknek óriási népszerűségük volt Egyes egyetemeken, pontosabban azok bizonyos intézeteiben gyakorlatilag likvidálták az összes nem Linux-os programot, és a PC-ken nem lehetett DOS-t vagy Windows-t találni. (Legfeljebb a titkárságokon.) Ez főleg olyan helyeken következett be, ahol a kutatók UNIX alatt dolgoztak, mert egy Linux-os PC-n otthon is fejleszthették a programjukat, és ezeket egyszerű volt az intézet nagykapacitású gépeire áttenni. (Egyik ismerősöm személyesen tapasztalta ezt 1993-ban a Würzburgi Egyetem Csillagászati Tanszékén: szó szerint senki sem használt DOS-t, még otthon sem, legfeljebb a kedvenc játékprogram futtatására. Az otthoni Linux-os gépen kifejlesztett, tesztelt programok gond nélkül áttehetők voltak az intézet CRAY gépére.) Hazánkban ekkortájt (1993) kezdett igazán elterjedni a Linux, mert ekkorra kötötték be a felsőoktatási intézmények nagy részét az Internetbe, így

sokaknak megnyílt a lehetősége a Linux beszerzésére. Megjegyezzük, hogy a 9.1 fejezetben pontosan megadjuk a kernelek megjelenési időpontjait A Linux és a Minix szétválását meggyorsította, hogy a Minix szerzője, Andrew Tanenbaum nem nézte jó szemmel a Linux-ot. Alapvetően elhibázottnak tartotta a Linux rendszermag típusát; Linus Torvalds ugyanis ún. ``monolitikus kernelt írt, míg Andrew Tannenbaum (elméleti megfontolások alapján) a ``mikrokernelt jobb választásnak tartotta. Sajnos, a vitába személyes elemek is keveredtek, és a vita jórészt az Internet hírcsoportjaiban zajlott, meglehetősen nagy nyilvánosság előtt. Így kissé ideges hangulatban zajlott le a Minix és a Linux szétválása Csak ízelítőül: Andrew Tannenbaum: Továbbra is fenntartom azt, hogy 1991-ben monolitikus kernelt tervezni alapvető hiba. Örülj, hogy nem vagy a tanítványom. Nem kapnál túl jó minősítést egy ilyen tervezésre :-) Linus Torvalds: Az Ön

foglalkozása professzor és kutató: Ez egy pokolian jó mentség a Minix némely agysérülésére. Andrew Tannenbaum (1992-ben): A Linux elavult! Mivel nem ismerem a Minixet, ezért nem tudok döntőbíró lenni a vitában, de mára a Linux felhasználók száma, alkalmazások sokrétűsége, és egy csomó más szempont szerint nagyságrendekkel veri a Minix-et. Talán elég azt megjegyezni, hogy a Linux-szal kapcsolatos angol nyelvű hírcsoportok száma több, mint 10, és magyarul is jópár (kb. 6) Linuxos hírcsoport működik, míg a Minix-szel csak egy foglalkozik az egész világon, melynek forgalma össze sem vethető a magyar Linux-listákéval sem. Annyit azonban meg kell jegyezni, hogy a Minix azért sem terjedhetett annyira, mint a Linux, mert nem szabadterjesztésű. Ennek ellenére az valószínűsíthető, hogy Andrew Tanenbaumnak nem volt igaza abban, hogy a Linux alapvető szervezése teljesen hibás, mert alapvető hibákkal nem lehetne egy rendszer ennyire

stabil, és nem is terjedt volna el. Talán személyes ambícióit sértette, hogy egy egyetemista az övénél használhatóbb rendszert hozott össze, mely mellett a Minix elhanyagolható szerepet játszik. Mindenesetre sajnálatos, hogy ilyen veszekedésekre is sor kerülhet komoly szakemberek között. A Linux fiatalkora (1.00-1213) A POSIX szabványosítás megfelelő szintű elérésével 1994. márciusában megjelent az 100 sorszámú kernel. Ekkortól kezdve egy speciális sorszámozási eljárást vezettek be a fejlesztők: A verziószámot három, ponttal elválasztott nemnegatív egész jelzi. Az első a fő verziószám, ami csak a rendszermag lényegét érintő változásoknál vált eggyel nagyobbra. A második szám elég speciális jelentésű: ha páros, akkor stabil, tesztelt kernelről van szó, amit bárkinek ajánlanak használatra, míg a páratlan szám tesztváltozatot jelöl, amit inkább azoknak javasolnak, akik tesztelni, fejleszteni szeretnék a kernelt,

és akiknek nem számít, ha a rendszer néha ``elszáll. A harmadik szám pedig kisebb módosításokkor ugrik egyet. Ábra: A Linux "hivatalos" emblémája Ennek megfelelően egyszerre két szálon fut a legújabb verziószám: pl. a legfrissebb két kernel sorszáma 2.030 illetve 2146 A stabil verziókba csak olyan modulok kerülhetnek bele, amelyek a fejlesztői változatokban már üzembiztosnak bizonyultak. Ez a fura sorszámozás lehetővé teszi, hogy az egyszerű felhasználók csak a valóban használható változatokat kapják meg, de közben az esetleg még hibákat tartalmazó fejlesztői változatok is hozzáférhetőek legyenek. A későbbiekben mi csak a stabil verziószámokkal foglalkozunk, mert ezek a ``hivatalos változatok. Ezen változatok nem hoztak újabb hatalmas áttörést, mert az már korábban bekövetkezett. A fejlesztés során a rendszermag egyre hatékonyabb lett, beépítették a legújabb hardverek meghajtóit (CD-olvasók, PCI-buszok,

újabb SCSI-eszközök, stb.) Talán leginkább az 12x-es kernelekkel bevezetett új végrehajtható programformátum, az ELF megjelenését kell itt megemlíteni. Ebben az időben a Linux alatti felhasználói programok száma nőtt meg hihetetlenül. Míg korábban főleg már meglevő szoftvereket vittek át a Linux alá, addig ekkor már megjelennek azok a programok, melyeket Linux alatt fejlesztenek, és innét viszik át a többi rendszerre. Ekkor már nagy szoftvercégek is elkészítik programjaik Linux-os változatát (pl. Maple V, Motif 20) Ezek természetesen nem szabadterjesztésűek, és az, hogy megéri Linux-ra is adaptálni őket, egyértelműen jelzi, hogy a Linux-felhasználók tábora világméretekben is piacot jelent. Ekkortájt egyre több Linux-disztribúció kezd megjelenni, azaz több cég olyan programcsomagot állít elő, amelyekkel a Linux telepítése, karbantartása sokkal könnyebb, mintha mindenki egyenként gyűjtené be a rendszer részeit. Ezekről

egy későbbi fejezetben külön szólunk Napjaink Linux-a (2.00-2030) 1996. augusztusában jelent meg a 200 sorszámú rendszermag Ennek fő újítása a modulok megjelenése volt: a kernel bizonyos részei modulként is elkészíthetők, és ezek a modulok akár automatikusan, akár kézzel betölthetők a memóriába, ahonnét a rendszer kipakolja őket, ha régóta nem használjuk. Ábra: A Linux 2.0 logója Például a nyomtató, floppi-vezérlő, nem Linux-os fájlrendszereket kezelő részeket célszerű modulba tenni, mert ekkor ezek csak addig foglalják a memóriát, amíg éppen használjuk őket, és ez többnyire a munkaidő jelentéktelen része. Ezzel az az érdekes helyzet állt elő, hogy a rendszermag memóriaigénye kisebb lett, míg hatékonysága és megbízhatósága megnőtt. (Erről a tendenciáról példát vehetnének a piacot uraló szoftverhatalmak is. Csakhogy azok nem hatékonyabb, hanem nagyobb anyagi hasznot hozó rendszer írásában érdekeltek,

és a hardvergyártókkal való összefonódás miatt sokszor a nagyobb memóriaigény kifejezetten előny a cég számára.) A Linux jövője Nehéz, és veszélyes dolog jóslásokba bocsátkozni, de néhány alapvető dologban biztosak lehetünk. A Linuxnak akkora tábora van, hogy még Linus Torvalds és a többi vezető programozó kilépése esetén is tovább fog folytatódni a munka. Különösen igaz ez azért, mert mára nemcsak IBM PCken, hanem a legerterjedtebb munkaállomásokon is fut Linux A mai napig folyamatosan növekszik a Linuxos szoftverek, a felhasználók száma, és az alkalmazások sokrétűsége. Hogy csak egy példát említsek: megépítettek egy ``LOKI nevű Linux-os szupergépet, amely 16db, hálózatban összekapcsolt 200MHz-es PC-ből áll, és ezt a Los Alamos National Laboratory-ban komoly kutatási feladatokra használják, mert számítási kapacitása egy kisebb CRAY számítógépével egyenértékű, az ára pedig annak töredéke. (A rendszer

főbb paraméterei: 16 db Pentium Pro processzor, 2 gigabájt RAM, 50 gigabájt winchester, 1.2 gigaflop Az ára: 63000$) Úgy néz ki tehát, hogy lendületben van a rendszer, és több évig tartó biztos dinamikus fejlődés előtt áll. Véleményem szerint az egyetemi és kutatási helyeken méltó vetélytársa bármelyik operációs rendszernek, és itt a jelenleginél sokkal nagyobb elterjedésre számíthatunk a közeljövőben. (Különösen, ha figyelembe vesszük a magyar felsőoktatási intézmények anyagi helyeztét.) Ugyanez nem mondható el az irodai alkalmazásokról, mert hiányzanak az ide szükséges szoftverek, de leginkább a közérthető, több nyelven elérhető dokumentációk. Igaz ugyan, hogy az utóbbi időben ez is változni látszik: pl. a Staroffice rendszer, amelynek jelenleg nemrég jelent meg az első stabil változata, kifejezetten irodai célokra készül, és állítólag teljesen kompatibilis módon fut Linux, Windows `95, Windows NT, SunOS, és

a legelterjedtebb operációs rendszerek alatt. Ezen kívül is egyre több irodai csomag kezd megjelenni Linux alá, melyek közül talán az Applixware rendszert illetve a Wordperfect szövegszerkesztő programot kell leginkább megemlíteni. Az biztos, hogy Linus Torvalds nem lesz a fejlődés gátja. Egy helyen ugyanis ezt írja: Azon a napon, amikor a Linuxot valaki más jobban tudja szolgálni (az FSF egy természetes alternatíva), félreállok. Nem gondolom, hogy emiatt valakinek aggódni kellene, és nem is gondolom, hogy ez a közeljövőben bekövetkezik. Szeretek a Linuxszal foglalkozni, még ha ez egy kis munkával jár is, és még senkitől sem kaptam panaszt. (Csak néhány, majdhogynem szégyenlős emlékeztetőt arról, hogy egy foltot elfelejtettem, vagy nem vettem figyelembe, de eddig semmi negatívot.) Ne vegyétek úgy a fentieket, hogy azon a napon, amikor valaki ellenkezik, abbahagyom: elég keményfejű vagyok (Lasu, aki ezt a vállam felett olvassa,

megjegyezte, hogy ``a FAfejű közelebb van az igazsághoz) egy kis mocskolódáshoz. Ha nem lennék az, abbahagytam volna a Linux fejlesztését, amikor a comp.osminix-en nevetségessé tettek Csak arra gondoltam, hogy bár a Linux eddig az én gyermekem volt, nem akarok útban lenni, ha az emberek jobbat szeretnének csinálni (*). (*) Hé, lehet, hogy kérhetném a szentté avatásomat a Pápától! Tudja valaki az e-mail címét? A LINUX-TERJESZTÉSEK (DISZTRIBÚCIÓK) A Linuxot kezdetben pusztán az Internetről lehetett beszerezni, és az installálás nem volt túl könnyű. Ekkor a rendszert még csak a számítógéphez nagyon értők használták A népszerűség növekedtével azonban igény mutatkozott olyan programcsomag-rendszerre, amely a kevésbé szakértő számára is lehetővé teszi a telepítést. Ez volt az oka a Linux-terjesztések (disztribúciók) megjelenésének. Általános tendenciaként azt említhetjük, hogy az egyre későbbi disztribúciók egyre

jobban megkönnyítik a felhasználó dolgát. Igaz, ennek ára van: egyrészt a legautomatikusabb változatok pénzbe kerülnek, másrészt egy automatikus telepítés sohasem olyan gazdaságos, mint egy kézi vezérlésű. Tehát egy automatikus telepítéskor felkerülhetnek felesleges programok is, vagy a konfiguráció nem a legjobban illeszkedik a rendszerhez, viszont a telepítés elkezdése és a rendszer használatba vétele közt sokkal kevesebb idő telik el, és az új programváltozatok is könnyen telepíthetők lesznek. Történetileg az első, világméretekben elterjedt disztribúció a ``Slackware volt. Ez megkönnyítette a rendszer telepítését, így nemcsak számítógép-specialisták tudták feltenni a Linuxot a gépükre. Ez azonban nem azt jelenti, hogy a telepítés könnyű lenne: elég sok dokumentációt kell elolvasni annak, aki Slackware-t akart telepíteni. Ez a disztribúció magán viseli a múlt nyomait: még mindig 1.4 megabájtonként, azaz

floppyra tehető módon vannak rendezve a programcsomagok, bár ma már kevesen telepítik a Linuxot floppyról. (Talán CD-ről történik a legtöbb installáció, de sokszor a az Interneten keresztül, valamilyen közeli szerverről történik a telepítés.) Megemlítendő azonban, hogy a kezdeti időkben sem volt egyeduralkodó a Slackware: léteztek más disztribúciók is. Ilyenek voltak pl az SLS, Transameritech illetve MCC terjesztések, melyekről pontosabb információval nem rendelkezek. A Slackware rendelkezik programcsomagok installálására, letörlésére, karbantartására írt programmal, de ez viszonylag kezdetleges a későbbi disztribúciókhoz képest. (Igaz, a legújabb, 3.2-es Slackware-ben ezt állítólag javították, de még nem szereztem megbítható értesüléseket erről.) Mostanában egyre nagyobb tért hódít a ``Red Hat disztribúció. Ez különösen a könnyű telepíthetőségével, fejlett csomagkezelésével, és a programcsomagok nagy

választékával nyújt a Slackware-nél több kényelmet. Igaz, ennek ára van: 8 megabájt RAM alatt nem telepíthető, míg a Slackware ennek felével is megelégszik. A RedHat legfrisseb verziószáma a 42-es A Red Hat-hez hasonló szolgáltatásokat nyújt a ``Debian is, de erről nem tudtam pontos információkat begyűjteni. Az eddig említett disztribúciókkal ellentétben a ``Caldera Open Linux teljes változata nem szabadterjesztésű: nemcsak az információhordozót és a másolási költséget kell megfizetnie annak, aki ilyenhez szeretne jutni. Az ára (kb 15-20000Ft) azonban még így is kedvező a hasonló célú ``operációs rendszerekkel összevetve, különösen azért, mert egy teljes Caldera Open Linux csomag kereskedelmi (pénzes) szoftvereket is tartalmaz, mint pl. Netscape, Staroffice. A SZABAD SZOFTVEREK (FREEWARE) ÉS A GNU PROJECT A Linux szabad szoftverként terjed. Első pillanatra ez furcsa lehet, azonban ha a számítástechnika történetét

megnézzük, rájöhetünk, hogy ez nem mai találmány. Az mai értelemben vett számítástechnika az 50-es években indult. Ekkor a gépek építési és karbantartási (hardver) műveletek nagyságrendekkel több emberi munkát igényeltek, mint a programok (szoftver) készítése. Ennek egyik oka abban keresendő, hogy igen drága volt az elektronikai berendezések előállítása, másrészről a programok -- mai szemmel -- meglehetősen kis méretűek voltak. (Nem is lehettek nagyok az akkori gépeken) Ez azt eredményezte, hogy a szoftvereket szabadon, baráti alapon terjesztették íróik, illetve az operációs rendszerek a számítógép tartozékainak számítottak. Még az 1969-ben született UNIX forráskódjának egy változata is szabadterjesztésű volt eredetileg. Később egyes intézmények, cégek is megírták a saját UNIX-változatukat, és ezek némelyikét már komoly összegekért árulták, mindenféle módon védekezve a szabad másolás ellen.

(Hasonló jelenség volt megfigyelhető más operációs rendszerek esetén is.) Úgy tűnik, az MS-DOS is sok ötletet szedett a UNIX-tól, ha nem is közvetlenül, de a CP/M-en keresztül. (Pl faszerkezetű künyvtárstruktúra, standard input-output átirányítás.) A 70-es évek végén és a 80-as évek elején több programozó nem vette szívesen a nem másolható programok, és az üzleti gondolkodás térhódítását. Szabadságukat korlátozó tényezőnek látták a terjesztésre és a módosításra kirótt korlátokat, amelyek a egyesek meggazdagodását szolgálják csak, miközben jó esetben közepes szintű programok születnek ilyen körülmények között. Ezért ezek a programozók saját programjaikat továbbra is szabadon közreadták, várták mások módosító javaslatait, esetleg programrészeit, ezek közül a jobbakat beépítették az új verziókba, és így tökéletesítették programjukat. Ez többnyire jobb minőségű szoftverekhez vezetett, mint a

nagy cégek korlátozott programozói gárdáinak termékei, amelyek erősen üzleti megfontolások szerint készülnek. A sok különálló elszánt programozót szerette volna Richard M. Stallman összefogni a 80-as évek első felében azzal, hogy megalapította a ``Free Softvare Foundation-t (FSF, Szabad Szoftver Alapítvány), és elindította a ``GNU project-et. Előbbinek elsődleges célja, hogy alapítványként adományokat fogadhat el, amelyekből gépparkot tarthat fenn és fizethet a programozóknak, utóbbi magát a programozási munkát hivatott koordinálni. A GNU project alapvető célja, hogy egy teljesen szabadterjesztésű programokból álló, UNIX-szerű rendszert hozzon össze. A következő fejezetben ennek 1985-ben megjelent kiáltványából szeretnénk néhány érdekes részt idézni, mert ez érthetőbbé teszi a GNU project alapfilozófiáját, amibe a Linux nagyon szépen beilleszkedik. Részletek a GNU project kiáltványából Mi a GNU? A GNU Nem UNIX!

A GNU (jelentése: a Gnu Nem UNIX) egy teljes, UNIX-kompatibilis szoftverrendszer, melyet azért írok, hogy bárkinek, aki használni tudja, ingyen odaadhassam. Számos önkéntes segít nekem. Nagy szükségünk lenne további támogatásra munkában, pénzben, programokban és felszerelésben. Eddig elkészítettünk egy Emacs szövegszerkesztot egy editor-parancsok írására alkalmas Lisppel, egy forrásszintu debugger-t, egy yacc-kompatibilis értelmezot, egy linker-t, és még mintegy 35-féle eszközt. Már egy shell (parancs-interpreter) is majdnem készen van Egy új, hordozható, optimalizáló C-fordító már lefordította önmagát, és valószínuleg még az idén közreadjuk. Egy kezdetleges kernel is muködik már, de még sok részlet hiányzik belole a UNIX emulációhoz. Ha a kernel és a fordító készen lesz, lehetové válik a GNU, mint programfejlesztésre alkalmas rendszer terjesztése. Szövegformázóként TeX-et fogunk használni, de az nroff

fejlesztése is folyik már. Az ingyenes és hordozható X-windows rendszert is használni fogjuk Ezek után készítünk majd egy hordozható Common Lisp-et, egy Empire game-t, egy táblázatkezelot, és még száz meg száz egyéb dolgot, beleértve az on-line dokumentációt. Reméljük, hogy minden hasznos dolgot, amit egy UNIX rendszer tartalmaz, biztosítani tudunk, sot, még annál többet is. . Ki vagyok én? Richard Stallman vagyok, a sokat utánzott EMACS megalkotója. Régebben az MIT AI laboratóriumában dolgoztam. Nagyrészt fordítókat, editorokat, debuggereket, parancsértelmezoket írtam, és az Inkompatibilis Idoosztásos Rendszer és a Lisp Machine operációs rendszer fejlesztésében vettem részt. . Miért kell megírnom a GNU-t? Az aranyszabály szerint, ha én kedvelek egy programot, akkor azt másokkal is meg kell osztanom. A szoftver-kereskedok egymás ellen akarják fordítani a felhasználókat, majd uralkodni akarnak fölöttük. El akarják érni, hogy a

felhasználók beleegyezzenek: nem osztják meg a programokat másokkal. Visszautasítom, hogy a többiekkel való szolidaritást így felrúgjam Nem tudok tiszta lelkiismerettel aláírni egy titoktartási vagy szoftver forgalmazási szerzodést. Az AI laborban töltött évek alatt ellenálltam az ilyen tendenciáknak és más barátságtalan lépéseknek, de végül túl messzire mentek: nem maradhattam egy olyan intézményben, ahol ilyen dolgokat követtek el az én nevemben, az akaratom ellenére. Azért, hogy a számítógépeket minden szégyenkezés nélkül tovább használhassam, elhatároztam, hogy összegyujtök egy olyan szabad szoftvercsomagot, amely lehetové teszi számomra, hogy a nem szabad szoftver nélkül is boldoguljak. Elmentem hát az AI laboratóriumtól, hogy az MIT ne tudja megakadályozni, hogy a GNU-t közreadhassam. . Miért akar sok programozó segíteni? Sok programozót találtam, akit "lázba hozott" a GNU, és segíteni akar. Sok

programozó nem örül a rendszerprogramok elüzletiesedésének. Ez lehetové teszi, hogy több pénzt keressenek, de azt is megkívánja, hogy a más programozókat riválisnak és ne kollégának tekintsenek. A programozók közötti alapveto baráti ténykedés a programok kölcsönös megosztása; a jelenlegi piaci szerzodések rendszerint megtiltják a programozóknak, hogy másokat barátnak tekintsenek. Aki szoftvert vesz, annak választania kell a barátság és törvény betartása között. Természetesen sokan úgy döntenek, hogy a barátság fontosabb De azok, akik hisznek a törvényben, kellemetlen helyzetbe kerülnek, bármit is választanak. Cinikussá válnak, és azt gondolják, hogy a programozás csupán a pénzkeresés egyik módja. Ha inkább a GNU-n dolgozunk és ezt használjuk szerzoi joggal védett programok helyett, barátiak lehetünk mindenkivel, és a törvényt is tiszteletben tartjuk. Továbbá, a GNU példaként szolgál és inspirál, jelkép

lesz, amely arra ösztökél, hogy újra egyek legyünk és megosszuk egymással, amink van. Ez a harmónia érzetét adja, ami lehetetlen, ha nem szabad szoftvert használunk. A programozók mintegy felének, akikkel idonként beszélgetek, ez a boldogság fontos, és pénzzel nem helyettesítheto. . Miért lesz ez minden felhasználónak jó? Ha a GNU elkészül, mindenki ugyanúgy kaphat majd jó rendszerszoftvert, mint levegot. Ez sokkal többet jelent annál, mint hogy mindenki megtakarítja egy UNIX-engedély árát. Ez azt jelenti, hogy a sok pazarló rendszerprogramozási erofeszítés, mellyel hasonló, de független megoldások készültek, elkerülheto lesz. Ezek az erofeszítések a programozási módszerek fejlesztésére szolgálnak majd. A rendszer összes eroforrásai mindenki számára elérhetok lesznek. Ennek eredményeképpen, ha a felhasználónak változtatásokra van szüksége, azt mindig szabadon megteheti saját maga, vagy megfizethet más "ráéro"

programozót vagy céget, hogy elvégezze neki azokat. A felhasználók nem lesznek kitéve az eroforrásokat birtokló és monopolhelyzetben lévo programozó vagy cég kényének-kedvének. Az iskolák egy sokkal inkább nevelo hatású környezetet biztosítanak majd, arra bátorítva a diákokat, hogy tanulmányozzák és fejlesszék a rendszerprogramokat. Másolási jogok A szabad szoftverek világában külön probléma a másolási jogok kérdése. Tegyük fel ugyanis, hogy valaki ír egy jó, használható programot, de nem éri meg neki a hivatalos terjesztéssel járó adminisztrációs, dokumentálási, tesztelési munkát elvégezni, ezért szabad szoftverként kibocsátja a programot az Interneten keresztül. Amíg a felhasználók használják a programot, esetleg tökéletesítik, és javaslatokat tesznek a szerzőnek, addig minden rendben van. A szerzők azonban biztosan nem szeretnék, ha programjaikra lecsapna egy szoftvercég, és beépítené saját termékei

közé, jelentős hasznot hajtva ezzel magának, amiből a szerző semmit se kap. Ilyen, és hasonló problémák kiküszöbölésére született a ``GNU General Public Licence (GPL) irat, amely magában foglalja a GNU cég szoftverforgalmazási filozófiáját is. Maga a GPL jogi precízséggel van megfogalmazva, így nem közölnénk itt le, hanem Richard M. Stallman bevezetőjét adjuk közre magyar fordításban. Ennél jobban nem sikerülne elmagyarázni, mi is az a szabad szoftver (freeware). A fordítás alapjául a 2.027-es Linux kernel ``COPYRIGHT fájlja szolgált Bevezető a GPL-hez Mindenkinek megengedett betű szerint másolni és terjeszteni ezt az engedélyezési dokumentumot, de megváltoztatni tilos. A legtöbb szoftver engedélyeit úgy tervezik, hogy elvegyék a terjesztési és módosítási szabadságodat. Ezzel ellentétben, a GNU Általános Publikus Engedély biztosítani szándékozik szabadságodat a szoftverek szabad megosztásában és változtatásában,

hogy biztosítsuk a szoftver szabadságát minden felhasználója számára. Ez az Általános Publikus Engedély érvényes a ``Free Software Foundation (Szabad Szoftver Alapítvány) legtöbb programjára, és azokra, amelyeknek szezője alkalmazni akarja. (Néhány más ``Free Softvare Foundation program a GNU Könytár Általános Publikus Engedély hatálya alá esik.) Alkalmazhatod a saját programodra is. Amikor szabad szoftverről beszélünk, a szabadságra hivatkozunk, nem az árra. A mi Általános Publikus Engedélyeinket úgy terveztük, hogy biztosítva legyen szabadságod a szabad szoftver másolatainak terjesztésére (és ezen szolgáltatásért járó díjazásra), hogy megkapod a forráskódot, ha akarod, hogy megváltoztathatod a szoftvert, vagy felhasználhatod részeit más szabad szoftverekben; és hogy tudd, hogy ezt megteheted. Azért, hogy megvédjük jogaidat, korlátozásokat kell bevezetnünk, amelyek mindenki másnak megtiltják, hogy megtagadja tőled

ezeket a jogokat, vagy megkérjen ezen jogok feladására. Ezek a korlátozások bizonyos felelősséggel járnak számodra, ha a szofver másolatait terjeszted, vagy módosítod. Például ha egy ilyen program másolatait terjeszted, akár pénzért, akár ingyen, ügyfeleidnek mindazokat a a jogokat meg kell adnod, amelyek neked megvannak. Biztosnak kell lenned abban, hogy ők is megkapják, vagy meg tudják szerezni a forráskódot. És ezeket közölnöd kell velük, hogy tudják jogaikat. Jogaidat két lépésben védjük: (1) copyright-ot adunk ki a szoftverre, és (2) felajánjluk neked ezt az engedélyt, amely valóban megengedi a szoftver másolását, terjesztését és/vagy módosítását. Minden szerző és a magunk védelmében meg szeretnénk bizonyosodni arról, hogy mindenki megértette, hogy nincs garancia erre a szabad szoftverre. Ha a szoftvert valaki más módosítja és továbbadja, minden ügyfelének tudni kell, hogy amit kaptak, az nem az eredeti, így a

mások által bevezetett problémák nem hatnak vissza az eredeti szerző megítélésére. Végül is, minden szabad program állandó fenyegetettségnek van kitéve a szoftverszabadalmak részéről. Ettől a veszélytől szeretnénk védekezni, úgy, hogy a szabad program terjesztői egyenként megkapják a szabadalmi engedélyeket, hogy a program szabadalma működhessen. Hogy ezt megvédjük, világossá tettük, hogy minden szabadalom vagy mindenki számára engedélyezett legyen, vagy senki számára sem. A Linux és a GNU kapcsolata Az előző fejezetekben ízelítőt adtunk a szabadterjesztésű programok világából. Maga ez a téma is megérne egy külön dolgozatot, de itt hely hiányában csak az alapgondolatokat ismertettük. Ebbe az alapfilozófiába illeszkedik bele a Linux rendszer is. Egyrészt, a Linux rendszermag (az első néhány verzió kivételével) a GPL hatálya alá esik, másrészt a Linux rendszerek alapprogramjai és a felhasználói programok jelentős

hányada a GNU project keretében készült, vagy írója a GPL-t alkalmazza. Bizonyos szempontból a Linux kiegészíti a GNU projectet. Mint fent olvashattuk, a GNU egy teljes rendszer szeretne lenni, de ezidáig még nem írtak rá egy megbízható rendszermagot. (Jelenleg a GNU rendszermag a 0.2-es verziónál tart, de ez még nem teljesen stabil változat) Linus Torvalds és társai viszont pont ezt tették meg, igaz, nem a GNU keretein belül. Nem látható pontosan előre, hogy hogyan alakul a jövő. Az is lehet, hogy a GNU rendszermag nem fog elkészülni, vagy legalábbis elterjedni, mert a Linuxot nehéz lesz túlszárnyalni. De az sem kizárható, hogy Richard Stallman egyszer csak mégis előáll a GNU kernellel, ami lesöpri a Linux-ot a színről. (Bár ezt kevéssé tartom valószínűnek) HUMOR A LINUXBAN A Linux köré egy nagy mozgalom alakult ki mára. Említettük a kb 200 programozót, aki a rendszermagot írta, a több ezret, aki a felhasználói programokat

készítették vagy adaptálták más gépről, és a milliókat, akik használják. Mivel a csatlakozás bármelyik szinthez önkéntes, nem kapcsolódnak hozzá anyagi érdekek, amelyek ellentétesek a rendszer írói és felhasználói közt, a Linux fejlesztése és terjesztése nagyon oldott hangulatban zajlik. Ez sokszor a programok dokumentációjában, vagy a hibaüzenetekben is jelentkezik, de még inkább a Linux-os levelezési listákon és hírcsoportokban. Pl. a régebbi kernelek egy része a rendszer indulásakor megvizsgálta a processzort, és ha olyan típusú volt, akkor kiírta: This processor honours the WP bit even in supervisor mode. Good! Ami magyarul: ``Ez a processzor tiszteletben tartja a WP bitet supervisor módban is. Jó! Egy ilyen üzenet nemigen fordulhatna elő egy ``komoly kereskedelmi szoftverben. Vagy pl. ha a tar programmal nem megfelelő formátumú fájlt akarunk kicsomagolni, akkor is speciális a hibaüzenet eleje: tar: Hmm, this doesnt look

like a tar archive. Azaz: ``Hmm, ez nem úgy néz ki, mint egy tar archívum. Maga Linus Torvalds is viccelődik programjával kapcsolatban. Egyszer megkérdezték tőle: -- Azon kívül, hogy a Linux egy cool név, meg tudná mondani, miért használjunk Linuxot BSD helyett? -- Nem, pont ez az. A cool név, az a lényeg Nagyon keményen dolgoztunk egy olyan néven, ami vonzerőt gyakorol az emberek többségére, és biztosan megérte: több ezer ember csak azért használ Linuxot, hogy az mondhassa: ``OS/2? Á! Nekem Linuxom van. Micsoda cool név! A 386BSD elkövette azt a hibát, hogy sok számot és hátborzongató rövidítést tett bele a névbe, ami sok embert elriasztott, csak azért, mert túl technikusan hangzik. Vagy máskor: Ha körbe akarod utazni a világot, és szeretnéd, hogy meghívjanak egy csomó helyre előadást tartanai: írj egy UNIX operációs rendszert. Egy nemzetközi Linux konferencián pedig ezt mondta: Mindnyájan tudjuk, hogy a Linux hatalmas . 5

másodperc alatt végrehajtja a végtelen ciklusokat is. Egy hibajelentésre válaszolva ezt írta: Idióta vagyok. Legalábbis ezen hiba megtalálása 5 percembe került Természetesen mások is tréfálkoznak a rendszerrel kapcsolatban. Mostanában azt kezdem hinni, hogy a Linux valóban a legjobb dolog a szeletelt kenyér óta. Linux felhasználónak lenni egy olyan életet jelent, mintha egy nagy, ácsokból és építészekből álló családdal laknál együtt. Minden reggel, amikor felkelsz, a ház egy kicsit megváltozott Lehet, hogy egy új torony épült, vagy néhány falat elmozdítottak. Vagy esetleg valaki ideiglenesen eltüntette a padlót az ágyad alól. (a Linux) . füstjeleken kívül mindennel képes kommunikálni Épp most játszottam le a kernelt a hangkártyámon és azt hittem, Isten szól hozzám. Egy hullámzó füstködön keresztül felnéztem, és elvakított egy fényes, fehér fény. Ez Isten Nem, nem Richard Stallman vagy Linus Torvalds, hanem Isten.

Zúgó hangon azt mondta: ``Ez egy jel Haszálj Linuxot, a 386-ra írt szabad UNIX rendszert. A Linux igenis felhasználó-barát. Nem tudatlan-barát és nem idióta-barát A Linux hívei sokszor viccelődnek a nagy szoftvercégekkel, különösen a Microsoft és Bill Gates a célpontjuk. Álljon itt néhány idézet erről a témáról: (Némelyik idézet csak eredetiben élvezhető. Ezeket nem fordítom le) Microsoft is not the answer. Microsoft is the question. NO (or Linux) is the answer. A legtöbb országban büntetik az ártalmas dolgok, mint pl. a kábítószer árusítását Akkor hogy lehet, hogy az emberek büntetlenül árulhatnak Microsoft szoftvereket? DOS: Egy kicsi, bosszantó boot-vírus, amely véletlenszerű, spontán rendszerleállásokat eredményez, rendszerint egy komoly munka elmentése előtt. Könnyen kezelhető UNIX-szal Lásd még MS-DOS, IBM-DOS, DR-DOS. Avoid the Gates of Hell. Use Linux A Linuxot külföldi terroristák írták, hogy az USA

vállalataitól, mint pl. a Microsoft, pénzt vegyenek el. Nem gondolom, hogy Bill Gates a Gonosz. Csak azt gyanítom, hogy ha a Microsoft valaha találkozik a Gonosszal, nem lesz szükség tolmácsra. ÖSSZEFOGLALÁS Egy olyan rendszer sikertörténetét követhettük itt nyomon, amely az átlagos számítógépfelhasználók számára (egyenlőre ?) ismeretlen. Egy hobbiprogramból 6 év alatt világméretű mozgalom vált, és ez talán egyedülálló a számítástechnika történetében. Mindez úgy történt, hogy a Linux rendszerhez lényegében ingyen juthat mindenki hozzá, így még hihetetlenebb a siker. Megvizsgálva a szabad szoftverek és gyártóik történetét, ez az egész mégis érthetővé válik. Több évtizede csiszolódtak a megszállott programozók szoftverei, ötletei, amire a Linux elkezdődött. Ezekbe a programokba mindenki azt adta bele, amihez a legjobban értett, nem pedig valami kívülről ráeröltetett feladaton dolgozott. A programok

tesztelése is igen széles körű volt Ezen kívül, a freeware-programok nem üzleti célból készültek, így alkotóik nem a maximális anyagi hasznot keresték, hanem maguk számára akartak használható rendszert összehozni, és villogni akartak a többiek előtt tudásukkal. Ez a légkör sokkal jobban kedvezett a hatékony, stabil programok kialakításának, mint a szoftverbirodalmak pénzorientált rendszere. Természetesen a szabad szoftverek sok szempontból mindig is hátrányban lesznek a ``gyári programokkal szemben. Ilyen szempontok pl a dokumentáltság, piackutatási adatok felhasználása, reklám, stb. Ezen jelenségek összességéből mégsem a szabad szoftverek kerülnek ki vesztesként, hanem bizonyos területeken (pl. a tudományos kutatásban) egyre nagyobb tért hódítanak A Linux esetében tehát egy jól eltalált rendszermag találkozott egy félig meglevő freewarerendszerrel, és ebből született az, amiről dolgozatom szól. Mindenképp érdemes

volt tehát a számítástechnika történetének ezen fejezetét megvizsgálni, mert -- bár a nagyközönség keveset tud róla -- világméretekben sem elhanyagolható jelentőségű rendszerről és mozgalomról van szó. APPENDIX • A Linux kernelek megjelenésének időpontjai • A Linux elterjedtsége • Források A Linux kernelek megjelenésének időpontjai Kiegészítő anyagként megadjuk a Linux kernelek megjelenési időpontjait. Ez tulajdonképpen az linux.kernelorg szerveren talált, a rendszermagokat tartalmazó könyvtár listája Mar Mar Mar Mar Mar Mar Apr Apr Apr Apr . 13 16 18 21 22 28 3 6 7 16 . Mar 7 Mar 17 Mar 27 Apr 2 1994 linux-1.0targz 1994 patch1.gz 1994 patch2.gz 1994 patch3.gz 1994 patch4.gz 1994 patch5.gz 1994 patch6.gz 1994 patch7.gz 1994 patch8.gz 1994 patch9.gz . 1995 1995 1995 1995 linux-1.20 linux-1.21 linux-1.22 linux-1.23 Apr Apr Apr Apr May Jun Jun Jun Jul Aug Jun Jul Jul Jul Jul Jul 6 12 23 29 3 1 12 26 25 2 9 3 5 6 8 10

1995 1995 1995 1995 1995 1995 1995 1995 1995 1995 1996 1996 1996 1996 1996 1996 linux-1.24 linux-1.25 linux-1.26 linux-1.27 linux-1.28 linux-1.29 linux-1.210 linux-1.211 linux-1.212 linux-1.213 linux-2.0 linux-2.01 linux-2.02 linux-2.03 linux-2.04 linux-2.05 Jul Jul Jul Jul Jul Aug Aug Aug Aug Aug Aug Sep Sep 12 15 25 26 27 5 9 16 20 25 31 2 5 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 linux-2.06 linux-2.07 linux-2.08 linux-2.09 linux-2.010 linux-2.011 linux-2.012 linux-2.013 linux-2.014 linux-2.015 linux-2.016 linux-2.017 linux-2.018 Sep Sep Sep Oct Oct Oct Nov Nov Dec Jan Feb Apr 11 13 20 8 18 30 8 22 1 14 7 8 1996 1996 1996 1996 1996 1996 1996 1996 1996 1997 1997 1997 linux-2.019 linux-2.020 linux-2.021 linux-2.022 linux-2.023 linux-2.024 linux-2.025 linux-2.026 linux-2.027 linux-2.028 linux-2.029 linux-2.030 Láthatjuk, hogy a fejlesztés időnként meggyorsul, majd esetleg hónapokat kell várni az új kernelre. Ennek ellenére a fejlesztés

állandóan folyik, és remélhetőleg folytatódni fog A LINUX ELTERJEDTSÉGE A Linux annyira szabad terjesztésű, hogy a felhasználójának még regisztráltatnia sem kell magát. Ez azt jelenti, hogy nem is lehet pontosan felmérni a Linuxos gépek és felhasználóik számát. Azért, hogy mégis lehessen valamit mondani, az Interneten egy ``Linux Registration Project-et indítottak be, ahova önkéntesen mindenki beírhatja Linux-os gépének, és saját magának adatait. A project honlapja megtalálható a http://counter.liorg:29659/ Web-címen Az itt felhalmozott információkból szeretnénk közreadni néhány érdekeset. Az összesítés: 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 lényeg tehát: 1997. július 21-én csaknem 50000 regisztrált Linux-felhasználó és kb 20000 Linux-os gép van szerte a világban. A Linux Counter gazdája a honlapon bővebben kifejtett indokok szerint a regisztráltakat a tényleges felhasználók 0.2-5%-ának gondolja, azaz a tényleges Linux-felhasználók száma kb. egy- és huszonnégymillió közt lehet Látható tehát, hogy pontos számadat nem adható, de az biztos, hogy több millió Linuxfelhasználó van a világon. Érdekes az országok szerinti eloszlás táblázata. (A rendezés az egymillió lakosra jutó Linux felhasználók száma szerint történt.) 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 2665 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 táblázat 130 országot tartalmaz, itt terjedelmi okokból csak az első 30-at közöltük.) Magyarország az utóbbi időkben előretör: az év elején még nem voltunk benn az első 30-ban, most meg

már 23-dikak vagyunk. Véleményem szerint ebben a CHIP-CD-ken megjelent RedHat Linuxnak fontos szerepe van. A Linux-os gépek felhasználási helyei: (néhányan több helyek is megjelöltek) 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% ============================== A Linuxos gépeken dolgozó felhasználók számáról készült az alábbi lista: accounts ======== 18012 reported 18012 values Average 36 Minimum 1 Maximum 3000 3318 18.42% accounts: 1-1 2968 16.48% accounts: 2-2 6898 38.30% accounts: 3-9 2983 16.56% accounts: 10-29 1078 5.98% accounts: 30-99 435 2.42% accounts: 100-299 227 1.26% accounts: 300-999 105 0.58% accounts:Others Tehát elég sok Linuxos gépen 3-9 felhasználó dolgozik, de 100 user is viszonylag sokszor előfordul. A felhasznált disztribúciók eloszlását adja meg a következő táblázat: (az áttekinthetőséget egy kicsit

megjavítottam) distribution ============ 19813 reported 19910 values 848 4.28% distribution:DIY 2084 10.52% distribution:Debian 1740 8.78% distribution:Red Hat 409 2.06% distribution:SLS 12805 64.63% distribution:Slackware 2023 10.21% distribution:Others Itt még az ősi Slackware az uralkodó, de ez lehet, hogy változni fog. A felhasználás célja is változatos: (természetesen itt is lehet egy gép több célra is bejegyezve) purpose ======= 4068 reported 6426 values 50 1.23% purpose:DNS 433 10.64% purpose:FTPServer 84 2.06% purpose:Mailserver 307 7.55% purpose:Router 694 17.06% purpose:Webserver 2356 57.92% purpose:Workstation 2430 59.73% purpose:Others A LINUX TULAJDONSÁGAI • multitasking: több program futhat egyszerre • multiuser: több ember használhat egy gépet (és semmi, csak két-emberre szóló licensz nincs!) • multiplatform: több különbözõ CPU-n fut, nem csak Intel-en. • a 386-oson (és újabb Intel processzorokon) védett módban fut •

multiprocesszoros: Intel és SPARC gépeken SMP-t (Symmetric MultiProcessing) támogat, a többi platformon még fejlesztés alatt van az SMP • a futó processzek között memóriavédelem van, azaz egy program nem ránthatja magával a rendszert • a futtatható programoknak csak azon részeit tölti be, amelyek éppen használva vannak • megosztott, írásnál másolás típusú memórialapokat használ. Ez annyit jelent, hogy ha egy program több példányban fut, akkor közös memóriát használ, ha megpróbál írni bele, akkor megkettõzõdik, átmásolodik a memórialap (4 kb). Ennek a gyakorlati haszna az, hogy kevesebb memóriát használ a program, és gyorsabb lesz. • virtuális memória, lapozással (nem teljes programokat ment ki/tölt be, csak azok részeit). A lapozás lemezre történik, partícióra, vagy file-ba, és a virtuális memória mérete menet közben is állítható. Egyszerre maximum 16 db max 128 Mb virtuális memóriaterület lehet

használatban. De ez az érték egyszerûen növelhetõ, pár sor megváltoztatásával a forrásban. • közös memória terület programok és lemez cache számára, így az éppen szabad memória cachelésre használható, és a cache mérete automatikusan csökken amikor a memóriára szükség van • dinamikusan linkelt, megosztott könyvtárak (DLL-ek), és természetesen statikusan linkelt könyvtárak is • core dump-okat gyárt, amivel egy program hibája, elszállásának az oka a futás után is analizálható • többnyire (és egyre jobban) kompatibilis a POSIX-al, System V-vel és a BSD-vel forrás szinten. • egy iBCS2-nek megfelelõ modul segítségével nagyrészt kompatibilis az SCO, SVR3 és SVR4-el, bináris szinten • minden forráskód hozzáférhetõ, az egész kernel és minden meghajtóprogram, a fejlesztõeszközök és a felhasználói programok forrása is, és ezek mind szabadon terjeszthetõek. Jelenleg sok kereskedelmi program van

Linux alá, ezek forrás nélkül jönnek, de minden, ami ingyenes volt, beleértve az operációs rendszer egész alapját, most is ingyenes. • POSIX szabvány szerinti job control • pszeudoterminálok (pty-ok) • 387-es koprocesszor emuláció a kernelben, így nem a programoknak kell emulálniuk az FPU-t. • sok nemzeti vagy személyreszabott billentyûkiosztást támogat, és elég könnyû újabb kiosztásokat definiálni • több virtuális konzol: több független login session van egy fizikai konzolon, ezek kötött gyorsan lehet billentyûkombinációkkal váltani. Ezek dinamikusan vannak allokálva, maximum 64 db lehet. • Több ismertebb file-rendszert támogat, ide tartozik a minix, Xenix és a System V filerendszerek, és ezen felül rendelkezik egy saját, fejlett filerendszerrel, ami 4 Terabyte-ig mûködik, 255 karakter hosszú filenevekkel. • Transzparens hozzáférés az MS-DOS (vagy OS/2 FAT) partíciókhoz egy speciális filerendszeren át:

nincs szükség semmilyen speciális parancsra az MS-DOS partició használatakor, úgy néz ki teljesen, mint egy Unixos filerendszer (természetesen a filenevek hossza, alakja, stb. kötött) A Linux a 20-s változattól támogatja a VFAT-ot is (Windows 95 filerendszere). A tömörített MS-DOS filerendszerek patch-ekkel elérhetõk • Egy speciális filerendszer, amit UMSDOSnak hívnak, arra való, hogy a Linuxot DOS FAT partícióra is lehessen telepíteni. • csak-olvasás szinten HPFS-2 filerendszert is támogat • HFS (Macintosh) filerendszer támogatása, külön modullal. • CD-ROM filerendszer, ami minden szabvány formátumú CD-ROM-ot olvas. (ISO9660, Rock Ridge 1991A kiterjesztésekkel is) • TCP/IP hálózatkezelés, ftp-vel, telnet-el, NFS-el, stb. • AppleTalk szerver • Netware kliens és szerver • Lan Manager (SMB) kliens, szerver (Window 3.11/95/NT) • Sok hálózati protokoll: az alap protokollok, amit a legújabb kernel ismer: TCP, IPv4,

IPv6 (Internet II), AX.25, X25, IPX, DDP (AppleTalk), NetBEUI, Netrom és még sok más. Stabil hálózati protokollok a TCP, IPv4, IPX, DDP és AX25 HARDVERIGÉNYEK Minimális konfiguráció Valószínûleg a legkisebb gép, amin a Linux fut a következõ: 386SX/16, 1 MB RAM, 1.44 MB or 1.2 MB floppy, bármilyen támogatott videokártya (+billentyûzet, monitor, etc) Ezen ugyan elindul a Linux, de még nem igazán használható. Ha csinálni is akarsz valamit vele, akkor kell legalább 5-10 mbyte hely a merevlemezen egy minimális telepítésre. De még ez se igazán használható a gyakorlatban Használható konfiguráció Ha számolásigényes programokat futtatsz, pl. gcc-t, X-et vagy TeX-et, akkor a 386SX/16-nál gyorsabb gép kell, de ha elég türelmes vagy, akkor még az is megfelelõ lehet. A gyakorlatban, ha nem használsz X-et, akkor legalább 4 Mb memóriára van szükséged, ha X-et használsz, akkor minimum 8 Mb-ra. Elvileg már 2 Mb-al is mûködik a rendszer, de

ekkor túlságosan lelassul, a viruális memória sûrû használata miatt. Ha sok programot futtatsz egyszerre, akkor legalább 16 Mbyte memória kell ahhoz, hogy ne swappoljon sokat. Ha azt akarod, hogy virtuális memóriába ne nagyon swappoljon a gép, akkor 32 Mbyte memória általában elég. Természetesen ha nagy memóriaigényû programokat futtatsz, akkor még több memóriára lehet szükséged. A rendszer merevlemez-helyigénye attól függ, hogy milyen programokat akarsz feltenni. Egy alapkészlet a Unix segéd-, adminisztrátori- és shell-programokból elfér 10 Mbyte-on. Egy teljesebb rendszerhez szerezzél be valamilyen disztribúciót, mint pl. a Red Hat, Debian, Slackware. Ekkor 60 és 300 Mbyte között változhat a hely szükséglet A mai árak mellett egy új géphez nem is érdemes 500 Mb alatti merevlemezt venni, de inkább vegyél 1Gb-nál nagyobb lemezt, nem fogod megbánni. A teljesítményt javíthatod ha több memóriát, több merevlemez-helyet, vagy

gyorsabb processzort használsz, amennyiben szükséged van rá. Itt a memória növelése -- a DOS-al ellentétben -- jelentõsen növelheti a teljesítményt. Támogatott hardver • CPU: Bármi lehet, ami 386-os védett módú programokat tud futtatni (minden 386-os, 486-os, 586-os, stb.) A 680x0 CPU-n (x=2 esetén csak MMU-val, x=3,4,6-on fut) is fut a Linux egyik változata, ez a tsx-11.mitedu-n található,a 680x0 könyvtár alatt. Jelenleg a Linux sok DEC Alpha alapú modellt támogat Ugyszintén sok SPARC modellen is futtatható a Linux. Az portolása folyik a PowerPC, ARM és MIPS gépekre. • Rendszer felépítése: ISA vagy EISA busszal rendelkezõ gépek. Az MCA (többnyire PS/2-es gépekben van ilyen) támogatás javul, de még nem teljes. Local buszok (VLB és PCI) teljesen támogatva vannak. A Linux jobban kihasználja a gépet, mint a DOS, Windows és mint a legtöbb operációs rendszer. Ez azt jelenti, hogy néhány gép, ami a mûködés/hiba határán áll,

és jól futtatja a kevésbé erõforrás-kihasználó operációs rendszereket hibálkat produkálhat a Linux futtatása közben. A Linux egy szuper memóriatesztelõ is egyben! -- A Linuxos hardver hibák egy nagy része a memória hibájára vezethetõ vissza! • Memória: Egészen 1Gb-ig Intel gépeken, 64-bites platformokon pedig több. Néhány ember (Linus is) megjegyezte, hogy ha memóriát adnak egy géphez, anélkül, hogy a cache-t is megnövelnék, az akár le is lassíthatja a gépet. Ha 64 Mb-nál több memóriát tesznek egy gépbe, akkor a Linux indításánál egy paraméterrel jelezni kell a memória tényleges méretét. Ez a BIOS hibája, nem számítottak arra, hogy egy gépben majd több mint 64 Mb memória is lehet. • Adattárolók: Mindenféle AT meghajtó (EIDE, IDE, 16 bites HD contollerek MFM, RLL vagy ESDI-vel) támogatva van, továbbá SCSI merevlemezek, CD-ROM-ok, amennyiben a SCSI adaptere támogatva van. XT controllerek is támogatva vannak

(8 bites adapterek MFM vagy RLL-el). A támogatott SCSI adapterek: Advansys, Adaptec 1542, 1522, 1740, 27xx, and 29xx (néhány kivétellel) sorozatok, Buslogic MultiMaster controllerek NCR53c810-alapú vezérlõk, DPT vezérlõk, Qlogic ISP és FAS vezérlõk, Seagate ST-01 és ST-02, Future Domain TMC-88x sorozat (vagy bármilyen or any TMC950 chip alapú vezérlõ) és TMC1660/1680, Ultrastor 14F, 24F és 34F, Western Digital wd7000, és mások. SCSI, QIC-02, és néhány QIC-80 szalagos egységet is támogat a Linux. A támogatott CD-ROM ok között szerepel a Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, ATAPI (EIDE), SCSI, stb. A pontos modellekhez nézd meg a hardware compatibility HOWTO-t • Video: VGA, EGA, CGA, vagy Hercules (és kompatibilis modellek) szöveges módban. A grafikus módhoz, és az X-hez támogatás van legalább normális, szabvány VGA szinten, de a legtöbb super-VGA kártya is támogatva van már (többek között az ET3000, ET4000,

Paradise, Trident, S3, 8514/A, ATI MACH8/32/64, and hercules alapú/kompatibilis kártyák. (A Linux az Xfree86 X szervert használja, igazából az adja meg, hogy milyen kártyákat támogat.) A támogatott kártyák teljes listája több oldalnyi. • Hálózat: Az ethernet támogatás magában foglalja a 3COM 503/509/579/589 (501/505/507 nem ajánlott, de támogatott), AT&T GIS (nei NCR) WaveLAN, legtöbb WD8390-alapú kártyát, legtöbb WD80x3-alapú kártyát, NE1000/2000 és klónjaikat, AC3200, Apricot 82596, AT1700, ATP, DE425/434/435/500, D-Link DE-600/620, DEPCA, DE100/101, DE200/201/202 Turbo, DE210, DE422, Cabletron E2100 (nem ajánlott), Intel EtherExpress (nem ajánlott), DEC EtherWORKS 3, HP LAN, HP PCLAN/plus, a legtöbbAMD LANCE-alapú kártyátcards, NI5210, ni6510, SMC Ultra, DEC 21040 (tulip), Zenith Z-Note ethernet. Semmilyen Zircom kártya és az E2100-tól különbözõ Cabletron kártya nincs támogatva, a gyártó azon döntése miatt, hogy nem hajlandó

a programozási információit ingyenesen elérhetõvé tenni. Az FDDI támogatás a DEC DEFxx kártyáit foglalja magába. Pont-pont közti hálózat támogatása tartalmazza a PPP, SLIP, CSLIP és PLIP-et. • Soros: A legtöbb 16450 és 16550 UART alapú kártyák támogatva vannak, beleértve az AST Fourport és Usenet Serial Card II-t, és továbbiakat. Az intelligens soros kártyák közül támogatva van a Cyclades Cyclom sorozata (a gyártó támogatja), Comtrol Rocketport sorozat (gyártó támogatja), Stallion (többnyire, gyártó támogatja), és Digi (néhány kártya, nem gyártó által támogatott). Néhány ISDN, frame relay, és bérelt-vonali hardver is támogatva van. • Egyéb hardver: SoundBlaster, ProAudio Spectrum 16, Gravis UltraSound, és a legtöbb hangkártya, legtöbb (minden?) busz-egér típus (Microsoft, Logitech, PS/2), stb. A LINUX ÉS A WINDOWS-NT ÖSSZEHASONLÍTÁSA, FEJLESZTŐI SZEMMEL Én Linuxot és Window NT-t használok, ugyanazon a

gépen. A tapasztalataim: (+: pozitív, -:negatív, -+:közepes) Linux ++ + Windows NT ingyenes integrált hálózati szerver és kliens a szerverre nincs korlátozva a felhasználók +++ száma + jelentõs támogatás az Interneten lehet, hogy nehéz találni egy kész termék minõségû bombabiztos rendszert, keresni kell a legjobbat (Szerintem nem nehéz - J0) Nincs egy fõ támogató (De pl. Caldera, Red Hat ad támogatást) + --- drága a szerver sokba kerül - minden kliens plusz pénzbe kerül + M$ professzionális támogatás A M$ szokása a pre-Alpha verzióit nyilvánosságra hozni (I/O Bug a 4.0-ban) A sok pénzt kifizetõ ügyfeleiket alpha/beta tesztereknek nézik. -+ nagyon drága a professzionális szintû támogatás - + több szoftver, 16-bites Windowsos programokat tud futtatni, de kevés a natív NT-s program (növekszik) kevés szoftver (gyorsan növekszik) --- Ingyenes Windows-emulátor még fejlesztés alatt. +++ a windows programokat futtatja +A

Sun WABI-ja (Win. Emulátor) megvehetõ a Calderától. nem olyan stabil mint az elvárható lenne +++ nagyon stabil (megfelelõ kernellel) (És a rosszul megírt eszköz-meghajtók.) Az NT 4.0 File Szervere csak néhány fix és service pack +++ stabil szerver rész segítségével menthetõ meg a nagy file-ok okozta összeomlástól. mivel általában közepes hardverrel Az NT az egy igazi memória és erõforrás pocsékoló ++ rendelkezõ egyetemisták fejlesztik, a kód --rendszer kicsi és hatékony sok hardvert támogat, de csak kevés csúcsjobb a helyzet, de nem igazán jó, sok meghajtó csak beta -+ típust állapotban van moduláris kernel integrált kernel ++ hálózati támogatás integrálva -a hálózati rész hozzáadott a forráskód hozzáférhetõ, általában a ++ -nem hozzáférhetõ a forráskód rendszerrel együtt jön a fejlesztõi környezet az operációs rendszer ++ -nincs fejlesztõi környezet része kevés nyomtatott dokumentáció (kinyomtatható), az

elektronikus + teljesen dokumentált dokumentáció amúgy teljes nem felel meg a POSIX ill. X/Open szabványoknak POSIX és X/Open szabványoknak + Az MS NT special ugyan POSIX.1 hitelesített, de ez -megfelelõ (pl. Lasermoon Disztribúció) valójában nem ér sokat A legtöbb forrásprogram változtatások nélkül lefordítható más Unix platformokon is. + --Nehéz nem-Intel platformon futó programokat szerezni Nagyobb számítási kapacitásra lenne szükséged? Csak fordítsd le a programot egy nagyobb teljesítményû Unix gépen. Támogatott platformok: Intel, Sparc, Alpha, +++ Intel, Alpha és MIPS platformokra korlátozott MIPS, PowerPC, Motorola 68k +++ nagyon jó hibakeresési lehetõségek egyedi optimalizáció (Pentiummal bezárólag) Szimmetrikus Multiprocessing +++ 16 Pentium Pro-ig, az SMP-re váltás megoldható a rendszer újrainstallása nélkül Szoftveres RAID-0 és RAID-1 +++ (Mivel Disk Striping-ot használ, a RAID-0 jelentõsen gyorsítja a diszk

elérést) sok nagybiztonságú és stabil rendszer +++ mûködik Linux-szal egyetemeken és ISPknél (Internet szolgáltatóknál) +++ --- nagyon rossz hibakeresési lehetõségek, néha egy második NT-s gépre is szükség lehet + Pentiumra optimalizált + Szimmetrikus Multiprocessing lehetséges --- A RAID-megoldások csak külön kaphatóak - Nem tudok egyetlen internet-szolgáltatóról se, aki NT-t használna A mûködéssel kapcsolatos jellemzõk: nagyon jó és stabil task-kezelés, szinte lehetetlen +++ egy Linux rendszert szoftverbõl összeomlasztani + (Mûködõ hardver ajánlott!) legrosszabb task-kezelés, amit valaha láttam, egyetlen rosszul megírt program magával ránthatja ---az egész rendszert. (GUI messagequeue-bug, jól ismert) nagyon nagya a hibatûrése, ha nem a root +++ disk/partíció sérült meg, akkor a legtöbb + hardverhiba következtében nem áll le a szerver --- A Linux minden szempontból távolról +++ konfigurálható nincs

lehetõség az összes beállítás távoli adminisztrálására. ha valamilyen hiba adódik, meg ----kell látogatni a szervert, és néha csak a reset gomb segít minden szolgáltatás menet közben elindítható és leállítható. Több hálózati interfészt használva lehetséges menetközben átállni a másodlagosra, ha +++ egy hardverhiba miatt erre szükség van. Ilyenkor nem kell újraindítani a gépet, így hamarabb újra mûködõképes lesz a rendszer. Samba file/nyomtatómegosztás szolgáltatása 20%+++ kal gyorsabb Linuxon, mint NT-n NT, Win95 és + Lan Manager kliensek kiszolgálásában (azonos hardveren) a legtöbb Linuxos hálózati szolgáltatás gyorsabb, +++ mint NT-s megfelelõje sok hiba összeomlasztja/leállítja a szervert Szinte mindig újra kell indítani a rendszert. Megváltoztattál valamit a hálózati beállításokban, a ----route-olásban? "Újraindítás ajánlott" - rossz/lassú hálózati teljesítmény +++ a modem megosztható

--- +++ ingyenes uucp szerver/kliens ppp, sh, uucp, fax ugyanazon a kommunikációs +++ porton +++ ip aliasing +++ ip tunneling/masquerading --- A Windows Mailexchanger-rõl ugyanez nem mondható el, sok levéltovábbítási problémája van, plusz pénzbe kerül a sendmail további kiadás nincsenek, a mapi.dll nem ismeri az SMTP-t további kiadás további kiadás további kiadás további kiadás RAS használata esetén a többi szolgáltatás nem használhatja a modemet ? --- ? ----- ? ? +++ szabvány Mailer (levéltovábbító) daemonok --- +++ +++ +++ +++ +++ +++ ------------- ingyenes sendmail további levélkezelõ segédprogramok nagyon jó, ingyenes Web-szerver nagyon jó, ingyenes ftp szerver nagyon jó, ingyenes adatbázis-szerver fax-szerver +++ Szabványos NFS-szerver +++ NIS szerver X11R6, hálózatra felkészített GUI +++ (Távoli gépen futó programok megjelenítése.) +++ jól dokumentált biztonságilag gyenge pontok, mindegyik kivédhetõ ---

Egyáltalán nincs C2-es biztonsági bizonyítványa. Senki se fizetett érte. ----- további kiadás ? A Windows GUI nem hálózatorientált --(sok pénzért beszerezhetõ kiegészítés) nem túl jól dokumentált biztonsági lyukak, nem eléggé vizsgált biztonság, biztonsági rés esetén a javításra a következõ Service Pack-ig várni kell, addig pedig csak imádkozni lehet. C2 biztonsági szintre hitelesített, HA a gép nem +++ tartalmaz floppy-meghajtót, és nincs hálózatba kapcsolva Általánosságban önnek kell döntenie. Én személy szerint fejlesztésre a Linuxot preferálom, mivel • alacsonyak a hardverköltségek, • jók a nyomkövetési lehetõségek, • lehetõségem van akár igazi szuperszámítógpeket is felhasználni a programjaim futtatásához. (Az NT az nem UNIX) • Szeretem a Linux azon lehetõségét, hogy váltogathatok a virtuális konzolok között, miközben X11 grafikus felületet vagy több különbözõ nyomkövetési

képernyõt használok. • A Linux mindig válaszképes marad, míg az NT sokszor nem. • Sosem találkoztam a Linux részérõl olyan állapottal, amelybõl lehetetlen lett volna továbblépni. Bármikor, amikor hozzá akartam férni a gépemhez, ez akadánytalanul ment, általában anélkül, hogy fizikailag is a gépemhez kellett volna nyúlnom. MIT TUD A LINUX? Áttekintve a Linux támogat: • ISDN • SCSI egységeket • Hangkártyákat (pl. Sb, Gravis) • Hálózati kártyákat (pl. Arcnet, Ethernet, Token ring-es kártyát) • stb. A Linux ismeri a következõ filerendszereket: • Minix • Extended • Ext2fs • xiafs • MSDOS FAT • Windows95 VFAT (hosszú filenevekkel) • NFS (Unixos Network File System) • SMB (Windowsos hálózati FS) • NCP (Novell NetWare hálózati protokoll) • ISO9660 (CDROM) • OS/2 HPFS (csak olvasás) • Sytem V és Coherent • Amiga FFS (Fast File System) • UFS (BSD és leszármazott

rendszerei, csak olvasás) • Macintosh HFS* (automatikusan pl. CD-ROM-ra is) • NTFS* (Windows NT, csak olvasás) • stb. Hálózati kártyából nagyon sokfélét ismer, ezeket nem sorolom fel. Az egyik legelterjedtebb kártyát, az NE2000-et (és kompatibilis kártyáit) biztosan kezeli, és automatikusan fel is tudja ismerni a címet és az IRQ-t. Hálózati protokollok közül: • TCP/IP, Firewalling, Masquerading, IP accounting,. • IPX (Novell) • Appletalk DDP • Rádióamatõr AX.25 level 2 • PPP/SLIP, pl. Internetezéshez telefonon át • Frame Relay • stb. Hangkártyák közül: • Sound Blaster (SB, SBPro, SB16, clones) • ProAudioSpectrum 16 support • Generic OPL2/OPL3 FM synthesizer • Gravis Ultrasound (*) (GUS Classic, Max, PnP, Ace) • MPU-401 • PSS (ECHO-ADI2111) • Microsoft Sound System • Ensoniq SoundScape • MediaTrix AudioTrix Pro • MAD16 and/or Mozart based cards • Crystal CS4232 based

(PnP) • Turtle Beach Wave Front (Maui, Tropez) • SB AWE 32* • stb. * külön driverrel, külön beszerezhetõ patch-el A Linux konkrét felhasználási területei lehetnek: • • Kiszolgálóként: • Router • Macintosh file és nyomtató szerver • Windows 3.1/311/95/NT SMB file szerver, nyomtató szerver • SQL adatbázis-szerver • Domain Name szerver • HTTP/WWW szerver • E-mail szerver, IMAP/POP3-al • News szerver • IRC szerver • Novell szerver (emulálva) • FTP szerver • Fax szerver • PPP/SLIP dial-up kapcsolatokra szerver Felhasználóként például a következõkre használható (de ez kombinálható a kiszolgálással, természetesen): • Rajzolás, retusálás • • GIMP, CorelDraw, StarOffice, ApplixWare Internetezés otthonról • Netscape, levelezõ programok (PINE, XF-mail, etc), IRC (Zircon, IRCII, etc), telnet, ftp-zés • Programozás • Mindenféle (C/C++, Pascal, Fortran, Modula,

JAVA, etc), grafikus felület alá (X11) is • Irodai alkalmazás (itt se túl erõs egyenlõre még) • • Játék (ebbõl kevés van, de pl.) • • StarOffice, WordPerfect, ApplixWare Quake, Doom, Abuse, LinCity, etc. Emulációk: • DOS, Window emulátor, Macintosh, Commodore 64, VIC, etc. A LINUX TELEPÍTÉSE Az elôadás a népszerű UNIX klón, a POSIX szabványnak is megfelelô Linux operációs rendszer PC kategóriájú gépekre való telepítésével foglalkozik. A telepítés lépéseit a Slackware Kit alapján tárgyalja. Az elôadás terjedelmi korlátai miatt nem tekinthetô teljes értékű útmutatónak Az elsô UNIX-tól a Linuxig Az elsô UNIX tulajdonképpen mellékterméke volt egy reménytelenül elbonyolódott operációsrendszer-fejlesztési projektnek, a MULTICS-nak. A fejlesztésbôl kiszállt AT&T két elvetemült programozója, Ken Thomson és Dennis Ritchie azonban "unalomból" mégiscsak megírtak egy operációs rendszert

a megszerzett tapasztalatok alapján PDP-7-re, 1969-ben. A teljes kód még 1971-ben, amikor egy PDP-11-re telepítették át, sem volt 16 kilobyte-nál több, de teljesen assemblyben íródott. Áttenni más gépre a teljes újrakódolással volt egyenértékű Ez azonban akkoriban természetesnek tűnt. Dennis Ritchie kidolgozott egy "magas szintű assemblyt", arra a célra, hogy hatékony, hardverközeli, ugyanakkor hordozható programok legyenek készíthetôk. Ez a C nyelv 1973-ra a UNIX kernel mindazon részét, amit egyáltalán lehetséges volt, átírták C-be. Ettôl kezdve a rendszer bármilyen hardverre telepíthetô volt, amely bizonyos alapfeltételeknek megfelelt. Megkezdôdött az elterjedése, amit az is segített, hogy az AT&T ingyen bocsátotta az egyetemek rendelkezésére a forráskódot. A telepítés ekkoriban a következô procedúrát jelentette: 1. A forráskód beszerzése (lehetôleg lyukszalagon, mágnesszalagon, hogy ne kelljen sokat

gépelni). 2. Ha a gép nem binárisan kompatibilis a forrás gépével, akkor a kernel gépi kódú részének újraírása (de ez még mindig jobb, mintha az egészet kellene). 3. C fordító beszerzése és beüzemelése (ha végképp nem létezett ilyen, lehetôség volt egy mini C írására, ami a "nagy" C fordítót létrehozta, hiszen az is megvolt C forrásban). 4. A UNIX fordítása 5. Beüzemelés Mivel a kód forrásnyelven terjedt, boldog-boldogtalan belejavított, így aztán UNIX nincs, csak UNIX-ok. Az elkésett egységesítés a mai napig tart Ilyen klón volt a Minix is, amelyet Tannenbaum "Modern Operating Systems" c. könyvében ismertetett. Lényegében Linus Torvalds, a Linux "atyja" is erre alapozta saját változatát, amelyet diplomamunkaként dolgozott ki PC-re. Az alaprendszer lényegében teljesítette mindazt a feltételt, amit egy operációs rendszertôl elvárhatunk, volt hozzá egy shell és egy C fordító, de ezen

kívül semmi. Miközben Finnországban volt egy UNIX kompatibilis rendszer programok nélkül, addig a GNU projektnek volt egy halom programja oprendszer nélkül. A GNU (GNU is not UNIX) célja az akkor igen költséges kereskedelmi UNIX-ok és UNIX programok kiváltása szabadon felhasználható és ugyanakkor teljes értékű programokkal. A Linux és a GNU szerencsére egymásra talált. A PC-s UNIX klón támogatása szokatlanul nagy, így ma már tulajdonképpen bárki hozzájuthat egy teljes értékű, megbízható és nagy teljesítményű operációs rendszerhez -szinte ingyen. A telepítés pedig, ha nem is "plug and play", de jelentôsen egyszerűbb a fent felvázolthoz képest. A program szinte kézenfogva vezet végig rajta, ám elindításáig van némi teendônk. Követelmények a hardverrel szemben A Linux elôtt is léteztek UNIX kompatibilis rendszerek PC-re, ezek közül a 286-os processzorra írt Coherent számít ismertnek, illetve a Xenix. A Linux

386-os processzorra lett kifejlesztve, ennél gyengébb processzorral nem ért szó -- de ez ma, a Pentiumok idején nem korlát. A Linux telepítéséhez az alábbi hardver minimum szükséges: • 386-ossal kompatibilis processzor (386SX-tôl Pentiumig bármi); • 4M RAM + 16M swap (ajánlott 8M, grafikához 16M és a swap is növelhetô); • 20M merevlemezterület a minimális rendszerhez, 80-100M egy átlagoshoz és több, mint 150M egy teljeshez (és ez még csak az operációs rendszer és környéke, nem az alkalmazások.); • bármilyen videokártya, de (a grafika miatt) ajánlott a VGA; • 1.44-es vagy 12-es floppy drive Elôkészületek 0. lépés: Megválaszolandó kérdések • Honnan és milyen formában jutunk hozzá a Linuxhoz? (floppy, merevlemez, CD-ROM, hálózat) • Hova tesszük a gépünkön? (saját merevlemez, saját partíció(k), DOS társbérlet) 1. lépés: A Linux megszerzése A Linux beszerezhetô és telepíthetô • floppykról

(vagy merevlemezrôl); • CD-ROM-ról; • hálózatról; Lényegében minden típus a floppyra vezethetô vissza. Az elsô két esetben a média a birtokunkban van, az utolsó esetben csupán a cím, de ez is elég. A telepítés CD-ROM-ról a legkényelmesebb és leginkább problémamentes. A floppyval sokat kell vacakolni, ha pedig merevlemezen kapjuk vagy oda másoljuk telepítés elôtt (floppykról, CD-ROM-ról, vagy hálózatról), az sok helyet igényel és egy kicsit veszélyes is, ha ugyanazon a merevlemezen lesz majd a Linux is. Maga a telepítôkészlet úgy van szétbontva, hogy floppykon is terjeszthetô legyen. 2. lépés: Backup a jelenlegi rendszerrôl A telepítés során több alkalommal is lehetôségünk van végzetes hibát elkövetni. Tehát biztos, ami biztos, ha egyáltalán van mirôl, készítsünk biztonsági másolatot! 3. lépés: Helyet a Linuxnak! Bár élhet a Linux a DOS mellett társbérletben is ugyanazon a partíción, mégis célszerűbb

számára saját partíciót biztosítani. Üres merevlemezen ez nem gond, de már munka alá vett merevlemezen újrafelosztást kell végezni. Vagy lementjük az eredeti tartalmat (lásd az elôzô lépést) és újra felosztjuk az egész lemezt, vagy lecsípünk a DOS-ból egy megfelelô méretű darabot. Ez legalább 100M legyen, ha dolgozni is akarunk a rendszerrel A lecsípést a FIPS névre hallgató program oldja meg, de elôtte defragmentálni kell a DOS partíciót. A Linuxnak fenntartott helyet egyelôre üresen hagyjuk. 4. lépés: Boot és root lemez készítése Most válik lényegessé, honnan telepítjük majd a rendszert, mert ennek alapján választjuk ki a készletbôl, milyen boot és root lemezt fogunk használni. Boot lemez: • floppy és merevlemez esetén gyakorlatilag mindegy; • CD-ROM esetén a meghajtó típusának megfelelô (mitsumi, sony, stb.); • hálózat esetén a net boot lemez szükséges. Root lemez: • VGA kártya esetén color144 vagy

color12; • más esetben tty144 vagy tty12. A lemezeket a fenti nevű imagefile-okból készítjük el -- ezek lényegében az adott floppy bináris tükörképei egy állományban. Ezt egy speciális íróprogrammal tesszük át a floppyra, ez a RAWRITE. Használata: RAWRITE imagefile drive: Ezt a programot és az imagefile-okat vagy a floppyról, CD-ROM-ról írjuk fel, vagy ftp-vel lehozzuk hálózatról. Miután ezzel megvagyunk, a munka DOS részét befejeztük, a telepítésre felkészültünk. 5. lépés: Reboot Behelyezzük a boot lemezt és CTRL-ALT-DEL. Ha hálózatról telepítünk, akkor figyelni kell arra is, hogy a forráskönyvtár elérhetô legyen, illetve a gépünknek legyen érvényes (állandó vagy ideiglenes) IP száma. Telepítés lépésrôl lépésre Az újraindulás során egy, a telepítéshez idomított nagyon szegényes, ám működô Linux töltôdik be. Miután a boot lemez olvasása befejezôdött, lemezt cserélünk és egy, a RAM-ban

létrehozott virtuális meghajtóra betöltôdik a root lemez is. Ha nincs elég RAM-unk ehhez (4M alatt), de van két meghajtónk, úgy az egyikben marad a boot lemez, a másikban a root lemez és így is nekivághatunk. A root lemez olvasásának befejezte után a rendszer elindul, hardver ellenôrzést hajt létre és végül, ha minden rendben van, kiírja: login. Ide rootként jelentkezünk be és nincs password. Kezdhetjük a telepítést! 1. lépés: A filesystem elkészítése Az üres partíciót az fdisk programmal vehetjük "művelés" alá. Általában két partíciót készítünk, egyet magának a Linuxnak és egyet a swapnak. Nagy merevlemez esetén a Linux partíciót feloszthatjuk rendszerre és az alkalmazásokra. A Linux számára a "Linux native", a swapnak a "Linux swap" típust válasszuk. A swap filerendszerét az mkswap készíti el, majd ezt a swapon program be is kapcsolja. Ha kevés a RAM-unk (4M még kevés), akkor enélkül nem

is tudunk továbblépni. 2. lépés: A Setup indítása A setup program elindításával megkezdjük a tényleges telepítést. A menü használata kényelmes, innen kezdve tulajdonképpen pusztán türelemre van szükségünk -- elég sokáig tart ugyanis. Meg kell határoznunk a forrás fajtáját (floppy, merevlemez, CD-ROM, hálózat) és a forrás helyét (meghajtó jele, könyvtár neve, IP számok). Hálózat esetén megadandó a forrás IP száma, az IP maszk, a router IP száma és a saját IP szám. A távoli könyvtár bemountolódik erre az idôre Meg kell adni a telepítés helyét -- ez az a partíció lesz, amit elôkészítettünk az fdisk-kel. 3. lépés: Telepítés Ha minden kész, megindul a Linux feltelepítése. A telepítés során elôször ki kell választanunk, mely csomagokra tartunk igényt. Ezek: • [A] alaprendszer • [AP] "népszerű" kiegészítések • [D] fejlesztôi csomag (C/C++) • [E] EMACS • [F] FAQ • [I] GNU

infók • [N] hálózati csomag • [OOP] Objektum orientált nyelvek (de nem C++) • [Q] fejlesztés alatt álló és speciális kernelek • [TCL] TCL/TK • [Y] játékok • [X] Xwindow alaprendszer • [XAP] X alkalmazások • [XD] X fejlesztôi csomag • [XV] XView és OpenLook • [IV] InterView • [T] TeX Dôlt betűvel a mindenképpen szükséges csomagok vannak jelölve, de ebbôl az X valójában kihagyható, viszont a hálózathoz az [N] és [Q] is kell, utóbbi egyes speciális hardeverekhez is. A telepítés során a program négy kategóriába sorolja a csomagon belüli részeket. • Required Erre a gép rá se kérdez, ez kötelezôen felkerül. • Recommanded Ezt ki lehet hagyni, de ajánlott. Ez többnyire igaz, de pl X alatt az összes videokártya támogatás ilyen, holott csak a sajátunknak megfelelôt kell felraknunk. • Optional Ha akarjuk feltesszük, ha akarjuk nem. • Unknown Errôl a csomag összeállítói se tudták,

mi. ;-) 4. lépés: Egyéb beállítások A csomagok felkerülése után még néhány dolgot be kell állítanunk: • gépünk neve és IP száma (van default, ha nem vagyunk a hálózaton); • soros port, egér, nyomtató, idôzóna, stb. • a LILO (Linux Loader) beállítása -- ez hozza be majd az oprendszert; • DOS és más partíciók bekapcsolása -- írhatjuk és olvashatjuk; • boot (szervíz) lemez készítése. Ezzel a setup futása befejezôdik. Ha minden rendben, adjuk ki a reboot utasítást és szedjük ki a root lemezt (valamint Linux alatt szokjunk le a Reset gomb használatáról). Utómunkálatok Ha rendben bejött a rendszer, akkor hurrá! Van egy működôképes UNIX-unk! Kezdhetjük az utómunkálatokat -- ez aztán a végtelenségig tart. Lényegében itt arról van szó, hogy a már működô rendszert bôvíthetjük és módosíthatjuk. Ezek egy része inkább a kezdeti idôkre szól (X belövése, userek felvétele, serverprogramok pl.

httpd telepítése), mások állandó munkát adnak (további userek), vagy igazán nagy buherálás eredményei (kernel újrafordítása, összedôlt rendszer reparálása ;-)). Az X belövésérôl röviden néhány szó: alapvetôen az XF86Config állományt kell javítgatnunk. Találunk egy példát XF86Config.eg néven, valamint elég sok leírást a doc könyvtárban -- angol nyelven. A megfelelônek vélt beállítást az xinit programmal tesztelhetjük, illetve a vgaset programmal finomhangolhatjuk. A LINUX KERNEL 1. Bevezetés Neked szól ez a doukumentum? Igen, ha illik rád a következõk valamelyike: • ``Grrr! Ennek a wizzo-46.56 programcsomagnak az 18193-as kernel verzió kell, nekem meg még mindig csak 1.09-es van!" • Az újabb kernelek egyikében van egy olyan eszközmeghajtó, amelyre égetõen szükséged van. • Tényleg fogalmad sincs arról, hogy hogyan kell kernelt fordítani. • ``Tényleg csak annyi az egész, amit a README-ben írnak? •

Jöttél, láttál, nem sikerült. • Mutatnod kell valamit azoknak, akik ragaszkodnak hozzá, hogy Te installálj nekik kernelt. A példák feltételezik hogy van a gépeden GNU tar, find, és xargs. Ezek eléggé szabványosak; ez nem okozhat problémát. Továbbá feltételezem, hogy ismered a géped fájlrendszerének felépítését; ha nem, akkor nagyon fontos, hogy legyen egy másolatod a mount parancs normál mûködés melletti outputjáról (vagy az /etc/fstab tartalma, ha el tudod olvasni). Ez az információ fontos, és csak akkor változik meg, ha újraparticionálják a merevlemezt, installálnak egy újat, újratelepítik a rendszert vagy valami hasonló. Az aktuális ``stabil kernel verzió a dokumentum megírásnak idején a 2.030 volt, tehát a hivatkozások és példák erre a verzióra vonatkoznak. Bár megpróbáltam annyira verziófüggetlen lenni, amennyire lehetséges, a kernel állandóan fejlesztés alatt áll, így minden újabb verzióban

elkerülhetetlenül lesznek bizonyos különbségek. Ez sem okozhat nagy problémákat A linux kernel forrásnak két változata van: ``stabil és ``fejlesztõi. A stabil verziók az 10x -tõl kezdõdtek és páros számot viselnek. Tehát az 10x, az 12x és a 20x is stabil Ezeket tartják a legstabilabb, legkevésbé hibás kernelnek a kibocsátás idején. A fejlesztõi kernelek (11x, 13x, 2.1x, stb) tesztelésre valók és olyanoknak szánják, akik hajlandóak új és esetleg sok hibával teli kerneleket kipróbálni. Ne mond, hogy nem szóltam 1.2 A stílusról Az a szöveg ami így néz ki, az vagy olyasmi ami megjelenik a képernyõn, vagy amit közvetlenül be kell gépelni, mint például egy parancs, vagy egy parancs opciói, vagy egy fájlnév. (A sima szöveges változatban nem látszik semmi különbség) A parancsok álltalában ` jelek között vannak. 2. FONTOS KÉRDÉSEK ÉS VÁLASZOK 2.1 Egyáltalán mit csinál a kernel? A Unix kernel a közvetítõ a programok és

a hardver között. Menedzseli a memóriát az összes futó program (processz) számára és biztosítja, hogy mind egyenlõen (vagy egyenlõtlenül, ha úgy tetszik) részesüljenek a processzor ciklusaiból. Továbbá egy kényelmes, hordozható felületet nyûjt a programoknak, amelyen át kommunikálhatnak a hardverrel. Ennél persze jóval több szót érdemelne a kernel mûködése, de ezeket az alapvetõ funkciókat a legfontosabb ismerni. 2.2 Miért kell frissíteni a kernelt? Az újabb kernelek általában többféle hardverrel tudnak együttmûködni mint a régebbiek (azaz több eszközmeghajtójuk van). Lehet hogy az új kernelnek jobb a processz-kezelése, gyorsabb vagy stabilabb mint a régi verzió, és már ki van benne javítva az elõzõ ismert hibája. A legtöbben az eszközmeghajtók és a kijavított hibák miatt frissítenek kernelt. 2.3 Milyen hardvert támogatnak az újabb kernelek? Lásd a Hardware-HOWTO-t. Továbbá megnézheted a `config fájlt a linux

forrásában, vagy kiderül, ha kiadod a `make config, a `make menuconfig vagy a `make xconfig parancsot. Ez megmutatja az összes hardvert amit a szabványos kernel csomag támogat, de nem mindent amit a linux támogat. Sok elterjedt eszközmeghajtó (mint például a PCMCIA kártyák és némely szalagos egység meghajtója) betölthetõ modulként vannak megírva, amelyeket külön gondoznak és terjesztenek. 2.4 A gcc és libc melyik verziójára van szükség? Linus ajánl egy gcc verziót a linux forráshoz mellékelt README fájlban. Ha neked nincs meg ez a verzió, a gcc ajánlott verziójának dokumentációja megmondja, hogy kell-e frissíteni a libc-t. Ez nem egy bonyolult eljarás, de fontos betartani az utasításokat. 2.5 Mi a betölthetõ modul? Ezek a kernel program olyan részei, amelyek nincsenek közvetlenül beillesztve a kernelbe. Külön kell lefordítani, és szinte bármikor be lehet illeszteni a futó kernelbe illetve ki lehet venni onnan. A rugalmassága

miatt már ez a legelterjedtebb módszer bizonyos kernel-szolgáltatások programozására. Sok népszerû eszközmeghajtó, mint például a PCMCIA meghajtók és a QIC80/40 szalagos egység meghajtója betölthetõ modulként van megírva 2.6 Mennyi lemezterületre van szükség? Ez az adott konfigurációtól függ. Elõször is a tömörített linux forrás majdnem 6 megabájt a 2.010 -es verziónál A legtöbb helyen ezt a kicsomagolás után is megtartják Kibontva 24 MB helyett foglal. De még nincs vége: ennél is több kell, hogy le is lehessen fordítani Ez attól függ mennyi mindent akarsz betenni a kernelbe. Például az egyik gépemen van hálózat, a 3Com 3C509 meghajtója, három fájlrendszer, így összesen majdnem 30 MB lesz. A tömörített forrással együtt körülbelül 36 MB kell ehhez a konfigurációhoz. Egy másik gépen, hálózati eszköz támogatás nélkül (de hálózati támogatással) és hangkártya támogatással még többet foglal. Egy újabb

kernelnek biztosan nagyobb a forrása mint egy réginek, és ha sok hardvered is van, akkor gondoskodj egy megfelelõen nagy merevlemezrõl. (És a mai árak mellett csak ajánlani tudom, hogy egy újabb merevlemez beszerzéséval oldd meg a tárolási problémákat.) 2.7 Mennyi ideig tart? A többség számára a válasz: "elég sokáig". Alapvetõen a gép sebessége és a memória mennyisége határozzák meg a fordítási idõt, de kis mértékben függ a kernelbe konfigurált dolgok mennyiségétõl is. Egy 486DX4/100-es gépen 16 MB RAM-mal egy 12-es kernel fordítása öt fájlrendszerrel, hálózati támogatással, hangkártya meghajtóval körülbelül 20 percig tart. Egy 386DX/40-en (8 MB RAM) hasonló konfigurációval majdnem másfél óra. Amíg a gép fordítja a kernelt fõzz egy kávét, nézz tévét, kötögess vagy hódolj egyéb kedvteléseknek. Ha tényleg nagyon lassú géped van akkor megkérhetsz valakit, akinek gyors gépe van, hogy fordítsa le

neked a kernelt. 3. HOGYAN KELL KONFIGURÁLNI A KERNELT ? 3.1 A forrás beszerzése A forrást anonymous ftp-vel lehet beszerezni az ftp.kernelorg-on a /pub/Linux/ könyvtárból, egy tükrözésrõl, vagy egyéb helyrõl. Általában linux-xyztargz a neve, ahol x.yz a verziószám Az újabb (jobb?) verzók és patch-ek általában `v20 és `v21 nevû alkönyvtárakban vannak. A legnagyobb szám a legújabb verzió (jelenleg v21), és ezek "fejlesztõi verziók". Ha félsz az alfa és béta verzióktól, akkor inkább maradj egy stabil verziónál (v2.0) Nyomatékosan ajánlom, hogy használj egy tükör ftp-helyet az ftp.kernelorg helyett Itt egy rövid lista a tükrözésekrõl: USA: sunsite.uncedu:/pub/Linux/kernel USA: tsx-11.mitedu:/pub/linux/sources/system UK: sunsite.docicacuk:/pub/unix/Linux/sunsiteunc-mirror/kernel Ausztria: ftp.univieacat:/systems/linux/sunsite/kernel Németország: ftp.GermanyEUnet:/pub/os/Linux/LocalEUnet/Kernel/Linus Németország:

sunsite.informatikrwth- aachen.de:/pub/Linux/PEOPLE/Linus Franciaország: ftp.ibpfr:/pub/linux/sources/system/patches Ausztrália: sunsite.anueduau:/pub/linux/kernel Magyarország: ftp.kfkihu:/pub/linux/kernel ftp.aszisztakihu:/pub/Linux/kernel ftp.bmehu:/pub/OS/Linux/kernel ftp.jateu-szegedhu:/pub/linux/kernel Általában a sunsite.uncedu tükrözésein érdemes keresni A /pub/Linux/MIRRORS fájl tartalmazza az ismert tükrözések listáját. Ha általános Linux információkat keresel, próbáld meg a következõ címeken: http://www.linuxorg/ (angolul), http://wwwcabuszegedhu/linux/ (magyarul) 3.2 A forrás kibontása Lépj be `root-ként (vagy válts át su-val) és menj át (cd-vel) a /usr/src-be. Ha a linux telepítésekor a forrást is felrakattad (ahogy a legtöbben), akkor már lesz ott egy `linux nevû könyvtár, ami tartalmazza az egész forrás-hierarchiát. Ha van elég lemezterületed és biztosra akarsz menni, akkor tartsd meg ezt a könyvtárat. A legjobb ha

kideríted melyik verzió fut éppen és a könyvtárat annak megfelelõen nevezed át. A `uname -r parancs kiírja az aktuális verziószámot. Tehát ha az `uname -r azt válaszolta, hogy `2017, akkor nevezd át a `linux-ot (`mv-vel) `linux-2.017-re Ha szeretsz kockáztatni, akkor csak töröld ki az egész könyvtárat. A lényeg, hogy ne legyen `linux nevû könyvtár a /usr/src-ben amikor kibontod a forrást. Most (még mindig a /usr/src-ben) bontsd ki a forrást a `tar zxpvf linux- x.yztargz paranccsal (Ha csak egy tar fájl van gz nélkül a végén, akkor a `tar xpvf linux-x.yztar paranccsal) Az archivum tartalma el fog száguldani a képernyõn Amikor vége, lesz egy új `linux könyvtár a /usr/src-ben. Menj bele és nézd át a README fájlt. Lesz benne egy `INSTALLING the kernel címû rész Hajtsd végre az utasításait, ha szükséges -- például a szimbolikus linkek elkészítése a megfelelõ helyre, stb. 3.3 A kernel konfigurálása Megjegyzés: Az itt

következõk egy része a Linus-féle README egy hasonló fejezetének megismétlése, részletezése. A /usr/src/linux-ból kiadott `make config parancs elindít egy konfiguráló scriptet, amely sok kérdést tesz fel. A bash kell hozzá, ezért ellenõrizd, hogy létezik-e a /bin/bash, a /bin/sh a /bin/bash-ra mutat-e, vagy a $BASH tartalmazza-e a /bin/bash-t. A `make config-nak van két könnyebben és kényelmesebben használható alternatívája. Azok akik X alatt dolgoznak, megpróbálhatják a `make xconfig-ot, ha van Tk installálva. A `make menuconfig azoknak való, akik jobban szeretnének egy szöveges menüt; (n)curses kell hozzá. Ezeknek a felületeknek van egy határozott elönyük: Ha elrontasz valamit a konfigurálás közben, akkor egyszerûen vissza lehet menni kijavítani. A kérdésekre általában igennel (`y (yes)) vagy nemmel (`n (no)) kell válaszolni. Az eszközmeghajtókhoz általában van `m opció is. Ez azt jelenti ``modul, azaz a rendszer le fogja

fordítani, de nem közvetlenül a kernelbe, hanem betölthetõ modulként. Néhány nyilvánvaló és nem fontos opciót itt nem magyarázok el, néhány egyéb opció leírását lásd az `` Egyéb konfigurációs opciók címû fejezetben. A 2.0x verziótól kezdve van egy `? opció is Ennek hatására az adott paraméter egy rövid leírását kapjuk. Ez a legnaprakészebb információ az adott opcióról Kernel math emulation Társprocesszor emuláció. Ha nincs matematikai társprocesszor a gépedben (egy sima 386 vagy 486SX esetén) akkor erre igennel kell válaszolni. Ha van társprocesszor és mégis igennel válaszolsz, ne aggódj -- a kernel használni fogja a társprocesszort és figyelmen kívül hagyja az emulációt. Az egyetlen következmény az, hogy a kernel nagyobb lesz, fogyasztva a memóriát Úgy hallottam, hogy a társprocesszor emuláció lassú. Bár nincs sok köze ehhez a fejezethez, jó ha ez eszedbe jut, ha azt tapasztalod, hogy nagyon lassú az X.

Enhanced IDE/MFM/RLL disk/cdrom/tape support Megnövelt IDE/MFM/RLL disk/cdrom/szalagos egység támogatás. Erre valószínûleg szükség lesz. Ez azt jelent, hogy a kernel támogatni fogja a szabványos PC merevlemezeket; a legtöbb gépben ilyen van. Ebbe nem tartoznak bele az SCSI maghajtók, ezek konfigurálására késõbb kerül sor. Amennyiben nem a fenti kell, választhatod még az `Old harddisk (MFM/RLL/IDE) driver-t (régi MFM/RLL/IDE lemez meghajtó). Csak az egyiket lehet választani A fõ különbség az, hogy a régi meghajtó csak két lemezegységet tud kezelni egy csatolón, míg az elõbbi egy második csatolót is tud kezelni illetve az IDE/ATAPI CD-ROM és szalagos egységeket is. Az új meghajtó 4k-val nagyobb, mint a régi és feltételezhetôen ``javított, ami azt jelenti, hogy amellett, hogy több hibajavítást is tartalmaz, megnöveli a lemezek teljesítményét, különösen az újabb (EIDE) hardver esetén. Networking support Hálózati támogatás.

Elméletileg erre csak akkor kellene igennel válaszolni, ha géped egy hálózaton van, mint amilyen az Internet, vagy éppen SLIP, PPP, term, stb. segítségével telefonvonalon akarsz hálózatra kapcsolódni. De mivel sok programcsomag (mint például az X ablakozó rendszer) akkor is igényel hálózati támogatást, ha a gép nincs igazi hálózatra kötve, mindenképpen igennel kell válaszolni. Késõbb megkérdezi, hogy akarsz-e TCP/IP támogatást; itt is y a válasz, ha nem vagy teljesen biztos az ellenkezõjében. Limit memory to low 16MB Memória korlátozása az alsó 16 MB-ra. Vannak hibás 386-os DMA vezérlõk, amelyek nem tudnak 16 MB fölé esõ memóriát megcímezni. Csak abban a ritka esetben kell igennel válaszolni, ha ilyened van. System V IPC Az IPC (Interprocess Communication = ``processzek közötti kommunikáció) egyik legjobb definicója a Perl könyv szómagyarázatában található. Nem meglepõ, hogy néhány Perl programozó ennek segítségével

küld üzeneteket processzek között, csakûgy mint sok más programcsomag (pl. a DOOM, hogy a legismertebbet említsem) Ezért nem ajánlatos n-nel válaszolni, hacsak nem tudod pontosan mit csinálsz. Processor type (386, 486, Pentium, PPro) Processzor típusa. Régebben ez befordított bizonyos optimalizációt az adott processzorhoz; a kernel simán futott más processzorokon is, csak egy kicsit nagyobb volt. Az újabb kernelek esetén ez már nem így van, ezért annak a processzornak a tipusát kell beírni, amelyhez a kernel készül. Egy ``386-os kernel minden gépen menni fog SCSI support SCSI támogatás. Ha van SCSI eszközöd, válaszolj `y-t További kérdéseket fog feltenni CDROM támogatásról, a lemezegységek és az SCSI adapter típusáról Lásd az SCSI-HOWTO-t részletes információért. Network device support Hálózati eszköz támogatás. Ha van hálózati kártyád, vagy szeretnél SLIP-pel, PPP-vel vagy a párhuzmos porton át csatlakozni az

Internethez, válaszolj igennel. A konfigurációs script megkérdezi a kártya tipusát és a használandó protokollt. Filesystems Fájlrendszerek. A konfiguráló script ezek után megkérdi, hogy akarod-e használni a következõ fájlrendszereket: Minix - Az újabb disztribúciók nem hoznak létre minix fájlrendszereket, és sokan nem is használják, de ennek ellénére érdemes lehet bekonfigurálni. Néhány ``mentõlemez-program használja, és sok floppyn van minix fájlrendszer, mert floppyn sokkal kényelmesebb ezt használni (kevesebb helyet foglal maga a fájlrendszer). Extended (ext) - Ez volt az ext2 fájlrendszer elsõ változata, ma már nem használják széles körben. Ha szükséged van rá, akkor valószínüleg tudsz is róla; ha nem tudod, akkor nincs is rá szükséged. Second extended (ext2) - Ezt széles körben használják az újabb disztribúciók. Valószínûleg ilyened van, ezért igennel kell válaszolni. xiafs - Egy idõben elterjedt volt, de most

nem ismerek senkit aki használja. msdos - Ha használni akarod a meglévõ MS-DOS winchester particiókat, vagy DOS alatt formázott floppykat akarsz mountolni, akkor válaszolj igennel. umsdos - Ez a fájlrendszer kibõvít egy MS-DOS fájlrendszert a szokásos Unix-szerû tulajdonságokkal, mint például a hosszú fájlnevek. Haszontalan olyanoknak (mint én), akik nem használnak DOS-t. /proc - Az egyik legnagyszerûbb dolog a tejpor feltalálása óta. (Az ötletet azt hiszem a Bell Labs-tól lopták szégyentelen módon.) A proc fájlrendszer nem arra való, hogy létrehozzák a lemezen; ez egy fájlrendszer felület a kernel és a processzek felé. Sok processz-listázó (mint a `ps) használja. Egyszer próbáld ki a `cat /proc/meminfo vagy `cat /proc/devices parancsokat. Néhány parancsértelmezõ (különösen az rc) használja a /proc/self/fd-t (más rendszereken /dev/fd néven ismert) I/O mûveletekre. Majdnem biztosan igennel kell válaszolnod erre, sok fontos linux

segédprogram támaszkodik rá. NFS - Ha a géped hálózatra van kötve és szeretnél más gépeken lévõ fájlrendszerereket használni NFS-sel, akkor válaszd ki. ISO9660 - A legtöbb CD-ROM-on ez található. Ha van CD-ROM meghajtód és szeretnéd linux alatt használni, válaszd ki. HPFS - Az írás idején egy csak olvasható fájlrendszer OS/2 HPFS-hez. System V and Coherent - System V és Coherent partíciókhoz. (Ezek más PC-s Unix változatok) De én nem tudom milyen fájlrendszer kell nekem! Jól van, írd be, hogy `mount. A kimenet valami ilyesmi lesz: blah# mount /dev/hda1 on / type ext2 (defaults) /dev/hda3 on /usr type ext2 (defaults) none on /proc type proc (defaults) /dev/fd0 on /mnt type msdos (defaults) Nézd meg mindegyik sort. A `type utáni szó a fájlrendszer típusa Ebben a példában a / és a /usr fájlrendszerek típusa ext2 (second extended). Használok /proc fájlrendszert is, továbbá egy floppy be van mountolva msdos fájlrendszerként.

Megpróbálkozhatsz a `cat /proc/filesystems paranccsal, ha a /proc éppen támogatva van a futó kernelben és be van mountolva; ez ki fogja listázni az aktuális kernel fájlrendszereit. Ritkán használt, nem létfontosságú fájlrendszerek bekonfigurálása túlméretezett kernelt eredményezhet. A modulokról szóló fejezetbõl kiderül, hogy ezt hogy lehet elkerülni A `` Néhány kelepce címûbõl pedig az, hogy miért nemkívánatos a nagy kernel. Character devices Karakteres eszközök. Itt állíthatók be a (párhuzamos) nyomtató, busz-egér (busmouse), PS/2 egér (sok notebook gép használ PS/2 egér protokollt a beépített trackballhoz), néhány szalagos egység és más hasonló ``karakteres eszközökhöz a meghajtók. Nyomj `y-t a megfelelõ helyen 1. Megjegyzés: A selection egy program amely lehetõvé teszi az egér használatát az X ablakozó rendszeren kívül is, virtuális konzolok közötti másolásra. Ha soros egered van, elég kellemes, mert jól

megfér az X-el, de ha másmilyen, akkor trükközni kel. A selection támogatása valamikor konfigurációs opció volt, de ma már szabványos. 2. Megjegyzés: A selection már elavultnak számít Az új program neve ``gpm Többet tud: például egér protokollok között fordítani, több egeret kezelni, stb. Sound card Hangkártya. Ha nagyon vágysz arra, hogy halljad a biff-et ugatni, nyomj `y-t, és a konfigurációs program részletesen ki fog kérdezni a hangkártyádról. Ha van hangkártyád, melegen ajánlom a Sound-HOWTO-t. Egyéb konfigurációs opciók Nincs az összes konfigurációs opció felsorolva itt, egyrészt mert túl gyorsan változnak, másrészt mert magától értetõdõek. (Például a ``3Com 3C509 support az említett ethernet kártyához való támogatást jelenti.) Axel Boldt (axel@uni-paderbornde) összeállított egy meglehetõsen széleskörû listát az összes opcióról (és egy módszert, amivel be lehet tenni õket a Configure scriptbe), amely a

http://math-www.uni-paderbornde/~axel/config helphtml címen található, vagy anonymous FTP-vel a ftp://sunsite.uncedu/pub/Linux/kernel/config/krnl cnfg hlpxyz .tgz címen, ahol x.yz a verziószám A késõbbi kernelekben (2.0x és e fölött) ez már be van integrálva a forrásba Kernel hackelés Linus írja a README-ben: A ``kernel hacking konfigurációs részletek általában nagyobb vagy lassabb (vagy mindkettõ) kernelt eredményeznek, sõt akár kevésbé stabilabbá is tehetik a kernelt azáltal, hogy bekonfigurálnak néhány rutint, amelyek megpróbálják aktívan feltörni a hibás programrészleteket, hogy így találjanak problémákat. Ezért inkább `n-t kell válaszolni az erre vonatkozó kérdésekre egy ``stabil kernel esetén. 3.4 Na most mi legyen? (A Makefile) A make menuconfig vagy a make xconfig után egy üzenet tudatja, hogy a kernel konfigurálása megtörtént és felszólít, hogy ``check the top-level Makefile for additional configuration,

stb. (``További konfiguráláshoz ellenõrizd a felsõszintû Makefile-t) Nézz bele tehát a Makefile-ba. Valószínûleg nem kell megváltoztatni semmit, de megnézni sosem árthat. Az opciókat megváltoztathatod akkor is, amikor az új kernel már a helyén van az `rdev paranccsal. 4. A KERNEL FORDÍTÁSA 4.1 Törlések és függõségek Amikor a konfiguráló script véget ér, azt is mondja, hogy add ki a `make dep és a `make clean parancsokat. A `make dep ellenõrzi, hogy az összes függõség, mint például az include fájlok, a helyükön vannak-e. Nem tart sokáig, hacsak a géped nem nagyon lassú Egy `make clean-t is csinálni kell. Ez letörli az összes object fájlt és néhány egyéb dolgot, amit a régi verzió hátrahagy. Mindenesetre ne felejtsd el ezt a lépést, mielõtt megpróbálod újrafordítani a kernelt. 4.2 Fordítási idõ A `make dep és `make clean után jöhet a `make zImage vagy `make zdisk (Ez az a rész, ami sokáig tart.) A `make zImage

lefordítja a kernelt és (többek között) egy `zImage nevû fált hagy maga után a arch/i386/boot-ban. Ez az új tömörített kernel A `make zdisk ugyanezt teszi, de az új zImage-t rámásolja egy floppyra, amelyet addigra remélhetõleg már betettél az ``A: drive-ba. A `zdisk nagyon kényelmes az új kernelek teszteléséhez. Ha lefagy (vagy egyszerûen csak nem mûködik jól), akkor csak kiveszed a floppyt és bootolhatsz a régi kernellel. Akkor is jól jön, ha véletlenül letörlöd a kernelt (vagy valami hasonló szörnyûség történik). Új rendszerek telepítésére is lehet használni; az egyik lemez tartalmát egyszerûen átmásolod a másikra. Minden valamirevaló újabb kernel tömörítve van, ezért van `z a nevük elõtt. A tömörített kernel automatikusan kicsomagolja magát, amikor végrehajtódik. 4.3 A ``make egyéb opciói A `make mrproper alaposabb törlést végez. Néha szükség van rá, ajánlott minden patch alkalmával végrehajtani. A

`make mrproper a konfigurációs fájlt (config) is letörli, ezért csinálj róla biztonsági másolatot, ha megtartásra érdemesnek találod. A `make oldconfig megpróbálja egy régi konfigurációs fájl alapján konfigurálni a kernelt; elvégzi helyetted a `make config lépést. Ha még sosem fordítottál kernelt vagy nincs régi konfigurációs fájl kéznél, akkor ne tedd, mert minden bizonnyal meg kell változtatni az alapértelmezett konfigurációt. A `make modules leírása a modulokról szóló fejezetben található. 4.4 A kernel installálása Ha kész van a kernel és az úgy is mûködik, ahogy szeretnéd, itt az ideje installálni. A legtöbben a LILO-t (Linux Loader) használják erre célra. A `make zlilo installálja a kernelt, lefuttatja rajta a LILO-t, és bootolásra kész állapotba hozza, DE CSAK AKKOR, ha a LILO a következõképpen van konfigurálva: a kernel /vmlinuz, a LILO az /sbin-ben van, és a LILO konfigurációs fájl (/etc/lilo.conf) tartalma

is ennek megfelelõ Ellenkezõ esetben közvetlenül kell a LILO-t használni. Eléggé könnyû installálni és használni, de a konfigurációs fájl hajlamos összezavarni az embereket. Nézd meg a konfigurációs fájlban (a régebbi verzióknál /etc/lilo/config, az újaknál /etc/lilo.conf), hogy mi az aktuális beállítás. A konfigurációs fájl így néz ki: . image = /vmlinuz label = Linux root = /dev/hda1 . Az `image = az aktuális kernelre mutat. A legtöbben /vmlinuz-t használnak A `label alapján dönti el a lilo, hogy melyik kernelt, vagy operációs rendszert indítsa el, és a `root az adott operációs rendszert gyökérkönyvtára. Készíts biztonsági másolatot a régi kernelrõl és másold a frissen fordított zImage-t a helyére. (Például, ha `/vmlinuz-t használsz, azt mondod, hogy `cp zImage /vmlinuz) Ezután futtasd a lilo-t -- az újabb rendszereken elég annyi, hogy `lilo, de régebbieken lehet, hogy /etc/lilo/install , vagy akár /etc/lilo/lilo

-C /etc/lilo/config kell. Ha szeretnél többet tudni a LILO konfigurálásáról, vagy nincs is meg neked, akkor szerezd meg a legújabb verziót a kedvenc ftp helyedrõl és kövesd az utasításokat. Ha szeretnél egy régi kernelt bootolni a merevlemezrõl (így is megmenekülhetsz, ha az újat elrontottad), másold le a lilo konfigurációs fájlban az `image = xxx sort és az utánna következõ sorokat a fájl aljára, és változtasd meg az `image = xxx sort `image = yyy-ra, ahol `yyy annak a fájlnak a teljes elérési útvonala, amelybe a régi kernelt mentetted. Azután változtasd meg a `label = zzz sort `label = linux-backup-ra és futtasd a lilo-t. Lehet, hogy be kell tenni egy `delay=x sort is a konfigurációs fájlba, ahol x az az idõ tizedmásodpercben megadva, amennyit a lilo vár mielõtt bootolna. Így meg lehet szakítani (például a shift billentyûvel) és be lehet írni a régi kernel címkéjét, ha valami kellemetlen történik az újjal. 5. A KERNEL

PATCH-ELÉSE 5.1 Patch-elés A kernel inkrementális frissítéseit patch (``folt) formában terjesztik. Például, ha neked a 2030 verzió van meg, és észreveszed, hogy van hozzá valahol egy `patch-2.031gz, akkor ez azt jelenti, hogy upgrade-elhetsz a 2.031 verzióra a patch alkalmazásával Elõször talán készíts egy biztonsági másolatot a forrásról. (`make clean aztán `cd /usr/src; tar zcvf old-tree.tgz linux csinál neked egy tömörített tar archivumot) A fenti példát folytatva, tegyük fel, hogy a `patch-2.031gz az /usr/src-ben van Menj át az /usr/src-be (cd) és add ki a `zcat patch-2.031gz | patch -p0 parancsot (vagy `patch -p0 < patch-2.031gz, ha a patch nincs tömörítve) Egy csomó minden fog elsuhanni elötted a képernyõn (vagy épp elvánszorogni, ha annyira lassú a gép). Üzenetek jelennek meg arról, hogy a patch éppen mit csinál, és hogy sikerült-e neki vagy nem. Ez általában túl gyors ahhoz, hogy bármit is el lehessen olvasni Ha nem vagy

biztos benne, hogy sikerült-e, használd a patch -s opcióját, aminek hatására csak a hibaüzeneteket írja ki. Menj be a /usr/src/linux-ba és keress .rej (``reject) kiterjesztésû fájlokat A patch néhány verziója (olyan régebbi verziók, amelyeket gyengébb fájlrendszerhez fordítottak) # kiterjesztést ad a ``reject fájloknak. A `find parancsot használhatod a keresésre: find . -name *.rej -print Ez kiírja a standard outputra az összes olyan fájl nevét, amely az aktuális könyvtárban, vagy az abból nyíló alkönyvtárakban van és .rej a kiterjesztése Ha minden simán ment, akkor add ki a `make clean, `config, és `dep parancsokat a 3. és 4. fejezetben leírtaknak megfelelõen A patch parancsnak elég sok opciója van. Ahogy az elõbb is szó volt róla, a patch -s kikapcsolja az üzeneteket, a hibák kivételével. Ha a kernel forrását nem az /usr/src/linuxben tartod, hanem valahol másutt, akkor a patch -p1 (az adott könyvtárban) fogja helyesen

megpatchelni. A többi patch opció jól le van írva a manualban A fenti folyamat akár automatizálható is a patch-kernel scripttel, ami szintén megtalálható a kernel forrásában. Meghatározza a kernel aktuális verziószámát, majd minden patch-et alkalmaz rá amit megtalál, s ami frissebb az aktuális kernel verziójánál. cd /usr/src . linux/scripts/patch-kernel A kernelforrás alapértelmezett könyvtára a /usr/src/linux, de elsõ argumentumként más is megadható. Továbbá a patch-eket az aktuális könyvtárban keresi a script, hacsak a második argumantumban nem adsz meg egy másik könyvtárat. 5.2 Ha valami nem megy (Megjegyzés: ez a fejezet fõként nagyon régi kernelekre vonatkozik) A leggyakrabban felmerülõ probléma régebben az volt, hogy a patch módosított egy `config.in nevû fájlt, és nem sikerült, mert a felhasználó megváltoztatta az opciókat, hogy illeszkedjen a gépéhez. Ezt azóta megoldották, de még lehet vele találkozni egy

régebbi kibocsátás esetében. A következõképpen lehet megjavítani: Nézz bele a configinrej fájlba és keresd meg mi maradt az eredeti patch-bõl. A változásokat általában sor eleji `+ and `- jelek jelzik. Nézd meg a körülötte lévõ sorokat és jegyezd emg, hogy az állásuk `y vagy `n Utánna szerkeszd át a config.in-t, és változtasd meg a `y-t `n-ra és az `n-t `y-ra a megfelelõ helyeken. Addj ki egy patch -p0 < config.inrej parancsot, és ha sikerül (nincs hibaüzenet), akkor lehet folytatni a konfigurálással és fordítással. A config.inrej fájl megmarad, de le lehet törölni Ha további problémák bukkannak elõ, akkor lehet, hogy rossz sorrendben alkalmaztad a patchokat. Ha azt mondja, hogy `previously applied patch detected: Assume -R?, akkor lehet, hogy az aktuális verzió elõtti patchot próbálsz felrakni. Ha `y-t válaszolsz, akkor megpróbálja lerontani a forrást, és nagy valószínûséggel kudarcot vall. Így aztán szerezni kell

egy teljes vadonatúj forrást. (Lehet, hogy mindjárt ezzel kellett volna kezdeni) Egy patch-et visszacsinálni a `patch -R parancsal lehet. Ha a patch-ek tényleg nem mûködnek, akkor legjobban teszed, ha beszerzel egy érintetlen forrást (például egy linux-x.yztargz fájlt) és elkezded elölrõl 5.3 Az orig fájloktól való megszabadulás Már néhány patch után az .orig fájlok kezdenek felhalmozódni Például egyszer volt egy 1.151 forrásom, ami az 1148 óta nem volt megtisztogatva Az orig fájlok letörlése több mint fél megát szabadított fel. Egy find . -name *.orig -exec rm -f {} ; elintézi. A patch azon verziói, amelyek #-al jelölik a ``reject fájlokat, tildét használnak .orig kiterjesztés helyett Van egy jobb módja is az .orig fájloktól való megszabadulásnak, amihez kell a GNU xargs: find . -name *.orig | xargs rm vagy a ``hosszú de biztos módszer: find . -name *.orig -print0 | xargs --null rm – 5.4 Egyéb patch-ek Linus Torvalds által

terjesztette patch-eken kívül vannak másmilyenek is (nevezzük õket ``nem szabványos-nak). Ha ezeket felrakod, akkor lehet, hogy a Linus féle patch-ek nem fognak jól mûködni, és akkor vagy visszacsinálod õket és megjavítod a forrást vagy a patchet, vagy felraksz egy új forrást, vagy a fentiek valamilyen kombinációja. Ez nagyon idegesítõ lehet, tehát ha nem akarod módosítani a forrást (kockáztatva egy nagyon rossz végkimenetelt), csináld vissza a nem szabványos patcheket mielõtt felrakod Linus-éit, vagy rakj fel egy új forrást. Így ellenõrízheted, hogy a nem szabványos patch-ek mûködnek-e még. Ha nem, akkor vagy be kell érned egy régi kernellel, vagy addig bütykölöd vagy a forrást vagy a patch-et amíg nem mûködik, vagy vársz (esetleg könyörögsz), hogy kijöjjön a patch egy új verziója. Mennyire elterjedtek a nem szabványos patchek? Valószínûleg fogsz róluk hallani. Régebben használtam a noblink patchet a virtuális

konzolokon, mert utálom a villogó kurzort. (Ezt gyakran frissítik (vagy legalábbis frissítették) a kernel új verzióihoz). De mivel a legtöbb új eszközmeghajtót betölthetõ modulnak fejlesztik, a nem szabványos patch-ek gyakorisága jelentõsen csökken. 6. TOVÁBBI CSOMAGOK A linux kernelnek sok olyan szolgáltatása van, amelyet nem említenek meg magában a forrásban. Ezeket a szolgáltatásokat általában külsõ programcsomagokon keresztül használnak A leggyakoribbakból néhány: 6.1 kbd A linux konzolnak talán több szolgáltatása van, mint amennyit megérdemel. Többek között betûkészletet tud váltani, átállítja a billentyûzetet, átváltja a video módot (az újabb kerneleknél), stb. A kbd csomagban olyan programok vannak, amelyekkel a felhasználó végezheti el mindezeket, plusz sok betûkészlet és beállítások szinte minden billentyûzethez. Ugyanazokról a helyekrõl lehet beszerezni, mint a kernel forrást. 6.2 util-linux Rik Faith

(faith@cs.uncedu) összeállított egy linux segédprogramokból álló nagy gyûjtemény, melynek neve, valami különös véletlen folytán, util-linux. Ennek karbantartója azóta Nicolai Langfeldt (util-linux@math.uiono) Megszerezhetõ anonymous ftp-vel a sunsite.uncedu-ról a /pub/Linux/system/misc könyvtárból Tartalmazza többek között a setterm, rdev, és ctrlaltdel programokat, a kernellel kapcsolatosak közül. Ahogy Rik mondja, ne rakd fel ész nélkül. Nem kell mindent installálni, ami a csomagban van, és könnyen okozhat komoly problémákat, ha megteszed. 6.3 hdparm Mint sok csomag, ez is egy kernel patch és hozzávaló segédprogramok gyüjteménye volt valaha. A patch bekerült a hivatalos kernelbe, a programokat, amelyekkel optimalizálni és bütykölni lehet a merevlemezt, külön terjesztik. 6.4 gpm gpm annyit tesz, mint ``general purpose mouse (``általános célú egér). Ezzel a programmal szöveget lehet másolni (``cut and paste) az egyik

virtuális konzolról a másikra, és még sok minden mást lehet csinálni, sokféle egértípussal. 7. NÉHÁNY KELEPCE 7.1 make clean Ha az új kernel egy rutinszerû kernelfrissítés után elkezd nagyon vad dolgokat mûvelni, akkor könnyen lehet, hogy elfeljtetted kiadni a make clean parancsot az új kernel lefordítása elõtt. A tünetek változatosak lehetnek: egyszerûen összeomlik, furcsa I/O problémák jönnek elõ vagy csak nagyon lassú lesz. Ne felejtsd el a make dep-et se 7.2 Nagy vagy lassú kernel Ha a kernel sok memóriát foglal el, túl nagy, és/vagy egy örökkévalóságig tart lefordítani akkor is, ha a vadonatúj 786DX6/440 gépeddel esel neki, akkor valószínûleg túl sok fölösleges dolog (eszközmaghajtók, fájlrendszerek, stb.) van belekonfigurálva Ha nem használod, akkor ne is konfiguráld be, mert foglalja a memóriát. A túl nagy kernel legszembetûnõbb tünete a memória és diszk közötti túlzott swappelés. Ha a merevlemez sokat

zörög, és nem egy régi Fujitsu Eagles, ami kikapcsoláskor olyan hangot ad, mint egy sugárhajtású repülõgép leszálás közben, akkor nézd át a kernel konfigurálást. Megtudhatod, hogy mennyi memóriát használ a kernel, ha fogod a gépedben levõ összes memória mennyiségét és kivonod belõle a ``total mem mezõ értékét a /proc/meminfo-ból, vagy a `free outputjából. Megtuthatod még úgy is, hogy kiadod a `dmesg parancsot (vagy megnézed a kernel log fájlt, bárhol is legyen a gépeden -- általában ez a code, 384k /var/log/messages). Lesz benne egy ilyen sor: Memory: 15124k/16384k available (552k kernel reserved, 324k data) A 386-osom (amelyen egy kicsit kevesebb plusz dolog van bekonfigurálva) ezt írja ki: Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data) Ha nem bírsz élni nagy kernel nélkül, de a gép nem engedi, akkor próbáld ki a `make bzimage-t. Könnyen lehet, hogy akkor a LILO egy új verzióját

is installálnod kell 7.3 A kernel nem fordul le Ha nem fordul le, akkor valószínûleg nem sikerült egy patch, vagy a forrás valahogy megsérült. Lehet, hogy nem jó a gcc adott verziója, vagy az is lehet sérült (például az include fájlok lehetnek hibásak). Ellenõrizd, hogy a szimbólikus linkek, amelyeket Linus említ a README-ben jól vannak-e beállítva. Általában elmondható, hogy ha a szabványos kernel nem fordul le, akkor valami komoly baj van a rendszerrel, és valószínûleg újra kell installálni bizonyos programokat. Vagy talán egy 1.2x kernelt fordítassz egy ELF fordítóval (gcc 263 és a fölött) Ha rengeteg ez-meg-az undefined üzenetet kapsz fordítás közben, akkor lehet, hogy ez a baj. A megoldás a legtöbb esetben nagyon egyszerû. Másold a következõ sorokat a arch/i386/Makefile elejére: AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux CC=gcc -b i486-linuxaout -D KERNEL -I$(TOPDIR)/include Azután

csinálj make dep-t és zImage-t újra. Ritka esetekben elõfordul, hogy a gcc hardver okok miatt száll el. A hibaüzenet valami olyasmi lesz, hogy ``xxx exited with signal 15 és általában nagyon rejtélyesen néz ki. Talán nem is említeném, he nem történt volna meg velem is egyszer -- A cache memória hibás volt és a gcc idõnként véletlenszerûen elszállt. Elõször próbáld meg újrainstallálni a gcc-t, ha ilyen gond merül fel. Csak akkor kell gyanakodni, ha a kernel hiba nélkül lefordul kikapcsolt külsõ cache, kevesebb RAM, stb. mellett Az embereket általában nyugtalanítja, ha felvetõdik, hogy a hardverük hibás lehet. Nos, nem én találtam ki. Itt van hozzá egy FAQ: http://wwwbitwizardnl/sig11/ 7.4 Az új kernel nem bootol Nem futtattad a LILO-t, vagy rosszul van konfigurálva. Egyszer az ``fogott meg, hogy hiba volt a konfig fájlban. `boot =/dev/hda1 volt benne `boot = /dev/hda helyett (Ez elsõre nagyon idegesítõ lehet, de ha már van egy

mûködõ konfig fájl, nem kell hozzányúlni.) 7.5 Elfelejtetted futtatni a LILO-t, vagy egyáltalán nem bootol Hoppá! A legjobb amit ilyen helyzetben tehetsz az, hogy floppyról bootolsz és csinálsz egy másik bootolható floppyt (ahogy a `make zdisk is csinálná). Tudnod kell, hogy hol van a root (/) fájlrendszer és az milyen típusú (pl. második kiterjesztett, minix) Az alábbi példában azt is tudni kell, hogy melyik fájlrendszeren van a linux forrás /usr/src/linux, annak a típusa és hogy rendszerint hova van mountolva. A következõ példában a root a /dev/hda1, az /usr/src/linux a /dev/hda3 fájlrendszeren van, normálisan az /usr-re mountolva. Mindkettõ ext2 fájlrendszer A mûködõ kernel a /usr/src/linux/arch/i386/boot-ban van és a neve zImage. Az alapötlet az, hogy ha van egy mûködõképes zImage, akkor lehet azt használni az új floppyn. Egy másik módszerrõl, ami vagy jobban mûkõdik, vagy nem (attól függõen, hogy pontosan hogyan rontottad

el a rendszert) a példa után lesz szó. Elõször bootolj egy boot/root lemezpárosról vagy mentõlemezrõl és mountold föl azt a fájlrendszert, ami a mûködõ kernelt tartalmazza. mkdir /mnt mount -t ext2 /dev/hda3 /mnt Ha a mkdir azt mondja, hogy a könyvtár már létezik, ne törõdj vele. Menj be abba a könyvtárba, amelyben a mûködõ kernel volt. Ne feledd, hogy /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot Helyezz egy formattált lemezt az ``A: meghajtóba (ne a boot vagy root lemezt!), másold a kernelt a lemezre és konfiguráld a root fájlrendszernek megfelelõen: cd /mnt/src/linux/arch/i386/boot dd if=zImage of=/dev/fd0 rdev /dev/fd0 /dev/hda1 Menj a root könyvtárba és csatold le a normálisan /usr fájlrendszert. cd / umount /mnt Ezek után a megszokott módon lehet bootolni errõl a floppyról. Ne felejtsd el futtatni a LILO-t (vagy amit rosszul csináltál) az újrabootolás után. Ahogy az elõbb említettem, van egy

másik lehetõség. Ha van egy mûködõ kernel a gyökérkönyvtárban (például /vmlinuz), akkor azt is lehet használni egy bootlemezen. Feltéve, hogy minden változatlan, /vmlinuz a kernel, a következõ változtatásokat kell eszközölni a fenti példán: legyen /dev/hda3 helyett /dev/hda1 (a root fájlrendszer) az /mnt/src/linux-t mountold az /mnt-re, és az if=zImage paramétert írd át if=vmlinuz-re. A megjegyzést a /mnt/src/linux levezetésérõl figyelmen kívül lehet hagyni. A LILO használata nagy merevlemezekkel (több, mint 1024 cilinder) gondot okozhat. Lásd a LILO mini-HOWTO-t vagy a dokumentációt segítségért. 7.6 Azt mondja `warning: bdflush not running Ez súlyos probléma lehet. Az 10 kernel verzió kibocsátása után (1994 április 20 táján) felfrissítették/lecserélték az `update nevû programot, amely rendszeresen kiüríti a fájlrendszer puffereit. Szerezd meg a `bdflush forrását (meg kell lennie ugyanott, ahol a kernel

forrásnak), és installáld fel. (Ezt még a régi kernelt futtatva ajánlatos megtenni) `update néven installálja magát. Az újrabootolás után a kernel nem fog többet panaszkodni 7.7 Mond valamit ``undefined symbols-okról és nem fordul le Valószínüleg ELF fordítód van (gcc 2.63 és afölött) és 12x (vagy korábbi) kernel forrás A szokásos megoldás az, hogy az alábbi sorokat bemásolod a arch/i386/Makefile elejére: AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux CC=gcc -b i486-linuxaout -D KERNEL -I$(TOPDIR)/include Ez lefordítja az 1.2x kernelt az aout könyvtárakkal 7.8 Nem mûködik az IDE/ATAPI CD-ROM meghajtó Különös módon sokan nem tudják használni az ATAPI meghajtókat, talán mert több oka lehet a hibának. Ha a CD-ROM meghajtó az egyetlen eszköz egy adott IDE csatolón, akkor a jumpereknek ``master vagy ``single állásban kell lenniük. Valószínûleg ez a leggyakoribb hiba A Creative Labs (és mások is) IDE

csatolókat építenek a hangkártyákra. Ebbõl következik az az érdekes probléma, hogy egyes gépeken csak egy csatoló van, másokon kettõ beépítve az alaplapra (általában IRQ15), ezért a soundblaster csatolót a harmadik IDE portra teszik (IRQ11, állítólag). Ez problémákat okoz a linuxszal, mivel az 1.2x kernelek nem támogatják a harmadik csatolót (az 1.3x valamelyik tagjától kezdve már van,de az fejlesztõi és nem detektálja automatikusan) Ezt többféleképpen lehet kikerülni. Ha már van második IDE port, könnyen lehet, hogy nem is használod, vagy még nincs rajta két eszköz. Vedd le az ATAPI meghajtót a hangkártyáról és rakd a második csatolóra Ezután ki lehet kapcsolni a hangkártya csatolóját és még egy IRQ-t is megspórolsz. Ha nincs második IDE csatoló, akkor jumperold a hangkártya IDE csatolóját (ne a hangkártya hang részét) az IRQ15-re (második IDE csatoló). Ennek mûködnie kell Ha valamilyen okból

nélkülözhetetlen az ún. ``harmadik csatoló, vagy más problémák vannak, szerezz egy 1.3x kernelt ( az 1.357-ben van, például) és olvasd el a drivers/block/README.ide-t Ott sokkal több információ van 7.9 Furcsa üzenetek ``obsolete routing requests-rõl Szerezd be a route program, és minden más útvonalválasztást manipuláló program egy új verzióját. Az /usr/include/linux/routeh (ami valójában az /usr/src/linux-ban van) megváltozott. 7.10 A tûzfal (firewall) nem mûködik az 120 kernellel Upgrade-elj legalább az 1.21 verzióra 7.11 ``Not a compressed kernel Image file Nem tömörített kernel fájl. Ne a /usr/src/linux könyvtárban keletkezõ vmlinux fájlt használd kernelnek. Az []/arch/i386/boot/zImage a jó 7.12 Problémák a konzollal 13x-ra való frissítés után Az /etc/termcap fálban a konzol termcap bejegyzésben írd át a dumb szót linux-ra. Lehet, hogy egy terminfo bejegyzést is kell csinálni. 7.13 Nem lehet semmit

lefordítani kernel upgrade után A linux kernel forrás tartalmaz számos include fájlt (a .h végû fájlnevek) amelyekre a szabványos include fájlok hivatkoznak. A hivatkozások általában így néznek ki (ahol xyzzyh egy fájl az /usr/include/linux-ban): #include <linux/xyzzy.h> Normális esetben van egy linux nevû link az /usr/include-ban, amely a kernel forrás include/linux könyvtárára mutat (általában /usr/src/linux/include/linux). Ha ez a link nincs a helyén, vagy rossz helyre mutat, akkor a legtöbb programot egyáltalán nem lehet lefordítani. Ha letörölted a kernel forrást, mert túl sok helyet foglalt, akkor nyilvánvaló, hogy ez a gond. Lehet baj a hozzáférési jogosultságokkal is Ha a root umask-ja alapértelmezés szerint nem engedi meg, hogy a többi felhasználó lássa a fájljait és a kernel forrást a p (preserve file modes) opció nélkül csomagoltad ki, akkor a felhasználók a C fordítót sem fogják tudni használni. Bár a chmod

paranccsal is meg lehet ezt oldani, könnyebb újra kicsomagolni az include fájlokat. Ezt ugyanúgy kell csinálni, ahogy az elején kicsomagoltuk az egész forrást, csak még egy paraméter kell használni: blah# tar zxvpf linux.xyztargz linux/include Megjegyzés: a ``make config létrehozza a /usr/src/linux linket, ha nincs meg. 7.14 Korlátok megemelése A következõ példa parancsok hasznosak lehetnek azoknak, akik szeretnék tudni hogyan lehet bizonyos, a kernel szabta korlátokat megemelni. echo 4096 > /proc/sys/kernel/file-max echo 12288 > /proc/sys/kernel/inode-max echo 300 400 500 > /proc/sys/vm/freepages 8. A 20X KERNELEKRE TÖRTÉNÕ FRISSÍTÉS A kernel 2.0x verziója elég sok változást hozott a kernel installálásában A forrásban található Documentation/Changes fájl tartalmazza a 2.0x verzióra való átálláshoz szükséges tudnivalókat. Valószínûleg frissíteni kell több fontos programcsomagot, mint például a gcc, libc, és a SysVInit, és

lehet, hogy meg kell változtatni néhány rendszerfájlt is. Ezekre készülj fel De semmi pánik! 9. MODULOK A betölthetõ kernel modulok memóriát takaríthatnak meg és megkönnyíthetik a konfigurálást. A modulok köre egyre bõvül, magában foglal többek között fájlrendszereket, ethernet-kártya meghajtókat, szalagos egység és nyomtató meghajtókat. 9.1 A segédprogramok telepítése A modulok használatához szükséges segédprogramokat ugyanonnan lehet megszerezni, ahonnan a kernel forrást is, modules-x.yztargz néven Válaszd a legnagyobb xyz verziószámot, ami még kisebb-egyenlõ a kerneled verziószámánál. Csomagold ki a `tar zxvf modules-x.yztargz paranccsal, menj be a könyvtárba, amit létrehoz (modulesxyz), nézd át a README fájlt és hajtsd végre az installálási utasításokat (ami általában elég egyszerû, például make install). Ezután kell hogy legyenek insmod, rmmod, ksyms, lsmod, genksyms, modprobe és depmod nevû programok az

/sbin könyvtárban. Ha akarod, kipróbálhatod õket az insmod-ban található ``hw példa-meghajtóval. Ebben az alkönyvtárban, az INSTALL fájlban olvashatóak a részletek. Az insmod beilleszt egy modult a futó kernelbe. A moduloknak általában o kiterjesztésük van. A fent említett példa-meghajtó neve drv helloo, ezt a `insmod drv helloo paranccsal lehet beilleszteni. Az lsmod kilistázza az éppen használt modulokat Az output így néz ki: blah# lsmod Module: drv hello #pages: Used by: 1 `drv hello a modul neve, egy lap (``page, 4k) memóriát használ és egyetlen másik kernel modul sem támaszkodik rá pillanatnyilag. A `rmmod drv hello távolítja el a modult Figyeljük meg, hogy az rmmod egy modul nevet vár, nem egy fájlnevet. Az elõbbit az lsmodlistájából lehet megtudni. A többi modul segédprogram is dokumentálva van a manual oldalakon. 9.2 Kernellel terjesztett modulok A 2.030 verziótól kezdve majdnem minden elérhetõ modul formában is

Használatuk a következõ: ne konfiguráld bele a kernelbe, azaz ne mondj rá y-t a `make config alatt. Fordíts egy új kernelt és bootolj vele újra. Menj be megint az /usr/src/linux-ba és add ki a `make modules parancsot. Ez lefordítja az összes olyan modult, amely nem szerepelt a kernel konfigurációban és linkeket helyez el rájuk az /usr/src/linux/modules könyvtárban. Lehet õket közvetlenül innen is használni, vagy kiadhatod a `make modules install parancsot, ami elhelyezi õket a /lib/modules/x.yz könyvtárban, ahol xyz a kernel verziója. Ez különösen a fájlrendszerek esetén lehet kényelmes. Bizonyos fájlrendszereket általában ritkán használnak. Például ha a kezembe kerülne egy msdos floppy, akkor annyit tennék, hogy insmod /usr/src/linux/modules/msdos.o, aztán rmmod msdos ha végeztem Ez az eljárás kb. 50k memóriát szabadít fel a szokásos mûködés közben Egy megjegyzést kell tenni a minix fájlrendszerrel kapcsolatban: a

``mentõlemeznek készített kernelbe mindig közvetlenül bele kell fordítani. 10. EGYÉB KONFIGURÁCIÓS OPCIÓK Ez a fejezet bizonyos, a konfigurációról szóló fejezetben nem említett opciók leírását tartalmazza. Az eszközmeghajtók nagy része nincs itt felsorolva 10.1 Általános beállítások Normal floppy disk support (``Normál floppy lemez támogatás). - Elolvashatod a drivers/block/README.fd fájlt is; ez különösen IBM Thinkpad felhasználóknak lehet fontos. XT harddisk support (``XT merevlemez támogatás) - ha akarod használni azt a 8 bites XT vezérlõt, ami csak a port fogja a sarokban. PCI bios support (``PCI BIOS támogatás) - kipróbálhatod, ha PCI alaplapod van, de légy óvatos, néhány régi PCI alaplap lefagy ezzel az opcióval. A PCI busz Linux alatti használatáról több információ található a PCI HOWTO-ban. Kernel support for ELF binaries (``ELF bináris támogatás) - Az ELF egy erõfeszítés a bináris programok architektúrák

és operációs rendszerek közötti hordozhatóságának megteremtésére. A Linux is ebbe az irányba halad, ezért ez minden bizonnyal kell Set version information on all symbols for modules - a múltban a kernel modulokat újra le kellett fordítani minden új kernelhez. Ha y-t választasz, akkor lehetõvé teszi egy másik verzió alatt lefordított modulok használatát. Több információ a READMEmodulesben van 10.2 HÁLÓZATI OPCIÓK A hálózati opciók a NET-3-HOWTO-ban (vagy a NET-valami-HOWTO-ban) vannak leírva. 11. TIPPEK ÉS TRÜKKÖK 11.1 A make és patch parancsok kimenetének átirányítása Ha szeretnéd nyomonkövetni, hogy mit mûvelnek a `make vagy `patch parancsok, átirányíthatod a kimenetüket egy fájlba. Elõször derítsd ki milyen shellt használsz: `grep root /etc/passwd és keress valami olyasmit, hogy `/bin/bash. Ha sh-t vagy bash-t használsz, akkor a (command) 2>&1 | tee (output file) parancs fog egy másolatot küldeni a (command)

parancs kimenetérõl az `(output file) fájlba. csh vagy tcsh esetén használd a (command) |& tee (output file) parancsot. A zsh-t használókat nem éri váratlanul, hogy a fentiek közül bármelyik helyes ;-) rc esetén (megjegyzés: nem hiszem, hogy rc-t használsz): (command) >[2=1] | tee (output file) 11.2 Feltételes kernel installálás A floppy-k használatán kívül még több módszer van arra, hogy anélkül próbáljuk ki az új kernelt, hogy a régihez hozzányúlnánk. Sok más UNIX változattól eltérõen a LILO képes arra, hogy bárhonnan a merevlemezrõl elindítson egy kernelt. (Ha nagy (500 MB vagy nagyobb) merevlemezed van, olvasd el a LILO dokumentácíót, mert ez gondot okozhat). Ha az alábbiakhoz hasonlót fûzöl a LILO konfigurációs fájl végére, akkor úgy választhatsz egy frissen fordított kernelt, hogy nem nyúlsz a régi /vmlinuz-hoz: (persze elõbb futtatni kell a lilo-t.) image = /usr/src/linux/arch/i386/boot/zImage label = uj kernel

A legkönnyebben úgy lehet a LILO-t az új kernel indítására utasítani, hogy lenyomod a shift billentyût bootoláskor (amikor csak annyi van a képernyõn, hogy LILO). Megjelenik egy prompt, ekkor be lehet írni, hogy `uj kernel, hogy az új kernelt indítsa. Ha több különbözõ kernel forrását szeretnéd megtartani a gépeden egyszerre (ez nagyon sok helyet foglal, légy óvatos), akkor a legegyszerûbb elnevezni az õket tartalmazó könyvtárakat /usr/src/linux-x.yz, formában, ahol xyz a kernel verziója Ekkor egy szimbólikus linkkel lehet választani közöttük. Például az `ln -sf linux-122 /usr/src/linux parancs az 1.22 verzió forrását teszi aktuálissá Mielõtt létrehozol egy ilyen szimbólikus linket, bizonyosodj meg arról, hogy az ln utolsó argumentuma nem egy létezõ könyvtár (régi szimbólikus link is lehet), mivel az eredmény nem az lenne amire számítasz. 11.3 Kernel frissítések Russell Nelson (nelson@crynwr.com) összefoglalja az új

kernelverziók változásait Ezek rövidek, érdemes beléjük pillantani egy upgrade elõtt. Letölthetõ anonymous ftp-vel a ftp.emlistcom/pub/kchanges címrõl, vagy a következõ URL-rõl: http://www.crynwrcom/kchanges