I. A Linux operációs rendszer alapjai
1
Ajánlott irodalom: Regele György: Linux az iskolában (APCStúdió, Gyula) Henczi Béla – Molnár Hajnalka: Tanuljunk Linuxot! (szerzői kiadás, 2000) Molnár Hajnalka: A Linux operációs rendszer alapjai (Kossuth Kiadó, 2002) Pere László: Linux felhasználói ismeretek I. (Kiskapu Kft., 2002)
B EVEZETÉS I. Ismétlés 1. Hardver: a számítógép és a hozzá kapcsolódó elektromos és mechanikus alkatrészek összefoglaló elnevezése 2. Szoftver: a hardvert működtető programok, a hozzájuk tartozó adatok és dokumentációk összefoglaló elnevezése A szoftver szellemi termék, ezért általában védi a szerzői jogi törvény, és birtoklásának, valamint használatának feltételeit egy licence szerződés szabályozza Jogtiszta szoftver: az a szoftver, amelyet a licence szerződésben foglaltaknak megfelelően birtokolunk és használunk. A szoftverek néhány csoportja a hozzájuk tartozó licence szerződés alapján Hagyományos (kereskedelmi) szoftver esetében a felhasználó általában csak egy gépre kapja meg a szoftver használati jogát, pénzért (ingyen legálisan csak ajándékozás révén juthat hozzá); a szoftvert nem másolhatja (kivéve a saját részre történő biztonsági másolat készítését) és nem adhatja tovább anélkül, hogy el ne veszítené a használati jogot; nem kapja meg a program forráskódját, és törvényellenes annak bármilyen módon történő megszerzése; a programot nem módosíthatja (még javító szándékkal sem). Shareware szoftver valamilyen (időbeli vagy funkcionalitásbeli) korláttal van ellátva a korlátot a szoftver megvásárlásával (ingyen vagy pénzért történő regisztrálásával) lehet megszüntetni a felhasználó csak a használati jogot kapja meg, ingyen a forráskódhoz nem lehet hozzáférni, így megváltoztatni sem lehet azt ha a szoftver időbeli korláttal van ellátva, annak letelte után meg kell vásárolni vagy regisztrálni kell, különben használata jogellenessé válik a szoftver készítője rendelkezik a szerzői joggal Freeware szoftver teljesen ingyen lehet megszerezni a korlátozás nélküli használati jogot a forráskódja nem hozzáférhető a szerzői jog a készítőé Public domain szoftver ingyen és korlátozás nélkül használható még a forráskódja is a szerző lemond a szerzői jogáról visszaélésekre ad lehetőséget, mert csekély változtatással vagy más programba beépítve, gyakorlatilag munka nélkül lehet megszerezni az ilyen szoftver fölötti szerzői jogot Béta verziójú szoftver egy nagyobb szoftver végleges változata előtti, tesztelési célú próbaváltozata korlátozás nélkül, általában ingyen használható a forráskódja nem hozzáférhető
I. A Linux operációs rendszer alapjai
2
a végleges változat megjelenése után használata általában jogellenessé válik Szabad szoftver használatát a Szabad Szoftver Alapítvány által létrehozott GNU projekt licence, a GPL (General Public License) szabályozza a szerző megtartja a szerzői jogot (tehát nem public domain) olyan szoftver, amelyet bárki bármilyen céllal futtathat, működését megismerheti (mert a forráskódja is szabadon hozzáférhető), tanulmányozható, módosítható, fejleszthető, szabadon továbbadható, akár ingyen, akár pénzért (de csak úgy, ha minden kapott jogot továbbadunk változatlanul) ha a szabad szoftver forráskódján változtatunk, és úgy adjuk tovább, a változtatást a forráskódban meg kell jelölni Egyik típusú szoftver szerzője sem vállal semmilyen felelősséget a szoftver használatából adódó esetleges károkért A szoftverek csoportosítása azok funkciói alapján: Operációs rendszer: Olyan programok együttese a számítógépben, amely a programok végrehajtását vezérli, ütemezi elosztja az erőforrásokat, biztosítja a felhasználó és a számítógép közötti kommunikációt. Az operációs rendszerek feladatai között nagyon fontos helyet foglal el az adatok és programok háttértárakon történő tárolását lehetővé tevő fájlrendszer létrehozása és karbantartása Néhány konkrét operációs rendszer: Microsoft DOS, Microsoft Windows, Unix, Minix, Linux, OS/2, BSD, VMS stb. Rendszerközeli programok: az operációs rendszer használatát megkönnyítik, annak alapfunkcióit, lehetőségeit kiegészítik, de nem részei annak A rendszerközeli programok két csoportja: Segédprogramok vagy szervizprogramok: fájlkezelő, tömörítő, vírusellenes és hasonló programok ∙ néhány konkrét segédprogram: Total Commander, Midnight Commander, WinZip, gzip, vírusellenes programok stb. Fejlesztői rendszerek: programok készítését, fejlesztését teszik lehetővé ∙ Elsősorban a programozók használják. ∙ A fejlesztői rendszerek legfontosabb elemei: ∘ Editor (egyszerű szövegszerkesztő): olyan program, amellyel a programlistát valamilyen programnyelven el lehet készíteni ∗ Az editorok csak formázatlan szöveget (karaktereket) tartalmazó szövegfájlt készítenek. ∗ A legtöbb programozói editor tartalmaz olyan segédeszközöket is, amelyekkel a programhibák könnyebben felderíthetők és javíthatók ∘ Compiler (fordítóprogram) vagy interpreter (értelmező): a valamilyen programnyelven megírt programot lefordítja gépi kódra (a gép által érthető jelsorozatra) ∗ a fordítóprogram a teljes programot egyszerre fordítja le gépi kódra, míg az értelmező utasításonként teszi ugyanezt ∘ Linker (összeszerkesztő): a gépi kódra lefordított programokból futtatható programot készít ∙ A fejlesztői rendszerek mindig valamilyen programozási nyelvre épülnek. ∘ Néhány konkrét, fejlesztői rendszer alapjául szolgáló programozási nyelv:
I. A Linux operációs rendszer alapjai
3
Comenius Logo, Imagine Logo, Visual Basic, Turbo Pascal, Delphi, Java, C, PHP, Perl stb. Felhasználói programok: speciális feladat megoldására készült programok A programok többsége felhasználói program: szövegszerkesztő, táblázatkezelő, adatbázis kezelő, rajzolóprogram, oktatóprogram, tervezőprogram stb. néhány : MS Word, MS Excel, MS PowerPoint, OpenOffice.org Writer, OpenOffice.org Calc, OpenOffice.org Impress, Gimp, Paint, Tetris stb. II. Az operációs rendszerek csoportosítása 1. a kezelőfelület szerint: grafikus felület: szép, színes háttér, egérhasználat, ablaktechnika, ikonok, gombok, menük jellemzik, általában egérkattintással lehet parancsokat kiadni, felhasználóbarát, könnyű kezelni pl.: Windows, Mac OS, Linux (valamilyen grafikus felülettel) karakteres (konzolos, parancssori) felületű: egyhangú, általában feketefehér, csak karakterek jelennek meg rajta az utasításokat, parancsokat pontosan kell begépelni, és Enterrel kell lezárni összetett, bonyolult utasítások is kiadhatók, nagy hatékonysággal lehet a számítógépet vezérelni nem felhasználóbarát pl.: MS DOS, a Linux karakteres felülete a Linux karakteres felülete kétféle módon érhető el: a grafikus felületen egy Terminál ablakban vagy a CtrlAltF1 vagy CtrlAltF2 vagy CtrlAltF3 vagy CtrlAltF4 vagy CtrlAltF5 vagy CtrlAltF6 hatására megjelenő karakteres felületen, ahonnan a CtrlAltF7tel le het visszalépni a grafikus felületre 2. A felhasználók száma alapján egyfelhasználós: egyszerre csak egy felhasználó használhatja a gépet pl.: MS DOS, Windows 95, Windows 98, Windows ME többfelhasználós (multiuser): egyszerre több (tetszőleges számú) felhasználó használhatja a gépet minden felhasználónak a rendszerbe történő belépésnél meg kell adni a felhasználónevet és a jelszót a felhasználók különböző jogokkal rendelkeznek, és mindig csak azt tehetik, amihez joguk van a felhasználók között mindig van egy kiemelt jelentőségű, akinek a rendszerben mindenhez joga van, ez a felhasználó végzi a rendszerbeállításokat és a többi felhasználó létrehozását, ad minisztrálását ennek a felhasználónak a lehetséges nevei néhány operációs rendszerben: rendszergazda (Windows NT, 2000, XP), admin (Novell Netware), root (Unix, Linux) aranyszabályok többfelhasználós operációs rendszereknél: mindig csak olyan jogú felhasználóként legyünk a rendszerben, amely jogok minimálisan szükségesek a kívánt feladat végrehajtásához ha befejeztük a munkát vagy akármilyen rövid időre otthagyjuk a gépet, mindig jelentkez zünk ki 3. Az egyszerre végezhető feladatok (futtatható programok) száma alapján: egyfeladatos: egyszerre csak egy feladat (program) futhat, pl.: MS DOS többfeladatos (multitasking): egyszerre (párhuzamosan) több programot is tud futtatni a rend
I. A Linux operációs rendszer alapjai
4
szer a megvalósítás technikája: a processzor egymás után szolgálja ki a programokat, de olyan gyorsan vált közöttük, hogy a váltásokat nem lehet érezni, hanem csak azt, hogy minden prog ram úgy érzi, mintha csak neki dolgozna a gép A folyamatok együttműködése alapján megkülönböztetünk környezetváltásos, preemptív és kooperatív többfeladatos rendszert a környezetváltásos mód egy nagyon egyszerű feladatkezelés, melyben csak az előtérben lévő program kap feldolgozási időt; ilyenkor egy háttérben lévő program aktiválásához a felhasználónak előre kell hoznia a megfelelő ablakot kooperatív esetben (például a Mac OS operációs rendszernél vagy a Windows 3.0 grafi kus felhasználói felületnél) a több program futása úgy valósul meg, hogy minden program bizonyos időnként lemond a CPU használatáról, átengedve azt egy másiknak; semmi sem kötelezi azonban arra, hogy ezt megtegye, tehát tetszőleges ideig lefoglalhatja az erőfor rást, a többi folyamatot várakozásra kényszerítve a preemptív esetben (például a Windows 95ös és újabb verzióinál, valamint a Linuxnál) az operációs rendszer magja, a kernel képes arra, hogy egy megadott idő után a CPU hasz nálati jogát elvegye az éppen futó folyamattól és egy várakozónak adja át.
A L INUX OPERÁCIÓS RENDSZER ALAPJAI I. A Linux operációs rendszer felépítése: a rendszer minden eleme a többitől függetlenül cserélhető (úgy is, hogy a rendszer zavartalanul fut, mialatt valamelyik részét frissítjük, újratelepítjük) 1. Egy Linux rendszer elemei Rendszermag (kernel): az operációs rendszer legalapvetőbb része, hardvert közvetlenül működteti, vezérli teljes egészében szabad forráskódú (szűkebb értelemben ez jelenti magát a „Linux”ot) a kernel verziószáma három (vagy négy), egymástól ponttal elválasztott részből áll: főverziószám.alverziószám.a legújabb módosítás száma.a módosítás változata (pl.: 2.6.9) ha az alverziószám (a második szám) páros, akkor stabil, ha páratlan, akkor fejlesztői vál tozatról van szó pl. 2008. szeptember 8án a legfrissebb stabil kernel verziószáma 2.6.26.5 a Linux eddigi összes kernele valamint a legfrissebb stabil és fejlesztői kernelek verziószáma az interneten a www.kernel.org lapon található meg a kernel egy része modulokba is kerülhet, amelyek csak akkor töltődnek be a memóriába, ha szükség van rájuk; ha már nem használjuk őket, kitörlődnek onnan Rendszersegédprogramok: olyan, általában C nyelven megírt programfájlok, amelyeket sok program használ minden ilyen fájl lényegében egy függvénygyűjtemény (függvénykönyvtár), amely függvé nyek bármely program által elérhetők és használhatók a „függvénykönyvtár” (angolul: library) nem tévesztendő össze a fájlrendszerben használa tos „könyvtár”ral (mappa, tartalomjegyzék, angolul: directory) hasonló a szerepük, mint a Windows operációs rendszerben a .DLL kiterjesztésű fájloknak Héj (shell): az a feladata, hogy beolvassa, értelmezze és a rendszermag számára továbbítsa a felhasználó által kiadott parancsokat lényegében az operációs rendszer parancsértelmezője és felhasználói felülete két alaptípusa van: karakteres és grafikus karakteres héj:
I. A Linux operációs rendszer alapjai
5
billentyűzettel begépelt és Enterrel lezárt parancsokkal vezérelhető az operációs rendszer által biztosított valamennyi lehetőség elérhető ilyen módon (ha megvan a megfelelő jogosultság – és tudás) kisebb programokat is lehet írni a segítségével (amihez nem kell külön programfejlesz tői környezet) többféle is van, az alapértelmezés szerinti a bash hasonlít a Windowsbeli DOSfelülethez (csak annál jóval többet tud) grafikus héj alapvetően egérrel vezérelhető az operációs rendszer nem minden lehetőségét tudjuk kihasználni, de kényelmesebb a használata az összetettebb, erőforrásigényes grafikus héjak (pl.: Gnome, KDE) rendelkeznek rájuk optimalizált külön programokkal is (amelyeket, ettől függetlenül, természetesen mind egyik grafikus héjjal lehet valahogyan futtatni), míg mások (pl.: IceWM, BlackBox stb.) kisebb erőforrást igényelnek, gyengébb gépeken is gyorsan futnak, de kevesebb extra szolgáltatással rendelkeznek vannak a Windows grafikus felületéhez hasonló kinézetű és hasonló módon működő grafikus héjak is Felhasználói programok (alkalmazások): a felhasználó igényeinek megfelelő feladatot ellátó különféle programok (pl.: szövegszerkesztők, táblázatkezelők, rajzolóprogramok, böngészőprog ramok, levelezőprogramok, zenehallgató és videolejátszó programok, játékok stb.) 2. Linux terjesztések (disztribúciók) Azok a programcsomagok, amelyeket a Linux telepítésének és használatának megkönnyítésére egyes cégek vagy egyéb, linuxos szakemberekből álló csoportok (a rendszermag és más programok felhasználásával) össze gyűjtöttek, használható rendszert állítottak össze belőlük és megfelelő telepítőprogrammal ellátva, ingyen vagy pénzért terjesztik. A disztribúciókban a rendszermag teljes egészében szabad szoftver, az egyéb szoftverek között lehetnek kereskedelmi vagy egyéb jogállású szoftverek is. Az ismertebb disztribúcióknak (pl. Slackware, Debian, Red Hat Linux, Fedora Linux, SuSE Linux, Mandrake Linux, Knoppix stb.) létezik magyarított változata is, míg vannak eredetileg is magyar fejlesztésű disztribúciók (BlackPanther Linux, UHU Linux, Frugalware Linux), amelyek a legnagyobb mértékű magyar nyelvi támogatással rendelkeznek (természetesen, az eredetileg angol nyelvű programok vagy dokumentációk magyarítása még ezekben sem teljes) Az egyes disztribúciók verziószámának semmi köze sincs a bennük lévő kernel verziószámához (pl. az UHU Linux 2008 január 20án megjelent 2.1es stabil változata a 2.6.23.9es rendszerma got használja) A disztribúciók verziói általában valamilyen fantázianevet is kapnak (pl. az UHU Linux 2.1es stabil változatának a fantázianeve: Bumm). 3. Linux Live rendszerek Bármelyik Linux disztribúció telepíthető úgy a számítógépre, hogy az addig működő (általában valamelyik Windows operációs rendszer) is használható marad. Ekkor a rendszerindításnál egy megfelelő indításvezérlő (boot manager) által megjelenített listából kell kiválasztani a használni kívánt operációs rendszert. A Linux által leggyakrabban használt indításvezérlő a GRUB (GRand Unified Bootloader, 'nagy egyesített betöltésvezérlő'). A telepítéshez azonban általában újra kell particionálni a winchestert, ami nem teljesen veszély telen (de ha kellően odafigyelünk, egyáltalán nem veszélyes).
I. A Linux operációs rendszer alapjai
6
Ezért a Linuxszal csak ismerkedni kívánó, de a telepítéssel ill. az esetleges particionálással járó munkát vállalni nem akaró érdeklődők számára olyan CDket (vagy DVDket) állítottak össze, amelyről indítva a számítógépet, egy teljes Linux rendszer indul el, anélkül, hogy a winchesterre bármit is írna (ott legfeljebb egy memóriaként használatos ideiglenes mappát hoz létre, amelyet kilépéskor nyomtalanul kitöröl). Ez a live CD (vagy live DVD). A live CD használatához be kell állítani a számítógép CMOS RAM Setupjában, hogy rendszer indításnál elsőként CDről próbálja meg a rendszerindítást. A CMOS RAM Setupot általában a gép indítása után a megfelelő pillanatban megnyomott Delete billentyűvel lehet megjeleníteni. Egy live CD mindig lassabb, mint a telepített Linux változat (mert egy CDmeghajtó lassabban működik, mint egy winchester), és jó, ha minél gyorsabb processzor és minél nagyobb memória van a gépben. Egy Linux live CD használható akkor is, ha a gépre telepített operációs rendszer teljesen hasz nálhatatlan, viszont a winchesterről értékes adatokat kell kimenteni (a Linux Live nem települ a winchesterre, de ha úgy akarjuk, olvasni tud róla). A Linux live rendszer természetesen, internetezésre is használható (alapértelmezésben egy DHCP szervertől kér IPcímet, de be lehet állítani fix IPcímeket vagy más internetelérési mó dot is). Mivel a vírusoktól és egyéb hálózati kártevőktől már a Linux sem teljesen mentes (bár nagyságrendekkel kevesebb linuxos vírus van, mint windowsos), ha internetezés közben támadás éri a gépünket, egy Reset után újra az eredeti, vírusmentes rendszerünk indul be. Ha gyakran használunk egy Linux live rendszert, azonban az alapértelmezés szerinti beállítások nem megfelelők, lehetőség van arra, hogy ezeket a beállításokat ne kelljen minden rendszerindí tás után megismételni: a beállításokat floppyra mentjük, és ezt a floppy lemezt a rendszerindítás előtt betesszük a floppymeghajtóba. Léteznek már olyan live rendszerek, amelyket egy pendrivera kell telepíteni. Természetesen, ez csak olyan gépeknél használható, amelyek képesek II. Fájlok, könyvtárak, könyvtárszerkezet, lemezmeghajtók a Linuxban 1. Fájl (file, 'állomány'): logikailag összetartozó adatok azonosítóval ellátott halmaza A fájlok azonosítója (neve) a Linuxban legfeljebb 255 karakterből állhat. A Linux a fájlnevekben megkülönbözteti a kisés nagybetűket. A Windowsban megszokott módon lehet formailag kiterjesztése is egy fájlnak (a név első része után egy pont, majd a kiterjesztés), de egy Linux rendszer nem a kiterjesztés, hanem a fájl tartal ma alapján állapítja meg annak típusát. A Linuxban egy fájl nevében lehet több pont is. Bár az újabb Windowsváltozatok is megengedik a fájlnevekben a több pontot (és a legutolsó pont utáni részt tekintik kiterjesztésnek), de ez inkább csak a bonyodalmak számát növeli, gyakorlati haszna nincs. Egy futtatható fájl (program) futtatásához a megfelelő jogosultsággal kell rendelkezni. 2. Könyvtár (directory, 'tartalomjegyzék') vagy mappa (folder): fájlok csoportosítására szolgáló gyűjtőobjektum, amely csak fájlokat vagy könyvtárakat tartalmazhat A Linux a könyvtárakat speciális tulajdonságú fájlokként kezeli. A Linux (és valamennyi, a Unixhoz hasonló operációs rendszer) a lemezeken egyetlen nagy könyvtárrendszerbe illesztve kezeli az összes fájlt, könyvtárat, lemezmeghajtókat és egyéb esz közmeghajtókat (gyakorlatilag mindent fájlnak tekint, ezért a továbbiakban a „fájl” szó a fentiek közül bármit jelenthet). 3. Könyvtárszerkezet, elérési útvonal: A Linux könyvtárszerkezetét a Unix Fájlrendszerfelépítési Szabvány (Filesystem Hierarchy Standard, FHS) határozza meg. A legtöbb Linuxdisztribúció ezt a szabványt követi. A könyvtárszerkezet hierarchikus felépítésű, amelyik a / jelű root ('gyökér') könyvtárból indul ki.
I. A Linux operációs rendszer alapjai
7
a / könyvtárban általában szabványos nevű és tartalmú könyvtárak vannak, ezért (bár rend szergazdaként lenne jogunk hozzá) kézzel nem célszerű ezektől eltérő nevű vagy tartalmú könyvtárat közvetlenül a / könyvtárban létrehozni A könyvtárszerkezetben történő közlekedés leírásához (a Windowsban megismert módon) itt is az elérési útvonalat használjuk, amelynek fő sajátosságai: az egyes szinteken lévő könyvtárakat a / (per, Shift6) jel és nem a Windowsban megszokott \ (backslash, AltGrQ) jel választja el egymástól; kétféle típusú elérési útvonal van: teljes elérési útvonal: mindig a / könyvtárral kezdődik és mindig használható; relatív elérési útvonal: az aktuális könyvtárban közvetlenül lévő könyvtár nevével kezdő dik, és csak az ezen az ágon lévő fájlok elérésére használható. Néhány speciális könyvtár (a / könyvtáron kívül): aktuális könyvtár: az a könyvtár, amelynek a tartalma a karakteres felületen kiadott ls a lis tázóparanccsal jelenik meg az aktuális könyvtár jele: . (egy pont) ha viszont egy könyvtár neve .tal kezdődik és utána más karakterrel folytatódik, azt je lenti, hogy az illető könyvtár rejtett attribútumú mivel biztonsági okok miatt az aktuális könyvtárban lévő fájlok nem érhetők el csupán a nevük megadásával (úgy, mint a Windowsban), ezért egy aktuális könyvtárbeli fájl eléré séhez a fájl neve elé karakteres felületen a ./ karaktereket is be kell gépelni az aktuális könyvtár szülőkönyvtára: az a könyvtár, amelyik az aktuális könyvtárat közvet lenül tartalmazza a szülőkönyvtár jele: .. (két pont) a szülőkönyvtár jelének felhasználásával (és megfelelő jogosultságok birtokában) akárme lyik könyvtárból akármelyik fájl egyetlen elérési útvonallal elérhető A / (root) könyvtárban található szabvány szerinti könyvtárak és azok szokásos tartalma: /bin: olyan alapvető futtatható programok (binárisok), amelyeket mindegyik felhasználó hasz nálhat úgy, mint egy Linuxparancsot vagy egy segédprogramot, a karakteres felületen kiadott megfelelő utasítással (paranccsal) /boot: a rendszer indításához szükséges fájlok helye /dev: eszközmeghajtó fájlok (a különböző eszközök kezeléséhez szükséges, azokat képviselő fájlok) ha valamelyik alkalmazás egy eszközt akar használni, akkor valójában az itt található meg felelő eszközkezelő fájlhoz fordul /etc: a számítógéppel (ill. a konkrét számítógépes rendszerrel), annak beállításával kapcsola tos fájlok rendszerkonfigurációs fájlokat tartalmaz, ezért a legtöbb esetben, ha be akarunk valamit ál lítani („linuxos módon”), akkor ebben a könyvtárban kell keresni a beállítási lehetőséget kínáló konfigurációs fájlt /home: a felhasználók saját (home), bejelentkező (login) alkönyvtárai az alkönyvtár neve megegyezik a felhasználó bejelentkezési (login) nevével minden felhasználó azt tehet a saját könyvtárában, amit akar /lib: dinamikus függvénykönyvtárak (alapvető fontosságú programkönyvtárak és kernel mo dulok) ezek segítségével érhető el az, hogy ugyanazokat az előre megírt eljárásokat több alkalma zás is használhassa az itt lévő fájlok hasonlítanak a Windowsbeli .DLL kiterjesztésű állományokhoz /lost+found: ha valamilyen rendkívüli esemény miatt a fájlrendszer megsérül, és a helyreállí tó program olyan fájlokat talál rajta, amelyeknek könyvtárstruktúrába helyezéséhez nincs elég
I. A Linux operációs rendszer alapjai
8
információja, ide teszi őket ezt a könyvtárat csak a rendszergazda (root) nézheti meg, hiszen az esetlegesen itt található fájlok hasznosításához komoly szaktudás kell az ún. naplózó fájlrendszereknél (amelyek minden, a rendszerben történt eseményt naplóz nak és egy esetleges rendszerösszeomlás után történő újraindításnál ebből a naplófájlból állítják helyre a rendszert, ilyen az újabb disztribúciókban alapértelmezett ext3 fájlrendszer is) erre a könyvtárra ritkán van szükség, ezért az általában üres /media: az újabb disztribúciókban (a FHS legújabb, 2.3as ajánlásának megfelelően) ide az induláskor automatikusan csatlakozó háttértárolók (floppy, CD, DVD, winchester) tartalma kerül /mnt: beillesztési pont az időlegesen becsatlakoztatott fájlrendszerek részére ide csatlakoztathatók a háttértárolók, és azok tartalmához így lehet hozzáférni az újabb disztribúciókban ide csak az ún. „kézi csatolású” eszközök kerülnek, az automati kus csatlakoztatás a /media könyvtárba történik /opt: a rendszerbe utólag hozzáadott, telepített alkalmazások alapértelmezésben ide kerülnek a Linuxban az alkalmazásokat akkor a legegyszerűbb telepíteni, ha az adott disztribúció csomagkezelője által kezelhető programcsomagok formájában léteznek az újabb disztribúciókban általában nem használják ezt a könyvtárat, ezért az alapértelme zésben mindig üres /proc: a futó folyamatok (processzek) állapotáról információkat tartalmazó fájlok gyűjtemé nye a számítógép alkatrészeiről találunk itt adatokat, a legtöbb alkalmazás is innen olvassa ki a gép tulajdonságait az itt lévő fájlok a rendszerindítás során létrejövő szöveges állományok ezt az egész könyvtárat virtuális (látszólagos) fájlrendszernek nevezzük és csak az operáci ós rendszer használhatja /root: a root (rendszergazda) felhasználó saját (home) bejelentkezési (login) könyvtára /sbin: a rendszergazda által használható, a rendszerindításhoz és rendszerkarbantartáshoz használt rendszeradminisztrációs parancsok gyűjteménye /srv: az adott rendszer adott állapotában megvalósított ún. helyzetspecifikus adatokat tartal maz pl. ha az Apache webszerverprogram fut a rendszerben, akkor a /srv/www lesz a szerver dokumentumgyökérkönyvtára (vagyis az ebben a mappában elhelyezett /sys: a rendszerben megtalálható hardver eszközökről tartalmaz adatokat /tmp: a rendszer működése során keletkező átmeneti adatokat tartalmazó könyvtár ennek a könyvtárnak a segítségével lehet rendet tartani az egyes alkalmazások háza táján, mert mindegyik ebbe a könyvtárba „szemetel” és a könyvtár tartalma a rendszerindításkor törlődik /usr: az általános felhasználói alkalmazásokat és azok adatait (pl. forráskódjukat) tartalmazza általában ez az egyik legnagyobb könyvtár, amelynek legáltalánosabb alkönyvtárai és azok tartalma: /usr/bin: parancsok /usr/sbin: rendszerparancsok /usr/lib: függvénykönyvtárak /usr/doc: dokumentációk /usr/man: kézikönyvek (manuálok) /usr/src: forráskódok /usr/spool: ideiglenes fájlok az újabb disztribúciók a /opt könyvtár helyett a /usr könyvtár alkönyvtáraiban tartalmazza
I. A Linux operációs rendszer alapjai
9
az utólag hozzáadott alkalmazások jellemzőit /var: a rendszer működése során állandóan változó rendszeradatokat (pl. a naplóállományo kat) tartalmazza 4. Lemezmeghajtók: A háttértárolók azonosítása nem a Windowsban megszokott módon (az angol abc betűivel) tör ténik. A floppy lemez és a CD, DVD lemez esetében a fizikailag egy egységet képező háttértároló logi kailag is egy egységnek számít, míg a winchester esetén lehetőség van azt logikai lemezrészekre (partíciókra) osztani. Ha nem osztjuk az illető winchestert partíciókra, akkor is van rajta egy par tíció, amely a teljes lemezt elfoglalja. A winchester partíciókra történő felosztását hívjuk particionálásnak. Minden winchesteren legfeljebb négy elsődleges partíció, vagy legfeljebb három elsődleges és egy kiterjesztett partíció lehet. A kiterjesztett partíciót további, tetszőleges számú logikai meghajtóra oszthatjuk (amelyeket ugyanúgy kezelhetünk, mint az elsődleges partíciót). A Windows csak elsődleges partícióra hajlandó települni, és egy winchesteren általában csak egy elsődleges partíciót tud kezelni, míg a Linux tetszőleges partícióra kerülhet és lemezen ként több elsődleges partíciót is tud kezelni. Floppymeghajtóból egy számítógépben legfeljebb kettő lehet. Ezek egy szalagkábellel csatlakoz nak az alaplaphoz. Azt a meghajtót, amelyik a szalag végéhez csatlakozik, elsődleges floppy meghajtónak nevezzük (a Windowsban ez az A: meghajtó), a másikat pedig másodlagos floppy meghajtónak nevezzük ( a Windowsban ez a B: meghajtó). Megfelelő beállítással a két floppy meghajtó betűjele felcserélhető a Windowsban. A leggyakrabban használt számítógépeknél winchesterből, optikai (CD, DVD)meghajtóból vagy nagy kapacitású floppymeghajtóból (LS 120as, Zip drive stb.) összesen legfeljebb 4 darab lehet (ezek az ún. IDE csatolású eszközök). Ezek az alaplapra két szalagkábellel csatlakoznak (tehát mindkét szalagkábelre egyenként legfeljebb 2 eszköz kapcsolható). Az egyik szalagkábelen lévő eszközök az elsődleges (primary), a másikon lévők a másodlagos (secondary) eszközök. Mind az elsődleges, mind a másodlagos eszközöket magán az eszközön található kis rövidre záró dugók (jumperek) beállításával lehet megkülönböztetni: „mester” (master) vagy „szolga” (slave) lehet (függetlenül attól, hogy melyik a szalagkábel melyik csatlakozójához kapcsolódik). Így tehát ezen eszközök 4 darabjának magyar (és angol) neve: elsődleges mester (primary master), elsőd leges szolga (primary slave), másodlagos mester (secondary master), másodlagos szolga (secon dary slave). A Linuxban a háttértárolók eszközmeghajtói a /dev könyvtárban találhatók, a következő fájlok ban: /dev/fd0: az elsődleges (a Windowsbeli A:) floppy meghajtó /dev/fd1: a másodlagos (a Windowsbeli B:) floppy meghajtó mindkét floppy meghajtónál, a benne lévő, meghatározott kapacitású lemez eszközmeghaj tója más, pl. az elsődleges meghajtóban lévő, 1,44 MB kapacitású floppylemezé: /dev/fd0h1440 /dev/hda: a primary master meghajtó /dev/hdb: a primary slave meghajtó /dev/hdc: a secondary master meghajtó /dev/hdd: a secondary slave meghajtó ha valamelyik fenti IDE csatolású eszköz winchester, akkor annak a partícióinak külön eszközmeghajtója van, pl. ha a primary master meghajtó winchester, annak az első partíci ójának eszközmeghajtója: /dev/hda1, a második partícióé /dev/hda2 stb. Ha az IDE eszközök között egy CDROM, CDíró ill. DVDmeghajtó van, annak az eszköz meghajtója: /dev/cdrom, /dev/cdwriter ill. /dev/dvd. Ha az IDE eszközök között több CDROM, CDíró ill. DVDmeghajtó van, annak az eszköz
I. A Linux operációs rendszer alapjai
10
meghajtója a /dev/hda, /dev/hdb, /dev/hdc és a /dev/hdd eszközmeghajtók közül az, ahova az illető eszköz csatlakoztatva van. A legtöbb, általánosan használt, nem szerver célú disztribúcióban a floppy, winchester és opti kai meghajtók a rendszerindításnál automatikusan becsatolódnak a könyvtárszerkezetbe (ez az ún. „automount”), ezért az illető meghajtókban lévő lemezek tartalma itt lesz hozzáférhető és (a jogosultságoktól függően) használható, mégpedig a /media könyvtár alkönyvtáraiba a következőképpen: ha egy floppymeghajtó van (gyakorlatilag csak ez az eset fordul elő), az a /media/floppy könyvtárba csatolódik ha csak egy optikai (CD vagy DVD) meghajtó van, az a /media/cdrom alkönyvtárba csatoló dik be ha több optikai meghajtó van, az első után becsatolódó a /media/cdromhda, /media/cdromhdb, /media/cdromhdc vagy /media/cdromhdd könyvtárak közül a megfelelőbe csatlakozik a merevlemezes meghajtók partíciói a /media/diskhda1, /media/diskhda2, …., /media/disk hdb1, /media/diskhdb2, …, /media/diskhdc1, /media/diskhdc2, …, /media/diskhdd1, /me dia/diskhdd2, … könyvárak közül a megfelelőbe csatlakozik (pl.: a /media/diskhda2 könyv tár a primary master csatlakozón lévő winchester második partícióját jelenti) Ha a számítógépben SATA csatolású winchester van, a megfelelő könyvtárak nevében a „hd” karakterek helyett „sd” karakterek szerepelnek (pl.: /dev/sda, /dev/sdb, … , /media/sda1 stb.). Sőt, az újabb disztribúciókban mindegyik (nem csak a SATA csatolású) winchesterek és flash memória alapú háttértárolóknál (ilyen pl. a pendrive) hasonló a helyzet. III. Jogok (jogosultságok) a Linuxban 1. Alapok A Linux többfelhasználós (multiuser) operációs rendszer, ezért csak valamilyen felhasználónév (és a hozzá tartozó jelszó) megadása után lehet használni. A fájlokhoz ill. a könyvtárakhoz tartozó hozzáférési jogosultságok meghatározzák, hogy melyik felhasználó melyik fájlon ill. könyvtáron milyen műveletet hajthat végre. A Linuxban a jogok (mint általában a többfelhasználós operációs rendszerekben) a rendszer fájl szintű védelmét biztosítják. Minden felhasználó (user) egy csoporthoz (group) tartozik. A felhasználók csoportokba sorolása azt a célt szolgálja, hogy több felhasználónak lehessen viszonylag gyorsan és egyszerűen ugyanazokat a jogosultságokat adni Ha a felhasználónak nem adunk meg csoportot, automatikusan a users csoportba kerül. Minden fájlnak és könyvtárnak van egy tulajdonosa. Ez vagy a rendszergazda (root felhasználó) vagy az a felhasználó, amelyik létrehozta az illető fájlt. 2. A Linux a fájlokhoz és könyvtárakhoz való viszonyuk alapján a következő felhasználótípuso kat különbözteti meg (zárójelben az angol név és rövidítés): az a felhasználó, aki a fájl ill. könyvtár tulajdonosa (user, u), az a csoport, amelyikhez a fájl ill. könyvtár tulajdonosa tartozik (group, g), a többi felhasználó (others, o), minden felhasználó (all, a). 3. A fájlokkal és könyvtárakkal három dolgot tehetnek a felhasználók (zárójelben az angol elne vezés és rövidítés): olvasás (read, r), írás (write, w), végrehajtás (execute, x). Mindegyik felhasználótípusra különkülön be lehet állítani ezeket az engedélyeket. A jogok jelentése a fájloknál: olvasás: meg lehet nézni a fájl tartalmát írás: módosítani és törölni lehet a fájlt végrehajtás:
I. A Linux operációs rendszer alapjai
11
ha futtatható program, akkor lehet futtatni; ha nem futtatható program (vagyis dokumentumfájl), akkor vagy egy általános megjelení tőprogrammal vagy az illető fájltípus speciális kezelőprogramjával lehet a fájl tartalmát megjeleníteni A jogok jelentése a könyvtáraknál: olvasás: a könyvtár tartalma kilistázható, írás: az adott könyvtárban bejegyzéseket (fájlokat, könyvtárakat) tudunk létrehozni, módosíta ni és törölni, és törölhetjük magát a könyvtárat is, végrehajtás: beléphetünk a könyvtárba és hozzáférhetünk benne lévő fájlokhoz (ha azokhoz megvan a megfelelő jogunk). 4. A jogok megadása a gyakorlatban mindegyik felhasználótípusnál (u, g, o, a) vagy a jogokat jelen tő betűk (r, w, x) ill. a megfelelő jog hiányát jelző karakter vagy a különféle kombinációknak meg felelő szám megadásával lehetséges. A kétféle megadási mód kapcsolata: 0 semmilyen jog nincs 1
x
végrehajtási jog
2
w
írási jog
3
w
x
végrehajtási és írási jog
4
r
olvasási jog
5
r
x
olvasási és végrehajtási jog
6
r
w
olvasási és írási jog
7 r w x olvasási, írási és végrehajtási jog A kódszámok fejben történő kiszámításához elég csak annyit megjegyezni, hogy az olvasási jog értéke 4, az írási jogé 2, a végrehajtási jogé pedig 1, és több jog esetén ezeket kell összeadni. IV. A Linux története (a hup.hu webhely alapján) 1. Előzmények: a Unix története (kiegészítve a számítástechnika történetének néhány nevezetes eseményével, amelyek közül a legtöbb közvetve kapcsolódik a Unixhoz is) 1941. szeptember 9.: A New York állambeli Bronxvilleben megszületik Dennis M. Ritchie 1943. február 4.: New Orleansben megszületik Ken Thompson 1944: A New York állambeli White Plainsben megszületik Andrew S. Tanenbaum 1953. március. 16.: New York Cityben megszületik Richard Matthew Stallman 1956: Az IBMnél dolgozó Backus megalkotja a Fortran nyelvet 1957: Elkezdődik az ALGOL fejlesztése 1958: Az MITn (Massachusets Institue of Technology) McCarthy kidolgozza a LISP programnyelvet 1961: Az MITn elkészül az IBM 709en futó Compatible Timesharing System (kompatibilis időosztásos rendszer) 1962. november: Licklider felveti a MAC (Multiple Access Computers) projekt ötletét 1964: Az IBMnél George Radin megtervezi a PL/I programnyelvet (Programming Language #1) A MACprojektből nőtt ki a „Multics” (Multiplexed Information and Computing Service) nevű időosztásos operációs rendszer projektje Stallman 11 évesen elolvassa az IBM 7094 kézikönyvét 1965: A Multicscsapat a PL/I nyelv optimalizálásán dolgozik Az AT&T Bell Laboratories csatlakozik a General Electrics és az MIT közös Multics projektjéhez
I. A Linux operációs rendszer alapjai
12
1966: Ken Thompson végez a Berkeleyn, a Bellnél kap állást, és a Multicsprojekten kezd dolgozni 1967: Ritchie végez a Harvardon, a Bell Labshoz szerződik Linus szülei egy protestáns gyűlésen találkoznak 1969: április: Az AT&T Bell Laboratories úgy dönt, hogy visszahívja kutatóit a Multicsprojektből. Ezen kutatók egyike volt Ken Thompson, aki PDP7 assemblerben elkezdi a legelső Unix rendszer (ahol az 'Uni' 'egy'et jelent) fejlesztését (a Space Travel játék futtatásához). Az ARPAnet projekt indulása. december 28: A finnországi Helsinkiben megszületik Linus Benedict Torvalds, apja Nils (Nicke) rádióriporter; anyja Anna (Mikke); az anyanyelve svéd; szülei korán elváltak, apja a Szovjetunióba ment Ken Thompson, a Multics nyomdokain haladva egy PDP7en egy hónap alatt megírja az első Unixot. Egyegy hétbe tellett megírni neki az eredeti kernelt, shellt, szövegszerkesztőt, és assembler fordítót 1970: Ken Thompson megírja a B nyelvet május: A Bell Laboratories 65 000 dollárért egy PDP11/20ast rendel (fő jellemzői: 24 kB RAM és 500 kB lemezterület) szeptember: A PDP11 megérkezik, de még decemberig nincs hozzá lemez Ken Thompson és Dennis Ritchie átírják a Unix rendszert egy PDP11es gépre 1971. januármárcius: A Unix újraírása a PDP11/20on A B nyelv újragondolása: byteközpontúság és lebegőpontos műveletek (tervezett) támogatása, végül a C nyelvhez vezetett. Dennis Ritchie elkezdi írni az „NB”t (új B). Az MITn Richard M. Stallman az ITSt (Incompatible Timesharing System, 'inkompatibilis operációs rendszer') kezdi készíteni (a PDP gépen a gyártó DEC cég operációs rendszere helyett ezt kezdték el használni) november 3: Az 1. (Bben írt) Unixverzió (a több mint 60 parancsot megvalósító kernel kb. tízezer sor) 1972: Dennis Ritchie megalkotja a C nyelvet december 6: A 2. Unixverzió jobbára Thompson munkája, és Cben íródott 1973. augusztus 31: A Unix kernel Cbeli újraírása november: A 4. Unixverzió 1974: A UNIXról az első részletes publikáció megjelenik. Akkoriban az AT&T ki volt tiltva a számítástechnikai piacról (így nem árulhatta pénzért a UNIXot), ezért a forráskódot ingyen bocsátották az egyetemek rendelkezésére. Mivel akkoriban az egyetemeken szinte csak PDP11es gépek voltak nagyon sok helyen kezdték el használni a UNIXot. Rövid idő alatt több, mint 500 különböző változat jön létre. május 15: A Columbia egyetemen megalakul a Unix User Group (a Usenix Association elődje) június: Az 5. Unixverzió 1975. május: A 6. Unixverzió A kaliforniai Berkeley Egyetemen olyan új tulajdonságok kerülnek bele a Unix rendszerbe, amik széles körben elfogadottá válnak. Ekkor adják ki az első BSDt (Berkeley Software
I. A Linux operációs rendszer alapjai
13
Distribution). ősz: A 6. Unixverzió telepítése a Berkeley új PDP11/70es gépén. Ken Thompson Berkeley ben sorról sorra ismerteti a forráskódot A 21 éves Bill Joy lediplomázik a Berkeleyn 1976: Stallman TECOban (ez egy editor) megírja az első Emacsot (ez is egy speciális editor) A Xerox kifejleszti az Ethernetet szeptember: 138 intézmény licenceli a Unixot 1977 : eleje: Megjelenik az első 'Berkeley Software Distribution', benne Pascal és egy szövegszerkesztő (ex) Bill Joy megírja a vit május: Lycklama 'Mini Unix'a, a 6. verzió egy része, memóriakezelő hardver nélküli PDP11es gépekre Az Apple Computer alapítása 1978: A Unix Timesharing System (UTS) 7. verziója A K&Rféle "A C programozási nyelv" c. könyv megjelenése közepe: A második Berkeley Software Distribution (2BSD): Pascal, vi, termcap, Mail, more, csh, ex június 8: Az Intel kiadja a 16bites 8086 processzort (10 hét alatt, hézagpótlónak tervezték) A Berkeleyn a Unix 7. verziójában megjelenik a virtuális memória támogatása 1979: január: A 7. Unixverzió. Nagyméretű fájlrendszerek, korlátlan számú felhasználó, a kernel mérete még mindig csak 40kb Az AT&T Bell Laboratories elkezdi a UNIX hivatalos verzióinak kibocsátását, a rendszer használatának engedélyhez kötését (az oktatási licence szigorítását). Ez azután következhetett be, hogy az amerikai kormány részekre bontotta az AT&Tt, és az utódoknak megnyitotta az utat a számítástechnikai piac felé. Doug és Larry Michels megalapítják a Santa Cruz Operation (SCO) céget, cél: Unix portok készítése június 1: Az Intel bemutatja a 8086 8bites verzióját, a 8088at, az IBM a 'kis példányszámú' PChez a 8088at választja 1980: augusztus: Elkészül az első UNIX, ami IBM PCken működik a Xenix. Érdekes módon a Microsoft fejlesztette ki. Első változatai csak i8086os és i8088as processzoron futottak, ezért nem is volt igazi többfelhasználós. De az i80386 alapú PCk megjelenésével a Xenix is biztosítani tudta a hagyományos UNIX gépek funkcióit. A 'Xenix', alapja (részben) a BSD, a későbbiekben inkább az SCO fejleszti, a MS pedig előszeretettel használja fejlesztési és dokumentációs célokra. A SCO elkezdi terjeszteni a Microsoft Xenixet október: a Microsoft elkezdi fejleszteni a DOSt 1981: július: A Microsoft 25.000 dollárért megvásárolja a Seattle Computer 86DOSát, ezt az egyszerű CP/M 1.4utánzatot augusztus 12: Az IBM bejelenti a PCt A Free University Amsterdam 37 éves egyetemi tanára, Andy Tanenbaum, az AT&T's szigorodó licencére válaszul a Minix nevű oktatási célú operációs rendszeren kezd dolgozni 1982: február 1: Az Intel bemutatja a védett memóriamódra is képes 80286ot
I. A Linux operációs rendszer alapjai
14
Linus játékokat ír nagyapja 1980ban vett Commodore Vic 20as gépén, scifi és horror könyveket olvas Bill Joy a Berkeleyről a Sunhoz megy dolgozni Stallman elkezdi a GNUprojektet Az AT&T kibocsátja a Unix első kereskedelmi verzióját, a System 3at, amely nem volt igazán sikeres. 1983: tavasz: A 8086alapú IBM XT szeptember 27.: Stallman bejelenti a GNUprojektet Az AT&T megjelentet egy javított Unix változatot, System V néven. Ez már több kiadást is megért Release 2, 3, és 4 néven. 1984: A FORTH egy darab 80386on akár 150 felhasználót is kiszolgál január: Stallman a GNU miatt kilép az MITtől A 14 éves Linus a Vic 20as gépét lecseréli egy Sinclair QLre (lemezmeghajtó nélkül); egyetlen szoftvert vásárolnak hozzá, egy assemblert Az AT&Tt feldarabolják, a Unix teljesen kereskedelmi termékké válik, a forráskód zárt lesz A 286alapú IBM AT augusztus: PCn futó MS Xenix szeptember: Stallman elindítja a GNU Emacsot, a forrást 150$ért terjeszti 1985: Stallman megalapítja a Free Software Foundationt március: A GNU kiáltvány megjelenik a Dr Dobbs Journalban Más intézmények is felismerik a UNIX szabványosításának szükségességét. Az IEEE (Institute of Electrical and Electronic Engineers Nemzetközi Villamosmérnök Szövetség) égisze alatt kifejlesztik a BSD és az AT&T Unixverzióit közelítő POSIX (Portable Operating System) szabványt, a UNIX operációs rendszerek szabványát. Maga a szabvány több részre oszlik. Egyes részei csak a shellre és a parancsokra vonatkoznak, más részei a rendszerfelügyeletet fedik le. Bár a POSIX a UNIX rendszerek szabványa, más operációs rendszerek is támogatják például a Windows NT. Jelenleg az ANSI és az ISO is támogatja a POSIX szabványt, melynek a Linux megfelel. Szabadon terjeszthető az X Window System október 17: A 4GBot is címezni tudó Intel 80386DX december: GNU Emacs General Public License 1986: MS Xenix 286 Larry Wall elkezdi a Perl fejlesztését Andy Tanenbaum PhDt szerez a Berkeleyn, Amszterdamba költözik november: Andy Tanenbaum teljesen új Unixújrairata, a cél egy PC/XT/AT/386 platformon futó oktatási rendszer, a Minix a PrenticeHall kiadótól 80 dollárért szerezhető be (54k copyrightos sort tartalmaz a forráskód) 1987. január: megjelenik Tanenbaum „Operációs rendszerek: tervezés és implementáció” c. könyve február: A 110 k sornyi forráskódot tartalmazó GNU C compiler (gcc) elkezd terjedni a fejlesztők között december (?): A GNU General Public License (GPL) első említése december: Az IBM kiadja az OS/2t 1988. A 18 éves Linus elkezdi a Helsinki Egyetemet 1989:
I. A Linux operációs rendszer alapjai
15
február: A GNU General Public License 1.0 verziója SCO UNIX System V/386 A Microsoft 25 millió dollárért megvásárolja az SCO 16%át 1990. május 22.: 386ot támogató Windows 3.0 2. A Linux története 1991: január: A 21 éves Linus egy 33MHzes, 40Mb lemezzel ellátott 386SX PCt vásárol, hogy a 'Prince of Persia' játékot tudja futtatni április: Elkezdődik a Linuxötlet megvalósítása; Linus Tanenbaum könyvét (1987), Bach könyvét (1986), és Jolitz cikkeit használja fel. Linus Torvalds a 80386 processzor védett módú (protected mode), feladatváltó (taskswitching) lehetőségeivel szeretett volna megismerkedni. június: A GNU General Public License 2.0 verziója Amikor egyszer megkérdezték Linus Torvaldstól, mikor van a Linux születésnapja, azt mondta, hogy nem tudja megmondani, de egy email 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. Az első fázisban kialakuló Linux 0.01es változat még semmire sem volt használható, csak egy lépcső volt a továbbfejlesztéshez. augusztus 25: Linus javaslatokat vár a comp.os.minixen október 5én hirdette meg Linus Torvalds az első ,,hivatalos'', 0.02es Linuxot 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. A 0.03as Linuxverzió kéthárom hét alatt megszületett december: A Linux része lesz a floppylemezmeghajtó. Linus Torvalds kibocsátotta a Linux 0.10es verzióját. december 19től, a 0.11es 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. A Unix System Laboratories kibocsátja a System V Release 4et, amely egyesíti magában több rendszer vonásait. Válaszul több más cég (IBM, HewlettPackard, stb.) megalakítja az OSFet (Open Software Foundation), hogy létrehozzák saját standard UNIX verziójukat. 1992: január 15.: A Linux 0.12es változat megjelent. Ez egy elég stabil változat lett, ekkortól kezdődött el a Linux igazi hódítása. A 0.12es 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: már olyan lényeges részeket is tartalmazott, melyeket nem Linus Torvalds írt (pl. a virtuális konzolokat Peter MacDonald programozta). február 1.: Megkezdődik a Linux és a GNU egy rendszerbe gyúrása március 13.: William és Lynne Jolitz kiadja a 386BSD 0.0t március: Linux 0.95 április: A Linux 0.96on elindul az X Window A MicroSoft bejelenti a Windows NTt december: a Linux verziószáma még csak 0.99pl14 volt. (A pl14 a ,,patch level 14'' rövidítése, azaz ez a 14. javított változat.) 1993: június: Az AT&T eladja UNIXát a Novellnek, így a Unix System Laboratories a Novell UNIX System's Group részévé válik. A Novell elkészíti a UnixWaret, amely a System V 4 en alapul, és kapcsolatot tud tartani a Novell NetWarerel is.
I. A Linux operációs rendszer alapjai
16
október: A Novell átruházza a UNIX név használatának jogát az X/Openre, amely egy nemzetközi szabványügyi szervezet. ,,Az X/Open a POSIX ajánlásokat továbbfejlesztve és a legfontosabb gyártókkal konzultálva fejlesztette ki az úgynevezett Spec 1170 ajánlást, ami jelenleg a UNIX minősítés alapját képezi.'' Ezt más néven UNIX 95 szabványnak is nevezik. Jelenleg is elég sokféle UNIX van forgalomban, a nagyobb számítógépgyártó cégeknek van saját UNIXa, pl.: IBM (AIX), HewlettPackard (HPUX), Sun Microsystems (Solaris és SunOS), Novell (Unixware), Silicon Graphics (Irix). Ezek a kereskedelmi Unixok, de vannak szabad forráskódú Unixok is (pl.: Linux, FreeBSD). Hazánkban 1993ban 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. 1994: január: Debian 0.91 verzió Marc Ewing elkezdi a Red Hat GNU/Linux disztribúciót március 14.: Linux kernel 1.0.0 (mérete 1Mb), teljes körű a POSIX szabványosítás. 1995. március: Linux kernel 1.2 ( a mérete 2Mb) 1996: május 9: Linus Torvalds a pingvint ('Tux') javasolja a Linux kabalaállatául június: Egyeztetés, hogy 'LiGNUx' legyene a GNU/Linux neve június 9: Linux 2.0, jelentős javulások, 5Mbos kernel. 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. október: A KDEprojekt bejelentése 1997: Miguel de Icaza elindítja a GNOMEprojektet (GNU Network Object Model Environment) május 5.: Caldera OpenLinux 1.1 május 21.: Eric Raymond megírja 'A katedrális és a bazár' c. tanulmányát 1998. április 1.: Netscape kiadja a befejezetlen Navigator 5.0 forrását 1999: január 25.: Linuxkernel 2.2.0 május: Indul a 2.3as Linuxkernel fejlesztése 2001. január 4: A Linuxkernel 2.4es verziója 2004: február 8.: Linuxkernel 2.0.40 (a 2.0ás verziójú kernelek közül a legutolsó stabil változat 2005. november 6án) február 25.: Linuxkernel 2.2.26 (a 2.2es verziójú kernelek közül a legutolsó stabil változat 2005. november 6án ) 2005: június 1.: Linuxkernel 2.4.31 (a 2.4es verziójú kernelek közül a legutolsó stabil változat 2005. november 6án) október 28.: Linuxkernel 2.6.14 (a 2.6os verziójú kernelek közül a legutolsó stabil változat 2005. november 6án) V. A Linux grafikus felülete 1. Az ablakozós rendszer lényege: A számítógép képernyője több kisebb területre (az ablakokra) van osztva, hogy a felhasználó párhuzamosan több programot futtathasson és használhasson. A rendszerhez egyszerűen kezelhető grafikus alapelemeket (pl. nyomógombok, listák, menük stb.) dolgoztak ki, amelyeket egy grafikus mutatóeszközzel (ez leggyakrabban az egér) lehet kezelni.
I. A Linux operációs rendszer alapjai
17
A grafikus alapelemek szerepe az, hogy a felhasználó előtt a képernyőn könnyen áttekinthető módon jelenjenek meg a lehetőségek és neki (minden különösebb előképzettség, parancsok és billentyűkombinációk megtanulása nélkül) csak választani kelljen közülük. Míg a Windows operációs rendszert szinte kizárólag csak ablakozós felülettel lehet használni, a karakteres felülete csak nagyon szegényes eszközkészlettel rendelkezik egy felhasználó számára, addig a Linuxnál az ablakozós felület elsősorban a kényelmet és a könnyű kezelhetőséget szolgálja, a karakteres felület segítségével az operációs rendszernek sokkal több lehetőségét ki lehet használni. A grafikus felületet igénylő programok a Linux alatt is egy ablakban futnak. 2. X Window System A Linux operációs rendszer eredetileg csak karakteres felülettel rendelkezett. A felhasználók munkájának a megkönnyítése céljából (valamint azért, hogy az eredetileg Windowsfelhasználók is könnyebben megismerhessék és használhassák a Linuxot, esetleg végleg áttérjenek rá) vezették be a Linuxban is a Unix számára az 1980as években kidolgozott X Window System nevű ablakozós rendszert. Az X Window System nemcsak egy programrendszer, hanem egy szabvány is, amely leírja, hogy két, ablakozós rendszert használó számítógép között milyen módon folyhat a kommunikáció. Ezért ez a rendszer többféle hardveren és többféle operációs rendszeren létezik, és ilyen értelemben biztosítja, hogy ugyanazok a grafikus programok többféle platformon változtatás nélkül tudjanak futni. Az X Window System képes szoftveresen váltani a grafikus rendszer három jellemzője (a grafikus felbontás, színmélység és frissítési frekvencia) között a grafikus felbontás megadja, hogy vízszintes ill. függőleges irányban hány képpont alkotja a képernyőn megjelenő képet (pl. a 800 X 600as felbontás azt jelenti, hogy a képernyőn vízszintes irányban 800, függőleges irányban 600 képpontból áll a megjelenő kép) a színmélység megadja a képernyőn egyszerre megjeleníthető színek számát azoknak a biteknek a számával, amelyeken egy képpont színét tárolja a gép (pl. a 8 bites színmélység 28=256, a 16 bites 216=65536, a 24 bites 224=16777216, a 32 bites 232=4294967296 számú egyszerre megjeleníthető színt jelent) a képfrissítési frekvencia azt adja meg, hogy másodpercenként hányszor rajzolódik ki a képernyőn megjelenő kép (pl. a katódsugárcsöves monitorok vibrálnak, és így fárasztják a szemet, ha a képfrissítési frekvencia 85 Hznél kisebb, azaz másodpercenként 85nél kevesebb alkalommal rajzolja újra a képernyőt a gép; míg a „lapos” LCD vagy TFT monitoroknál elég a 60 Hzes frissítési frekvencia is, mert azok egyáltalán nem vibrálnak) Az X Window System egy kliensszerver alapú rendszer, ahol a kliens és a szerver tud hálózaton keresztül is kommunikálni, az ún. X protokollon keresztül. A grafikus képernyőt egy szerverprogram kezeli, és minden program, amely írni vagy rajzolni szeretne a képernyőre, ezzel a szerverrel kommunikál. Ezek a programok a kliensek. A szerver mindig a helyi gépen fut. Az X Window System indítása a helyi gépen: vagy a rendszerindítás után automatikusan, vagy pedig a karakteres felületről a startx paranccsal történik egy távoli gépre történő bejelentkezéssel: a karakteres felületen kiadott X query
:1 vagy a grafikus felületen kiadott Xnest –query :1 paranccsal (a helyére a távoli gép nevét kell írni) ekkor (ha ott engedélyezve van az ilyen típusú hozzáférés) a távoli gép bejelentkező ablakát látjuk (a :1 azt jelenti, hogy ez a második grafikus képernyőn fog megjelenni, amit a CtrlAltF8 billentyűk lenyomásával lehet megjeleníteni) Az X Window System leállítása: a grafikus felület megfelelő menüpontjával vagy a CtrlAlt Backspace billentyűkkel
I. A Linux operációs rendszer alapjai
18
Az X Windows System leállítása előtt célszerű kilépni az összes grafikus programból (és menteni a szükséges adatokat), mert ha nem tesszük, az X leállításakor az ő felügyelete alatt futó grafikus programok is leállnak, miközben ekkor már nem lesz lehetőségük menteni a nem mentett adatokat (és nem kapunk figyelmeztető üzenetet sem). 3. Ablakkezelő (window manager) Az ablakkezelő lényege: Az X Window System csak egy egyszerű grafikus felhasználói felületet (Graphical User Interface, GUI) biztosít a számunkra. Az ablakok, ikonok, gombok és egyéb grafikus elemek rajzolása az ablakkezelő feladata. Az ablakkezelő egy különleges program abból a szempontból, hogy egyszerre csak egyet használhatunk, és ő kezeli a többi ablakunkat. Foglalkozik a dekorációval, keretet rak az ablakjaink köré, ezáltal lehetővé téve, hogy mozgassuk és átméretezzük azokat. Szinte mindegyik újabb ablakkezelő rendelkezik úgynevezett témázási lehetőséggel is. Ilyen témák letölthetők hozzájuk az Internetről. Az ablakkezelő főbb feladatai: ablakok mozgatása, méretezése, maximalizálása, minimalizálása ablakok elrendezése fókuszálás megoldása: ha a képernyőn az egérkurzorral mozgunk, az a terület, amely fölött éppen az egérkurzor mozog, csupán a fölé mozgatásra már legyen aktuális, vagy csak egy kattintás után kapja meg a fókuszt (= legyen aktuális, tehát lehessen használni) Az ablakkezelőt nem lehet közvetlenül indítani, azt mindig az X Window System indítja, nekünk csak (rendszergazdaként) gondoskodni kell arról, hogy egy alapértelmezett ablakkezelő elinduljon. Néhány konkrét ablakkezelő: Qvwm neve a 95 ből a q hasonlít a 9 re, míg a V a római 5 ered a megtévesztésig hasonlít más operációs (főleg a Windows) rendszerek grafikus felületéhez a leggyakrabban használt programok a bal oldalon lévő ikonokkal, dupla kattintással indíthatók el a ritkábban használt programok a képernyő alsó szélén lévő indítópult bal szélén található Start menüből indíthatók Az indítópult egyébként elrejthető, vagyis beállítható, hogy csak akkor látsszon amikor az egérkurzort a képernyő alsó szélére húzzuk. a Start menü jobb egérkattintással is elérhető (ha a képernyő egy üres részén kattintunk) a kis méretűre kicsinyített ablakok az indítópulton láthatók, ide kattintva nagyíthatók ki újra egyszerre több képernyőt kezel, ezek között vagy a képernyő jobb alsó sarkában található Fvwm (F? Virtual Window Manager) itt is rendelkezésünkre áll az indítómenü, amely általában a háttérre való jobb gombos kattintással érhető el szintén kezeli a többképernyős megoldást, amint azt a nevében található „virtuális” szó is jelzi (itt is van egy lapozóeszközt, amellyel az egyes lapok közt váltogathatunk) az Enlightenment és az fvwm95 ablakkezelők ebből fejlődtek ki Afterstep itt is megtalálhatjuk a már ismert elemeket, menüket, lapozóeszközöket nagyon erőforrásigényes program, szeret sok színnel dolgozni Enlightenment nagyon szép kinézetű, igényes ablakkezelő, remek konfiguráló programmal jelenleg ez működik együtt a legjobban a Gnomemal Twm
I. A Linux operációs rendszer alapjai
19
a Tab Window Manager kifejezés rövidítéséből származik a neve az egyik legrégebbi ablakkezelő, az X Window rendszer része. Blackbox egy kicsi, gyors, körültekintően megtervezett ablakkezelő alkalmazás munkahelyeket (workplaces) használ virtuális desktop/pager helyett Fluxbox egy újabb ablakkezelő a Blackbox 0.61.1 kódján alapul úgy néz ki, mint a Blackbox, pont úgy kezeli a stílusokat, színeket, ablakok elhelyezését, mint a Blackbox IceWM fejlesztésének fő irányvonala az volt, hogy gyors, és egyszerű ablakkezelőt nyújtson a felhasználóknak eredetileg a Motif, OS/2 Warp 4, OS/2 Warp 3 és Windows 95 felület emulálása ('utánzása') volt a célja. lehetőséget nyújt témák alkalmazására, és magunk is szerkeszthetünk ilyet minden funkció elérhető egérrel és billentyűzetről is számos nyelven beszél, többek közt magyarul is mwm (Motif Window Manager) gyors és könnyen lehet konfigurálni Window Maker hasonló az az OpenStep felülethez és néhány figyelemreméltó tulajdonsága is van KDE (K Desktop Environment) nem csak ablakkezelő, hanem egy felhasználói felületet is nyújt az egységes felületen kívül programozói felületet is biztosít az egyik legelterjedtebb ablakkezelő Gnome (GNU Network Object Model Environment) az egységes felület kialakítását tűzte ki célul. a programok egységes kinézetén kívül programozói felületet is nyújt nem tartozik hozzá ablakkezelő, azt használhatunk hozzá, amit szeretnénk az Enlightenment ablakkezelő támogatja teljes egészében a GNOMEot a KDE és GNOME programozói megegyeztek, hogy a legnagyobb mértékben együttműködnek, így a két felület alá írt programok képesek lesznek kommunikálni egymással a KDE és a GNOME jóval több, mint egyszerű ablakkezelő: mindkettő teljes értékű grafikus rendszer