Beköszöntõ © Kiskapu Kft. Minden jog fenntartva

Kedvenc operációs rendsze- rünk töretlenül fejlõdik, is- mertsége és használata egy- re jobban teret nyer az ott- honi felhasználók számí- tógépein. A Sulinet Expressz berkein belül Linuxszal értékesített számítógépek is hozzájárultak ehhez, azon- ban sokukra az a csúfos vég várt, hogy hazaszállítás után azonnal az a bizonyos másik rendszer kerül fel rájuk, a pingvinnek esélyt sem adva a bemutatkozásra. Csontos Gyula A magyar nyelven megszólaló két ([email protected]) Linuxon kívül egy újabb versenyzõ érkezett, ez a Mandrake alapokon nyugvó blackPanther-Linux. Egyelõre még csak Live-CD formában érhetõ el, fejlesztõi azonban tervezik a telepítõ- készlet kiadását is. A Linux és a hozzá tartozó programok fejlesztési üteme nagyobb, mint valaha volt, a 2.6-os sorozatú rendszermag lassanként kinövi gyermekbetegségeit, és nyu- godt szívvel használhatjuk majd min- dennapos munkánk során. Biztosan van, aki emlékszik a 2.4-es megjele- nését követõ bizonytalankodásra: a használjuk vagy ne használjuk témá- ban, volt aki kezdetektõl átállt rá, de akadt olyan is, aki csak a 10-es változat után érezte biztonságban adatait. Mindenesetre egy biztos a Linux immáron kamaszodik! Vezérfonal

Programvadászat

Debian másképpen Telepítés után Sokan azt gondolják, hogy a Debian A Knoppix teljes mértékben Debian GNU/Linux csak az elvetemült linu- kompatibilis, ennek köszönhetõen az xosoknak való, ennek cáfolatául mosta- apt forrásban fellelhetõ összes prog- © Kiskapu Kft. Minden jog fenntartva ni CD-mellékletükre feltettük a Knoppix ram rendelkezésre áll, ami valljuk meg V3.4 Linux-kiadást, ami egy CD-rõl in- nem kevés. (Jelenleg több mint 10 000 dítható „LIVE” Debian rendszer. A kí- csomagról van szó). Ennek köszönhe- váncsiskodók is kipróbálhatják, nem tõen az eddig Debiant használók egy szükséges telepíteni a merevlemezre, Knoppix rendszert is ugyanolyan mó- ha azonban valaki a kipróbálás közben rán meggyûlt a bajom, ezért a noscsi don tudnak karbantartani. Az apt-get mégis úgy döntene, hogy szeretné fel- kapcsolóval kellett indítanom. Akik kiválóan mûködik, így ha valamilyen pakolni, annak sincs semmi akadálya. esetleg kíváncsiak a linuxos ablakkeze- programot nem találunk meg, de mi lõk sokféleségére, azok szintén ebben a menüben adhatják meg, melyik in- duljon el. Ezt a desktop=valami (mely- ben a valami az ablakkezelõ neve) pa- ranccsal érhetjük el. Alapértelmezettként egyébként a KDE 3.4-es grafikus környezet indul el, ez eléggé memóriaigényes, amit a várako- zási idõ hosszúságán is lemérhetünk. Alkalmazásokkal bõven el vagyunk látva, található benne minden mi szem szájnak ingere: szövegszerkesztõ, bön- Rendszerigény gészõ, levelezõ, csevegõ, grafikai és mégis szeretnénk használni, akkor A rendszer kipróbálásához egy még sorolhatnám miféle programok. az apt-get update után az apt-get Pentium II-es kategóriájú gép és mini- install csomagnév segítségével tele- mum 128 MB memória szükséges. Ha Beállítás píthetjük. A Knoppix kínál erre egy valaki nem rendelkezik SWAP lemez- Az ablakkezelõk menüjébõl érhetõ el felhasználóbarátabb módszert is, ez résszel, akkor a 256 MB memória a leg- egy Knoppix almenü, ebben nagyon pedig a KPackage. kevesebb, ekkora szükséges ahhoz, sok hasznos beállítóprogram található, Mindent összevetve, mindenkinek hogy maga a rendszer és az alkalma- ezek a kezdõ felhasználók életét igen- ajánlom a Knoppix rendszer kipróbá- zások is elférjenek a fizikai memóriá- csak megkönnyíthetik. Például ilyen lását. Sajnos nem beszél magyarul, ezt ban, mivel csodák nincsenek, több me- alkalmazás a hálózati beállítóprogram a kellemetlenséget megszüntethetjük, móriaigényes program egy idejû futta- (netcardconfig), mellyel gyerekjáték ha telepítés után ki adjuk az apt-get tásához még több memória szükséges. a hálózati kártyánk beállítása. Esetleg install kde-i18n-hu parancsot, ez- van GPRS kapcsolatunk is? Erre is után beállíthatjuk a KDE-t, hogy ékes A rendszer indítása akad megoldás, a GPRS connection. anyanyelvünkön szólítson meg ben- Rendszerünket állítsuk be olyan mó- nünket. don, hogy a korongról induljon. Ha si- Telepítés Jó szórakozást! keres a rendszerindítás, akkor egy sok- A knx2hd parancs kiadása után, pár féleképpen paraméterezhetõ indítási kérdésre választ kell adnunk a rend- Csontos Gyula menüben találjuk magunkat. A kapcso- szerünket illetõen, majd egy viszony- ([email protected]) lókat az F2 és F3 billentyûvel érhetjük lag hosszadalmas fájlmásolás kezdõ- A Linuxvilág szakmai és el. Akad belõlük bõven, és a neveik dik, ennek befejezésekor Knoppix CD-szerkesztõje. Szabadide- magukért beszélnek. Nekem a 2.6-os rendszerünk a merevlemezrõl in- jében szívesen mászik rendszermaggal az SCSI felismerése so- dítható lesz. hegyet és kerékpározik.

6 Linuxvilág Hír-lelõ

Újabb VAIO-családtag Gyorsuló Chello A Sony Japan VAIO Pocket néven 2004. május 1-jétõl hivatalosan is gyor- újabb Apple iPod-versenytársat jelen- sabb internetelérést kapnak a Chello- tett be. A készülékbe 20 GB-os merev- elõfizetõk. A korábban egyszerûen lemez és 20 órás üzemidõt biztosító Chello néven futó csomagot ettõl kezd- ve Chello Classicnak nevezik, sebessé- ge az eddigi 512 kb/s le- töltés, illetve 128 kb/s fel- töltés helyett 768 kb/s letöltés, illetve 256 kb/s feltöltés. Aki nem elégszik meg a Classic díjcsomag 15 GB-os adatforgalmi határával, az igényelhet 20 GB-os adatforgalmat és 1024 kb/s letöltési, illetve 512 kb/s feltöltési se- bességet kínáló Chello Plus csomagot is. Az átállás részeként a UPC már hó- © Kiskapu Kft. Minden jog fenntartva akkumulátor kerül, kijelzõje 320×256 napok óta folytatja kábelmodemjeinek képpont megjelenítésére képes, továb- korszerûbb készülékekre való lecseré- bá rendelkezik egy Memory Stick Duo lését. A változás díjemeléssel nem jár, aljzattal is. A VAIO Pockethez – nem így a Chello Classic a maga havi 12 meglepetés – a Sonytól Connet néven ezer forintos költségével és megnövelt internetes zenevásárlási lehetõséget sebességével a többi internetszolgál- kínáló szolgáltatás is társul. A Sony tatáshoz képest továbbra is több mint ugyan kicsit lassan válaszolt az Apple- versenyképesnek mondható. féle iTunes sikerére, ám a mögötte álló  http://www.chello.hu Sony Music kiadóval minden esélye megvan a sikerre. Csak nagyban érdemes  http://www.vaio.sony.co.jp Az Optware nemrég bemutatott optikai meghajtója új is, nem is, az viszont biz- Frissülõ Opie tos, hogy sokaknak tetszene, ha hama- Az Open Palmtop Integrated rosan megvásárolhatnák a 200–300 GB- Environment (Opie) tervezet vezetõi os kapacitást ígérõ készüléket. megjelentették csomagjuk legújabb, A meghajtó holografikus elven mûkö- 1.1.3 számot dik, ami nem újdonság. A jelenlegi ho- viselõ elõ- lografikus tárolók két lézersugarat, egy zetes válto- referencia- és egy jelsugarat használ- zatát. A kö- nak. Ezeket két lencsén vezetik keresz- vetkezõ tül, és ez okozza a legtöbb fejtörést, üzembiztos ugyanis a hibátlan adatátvitelhez rend- változat az kívül pontosan kell pozícionálni nem- 1.2-es lesz, csak a lencséket, de az adathordozót is. a mostani Az Optware e nehézség leküzdésére kiadással elsõsorban a fejlesztõk figyel- dolgozott ki egy egyszerûbb, egyetlen mét és rokonszenvét szeretnék elnyer- lencsével mûködõ megoldást. Várako- ni. Az Opie – kézigépekre, webtáb- zásaik szerint az erre épülõ meghajtók lákra stb. szánt grafikus környezet – és a hozzájuk szükséges 12 cm-es leme- utolsó üzembiztos változata tavaly au- zek – noha végleges terméket még gusztusban vált elérhetõvé, a mostani a bemutatókra sem tudnak vinni – kiadás ehhez képest komoly fejleszté- már jövõ nyáron kaphatók lesznek. seket ígér, miközben az 1.0.x ág fej- A DVD utódjának szánt formátumokat lesztését abbahagyják. A csomagba új, támogató nemzetközi cégeknek azon- SQLite alapú személyi adatkezelõ ban bizonyára rosszul jönne egy ilyen adatbázismotor, e-könyvolvasó és kép- újdonság, ezért ha az Optware véletle- nézegetõ kerül, továbbfejlesztették nül eltûnne a süllyesztõben, akkor a kézírás-felismerõ modult, és renge- legfeljebb változatos összeesküvés- teg egyéb részét is átszervezték, le- elméletek kidolgozásával vigasztalód- tisztították. hatunk.  http://opie.handhelds.org  http://www.optware.co.jp

www.linuxvilag.hu 2004. június 7 Hír-lelõ

Az ötödik POWER Természetesen ahány nézõpont, Siemens NetCheck Az IBM bemutatta elsõ POWER5 annyi indok az döntése kap- A Siemens nemrég jelentette be Net- processzorra épülõ kiszolgálóit. Az csán. Akadnak, akik úgy vélik, a me- Check nevû új termékének beveze- eServer sorozat legújabb, i5 jelölésû gahertzek számának növelése, a csík- tését, amit IP-hálózatok minõségvizs- tagjai 1–4 utas gépek, operációs rend- szélesség csökkentése a továbbiakban gálatára fejlesztettek. szerük az OS/400 leg- nem vezet célra. Mások – az elõbbi A NetCheck szolgáltatás minõségi újabb kiadása, az indokot nem kizárva – úgy vélik, (QoS) méréseket végez az IP-hálóza- I5/OS, valamint AIX a processzorainak órajelét és a futó- tokon. Ennek nyomán eldönthetõ, 5L, Linux és Win- szalagok hosszát hosszú évek óta hogy a hálózat alkalmas-e például dows lehet. A gépek folyamatosan emelõ Intel elért egy VoIP átvitelre, adatbázisok mûködte- erõforrásait ebben olyan szakaszba, amikor termékeinek tésére, irodai helyi hálózati (LAN) a kategóriában meg- teljesítményét már nem tudja ezekkel alkalmazásra, illetve egyedi igényeik szokott módon logi- a módszerekkel emelni – erre utal kielégítésére. Elemzi a hálózat mûkö- kai tartományokra le- egyébként az is, hogy a cég nemrég dését a QoS jellemzõk idõbeni elosz- het osztani, így egy- újfajta modellszámozást vezetett be. lása szerint, valamint az elemzés szerre több operációs A hivatalos indoklás természetesen eredménye alapján minõségi hibák rendszer futtatására ennél sokkal inkább marketingszagú: észlelése esetén riasztásokat hoz létre. is használhatók – mi- a többszálas programok, a több alkal- A Siemens NetCheck megoldja a há- nõ szentségtörés, mazás egyidejû futtatását igénylõ lózat folyamatos figyelését is, és hiba megfelelõ összeállí- környezetek az irodákból egyre in- esetén azonnal riasztást küld. A rend- tásban egyetlen do- kább eljutnak az otthonokba is, így szer három forrás alapján riaszt: ren- boz, közös memóriával és lemez- inkább a kétmagos felépítésû pro- delkezésre állási, minõségi (quality) hellyel futtatja a vállalat Unix, Win- cesszorok tudnak megfelelõ teljesít- vagy SLA okból. dows és Linux alapú kiszolgálóprog- ményt nyújtani a felhasználók szá- A riasztásokat megjeleníti a képernyõn, ramjait. A kiszolgálókhoz nemcsak az mára. A bejelentéstõl függetlenül az vagy igény szerint elektronikus levelet, operációs rendszer jár, de az IBM DB2 Intel a jelenleg futó Prescott pro- vagy SMS-t küld. UDB adatbázisa és az e-kereskedelmi cesszorokat sem adja fel, órajelüket, Az elõzetes számítások szerint a meg- alkalmazásokhoz használható Web- az eredeti terveket követve, egészen oldás- és szolgáltatáscsomag révén Sphere Express-motor is. 4 GHz-ig kívánják növelni. a hálózat leállásából, az adatok sérü- A POWER5 processzorok 64 bitesek,  http://www.intel.com lésébõl, a partnerek nem megfelelõ tranzisztoraik száma 276 millió. A lap- szinten történõ kiszolgálásából szár- kák 0,13 mikronos SOI eljárással és Csak a név tûnik el mazó veszteségek elkerülésével rézvezetékekkel készülnek. Képesek Május elsejével kezdõdött az a fo- a hálózatfelügyeleti költségek akár az egy idejû többszálas programfutta- lyamat, melynek eredményeként tízszerese is megtérülhet. tásra, és mivel minden processzorban a Westel márkanév – majdnem egy A megoldás szabadon alakítható, két processzormag található, az operá- illetve illeszthetõ a vállalati rendsze- ciós rendszer számára gyakorlatilag rekhez, bármikor fejleszthetõ, vala- négy program egyidejû futtatásra mint több szintû szolgáltatást nyújt képes egységként látszanak. a felhasználók számára, így a hálóza- Az IBM állítása szerint az új i5 gépek évtized után – lassan ki fog kopni ti hibák, vírustámadások idõben fel- elõdeikhez képes negyven százalékkal a hazai köztudatból. Az új név, a ismerhetõk. jobb ár/teljesítmény-mutatóval rendel- T-Mobile több nyugati országban is  http://www.siemens.hu/icn/netcheck keznek. Ennek ellenére nem fog ilyes- ismert, bevezetésének elõnye az ígére- fajta erõmû kerülni minden asztalra, tek szerint nemcsak abból áll majd, Sun ugyanis listaár szerint még a kisvállal- hogy a Magyarországra látogató kül- A Sun Microsystems az x86 alapú kozásoknak szánt alapváltozatot sem földiek jobban eladható névvel talál- rendszerei iránti növekvõ keresletre adják kétmillió forint alatt. koznak, hanem abból is, hogy a kül- válaszul a továbbiakban éves díjfizeté-  http://www.ibm.com/eserver földre látogató magyarok olcsóbb, sû csomagokban is kínálja Solaris ope- elõnyösebb szolgáltatásokat kapnak rációs rendszerét. A vásárlók 100, 500 Párosan lesz szép az élet utazásaik során. A névváltás természe- és 2000 darabos csomagokat rendel- Az Intel megszakította Tejas és tesen nem egy csapásra zajlik, hiszen hetnek, a díj megfizetése a kapcsolódó Jayhawk kódnevû processzorainak rengeteg hirdetés lecserélésérõl, üzle- szolgáltatások és a támogatás igénybe- fejlesztését. A Tejas a jelenleg futó tek arculatának átalakításáról kell gon- vételére is feljogosít. Pentium 4 Prescott processzorok doskodni. A váltás során új nevet kap- A Sun árait tekintve igyekezett vetély- utóda lett volna, míg a Jayhawkot tak a díjcsomagok, új megjelenésû társai alá menni, így a Solaris 1–4 utas a kiszolgálók piacára szánták. Mind- Domino kártyákat adtak ki, ám ettõl gépekre a Windows Server 2003 és két lapka egymagos lett volna, he- függetlenül a tarifák és az elérhetõ a Red Hat Enterprise Linux operációs lyettük azonban kétmagos pro- szolgáltatások köre – egyelõre – nem rendszernél jóval olcsóbban szerez- cesszorok megjelentetése mellett változott. hetõ meg. © Kiskapu Kft. Minden jog fenntartva döntött az Intel.  http://www.t-mobile.hu  http://www.sun.com

8 Linuxvilág Hír-lelõ

N-Gage átpofozva hatnak windowsos gépeken dolgozó A Nokia bemutatta N-Gage játékgép- kollégáikkal, illetve mindkét tábor telefonjának megújított változatát. Az azonos háttérrendszerekhez csatlakoz- eredeti N-Gage, mely egyébként to- hat, ami megkönnyíti a fokozatos vábbra is kereskedelmi forgalomban vagy részleges átállásokat. marad, meglehetõsen sok bírálatot ka- A várhatóan a harmadik negyedévben megjelenõ Evolution 2.0 több újdonsá- got is tartogat. Továbbfejlesztett együttmûködési lehetõségeket fog kí- nálni, beépített levélszemétszûrõt kap, S/MIME és PGP alapú tanúsítványke- zelés kerül bele, adatokat lesz képes összehangolni Palm és PocketPC esz- közökkel, továbbá szorosan egybeépül a linuxos munkaasztalokkal és a Gaim pott mind a játékosoktól, mind az ipar- azonnali üzenetküldõ programmal. ág többi szereplõjétõl. A Nokia most Az Evolutionre még várni kell, ellen- a sok panaszt kiváltó, mondjuk úgy, ben a csatlakozó máris szabadon le- © Kiskapu Kft. Minden jog fenntartva tervezési félreértéseket próbálta meg tölthetõ a Novell honlapjáról. kiküszöbölni. Az N-Gage QD elõször is  http://www.novell.com olcsóbb lesz elõdjénél, a Nokia állítása szerint az FM rádió és az MP3-lejátszó Tárolóhálózat olcsón kihagyása miatt. Másrészt minden fon- A Coraid EtherDrive eszközével újsze- tosabb jellemzõjén javítottak, az új ké- rû, a korábbinál lényegesen olcsóbb szülék kisebb elõdjénél, kívülrõl, az ak- módon építhetünk tárolóhálózatokat. kumulátor levétele nélkül is hozzáfér- Az EtherDrive valójában egy egyszerû hetõ MMC-foglalatot, könnyebben ke- modul, egyik oldalról egy ATA felüle- zelhetõ billentyûzetet, nagyobb fény- tû merevlemezt lehet csatlakoztatni erejû és több szín megjelenítésére ké- hozzá, másik pes kijelzõt és erõsebb akkumulátort oldalról pedig kapott. Elmarad róla az USB-kapu, ethernetháló- adatkapcsolatok létesítésére a telefon zathoz csatla- Bluetooth-csatolója használható. kozik. A mo- Az N-Gage készülékekre egyelõre vi- dulokat erre szonylag kevés játék kapható, a Nokia a célra készült tervei szerint ez a szám év végére állványokra jelentõsen növekedni fog. lehet helyezni,  http://www.n-gage.com egy-egy polcra 18 meghajtó fér el – végeredményként egy átlagos mé- Egyre vonzóbb Evolution retû szekrényben akár 60 TB-nyi tá- A Novell két fontos bejelentést is rolókapacitással is rendelkezhetünk. tett: egyrészt hamarosan elkészül A modulok a nyílt szabványként is- az Evolution 2.0, másrészt a hozzá mert ATA ethernet felett (ATA over írt Connector Ethernet, AoE) protokollon keresztül for érhetõk el, normál blokkos eszköz- Exchange Server ként. (AoE illesztõmodul Linux alá is (amelybõl a jelen- létezik.) Segítségükkel gyakorlatilag legi változat az tetszõleges méretû, könnyen bõvíthe- 1.4-es) a további- tõ és méretezhetõ tárolórendszerek akban nyílt forrás- építhetõk ki, az egyes modulok szük- sal is elérhetõ. ség szerint egyedi és RAID-módban A csatlakozó segítségével a jelenleg is használhatók. Exchange Server 2000/2003 alapú  http://www.coraid.com rendszerhez kapcsolódó felhasználók könnyedén, adataik elvesztése nélkül Medgyesi Zoltán térhetnek át az Evolution használatá- ([email protected]) ra. Nem kevésbé lényeges az sem, A Linuxvilág hírszerkesztõje. hogy a linuxos munkaállomások tele- Szabadidejét legszívesebben pítése mellett döntõ cégek munkatár- a barátnõjével tölti, szeret sai továbbra is kapcsolatban marad- autózni és bográcsban fõzni.

www.linuxvilag.hu 2004. június 9 Láttuk-hallottuk

Mi újság a rendszermag fejlesztése körül?

A 2.6.0-s számot viselõ rendszermag megérkezett, – a befagyasztástól függetlenül – mûködésének to- nagyjából a határidõre. A Linux fejlesztése során vábbi finomítása. Meddig tart a lelkesedés, azt majd ez az elsõ alkalom, hogy az üzembiztos változat az meglátjuk. elõre kitûzött idõpontban jelenik meg, és sajnos az Ian Kent – legalábbis a dolgok pillanatnyi állása sze- egyéb nyílt forrású fejlesztésekre sem jellemzõ az rint – elfogadta a DevFS karbantartásának feladatát. effajta pontosság. Noha a legtöbben már elfogad- Döntése éles fordulatot jelent a korábbi folyamatok- ják Linus Torvalds nézetét: az önkéntes fejlesztõk hoz képest, ezeket látva a DevFS csendes kiszenve- bevonása jobb minõségû kódot és tempósabb mun- désére, illetve valamilyen más, hasonló megoldással kát eredményez, a határidõk betartása továbbra is – mint az udev – való leváltására lehetett számítani. rózsaszínû álom marad. Tény, hogy Greg Kroah-Hartman, pontosan ilyen A 2.6.0-s változat esetében Linus igyekezett ke- lépésre számítva, rendszeresen közzétette az udev ményen betartani a befagyasztások és az egyéb újabb és újabb kiadásait. De ne feledjük, hogy a munkák határidejét, ám ezt csak úgy lehetett elérni, DevFS, hiába vannak akár javíthatatlannak bizonyuló hogy a különféle összetevõket pontosan egyszerre hibái, képes olyan szolgáltatásokat nyújtani, melye-

© Kiskapu Kft. Minden jog fenntartva készítették el. Egyelõre tehát nincs általános ket semmilyen más rendszer nem kínál. Ian és csodamódszer. A karbantartás feladata a 2.6-os fa sokan mások úgy gondolják, hogy a DevFS-nek a esetében – a jelek szerint – túlnyomó részt Andrew rendszermagban kell maradnia, hibáit pedig ki kell Morton feladata, ahogy a 2.4-es fánál ezt a munkát javítani, bármilyen nehéznek is tûnjék ez a feladat. Marcelo Tosatti, a 2.2-esnél pedig Alan Cox vállalta Ian tehát, legalábbis egyelõre, elfogadta a meg- fel. Tulajdonképpen egyelõre nem teljesen tiszta, ki bízást. Érdekes lesz látni, hogy a rendszermag más felel a 2.6-os fa karbantartásáért. Úgy látszik, hogy fejlesztõi, név szerint Alexander Viro (a DevFS egyik Andrew hozza meg a döntéseket, a kiadások mégis különösen elszánt gyûlölõje), hogyan fogja értékelni Linus neve alatt jelennek meg. Lehet, hogy Linus és a váratlan fordulatot. Andrew szoros együttmûködése egészen a 2.7-es Yasunori Goto olyan kódrészeken dolgozik, melyek a ág megjelenéséig megmarad, ám pillanatnyilag a RAM üzem közbeni csatlakoztatását és leválasztását karbantartás minden eddigi üzembiztos változat teszik lehetõvé. Eddig elsõsorban NUMA gépekre sorsánál bizonytalanabb. Kíváncsian várom, vajon a fejlesztett, de a közeljövõben IA-64 és IA-32 alapú 2.7–2.8 változatok megjelenése között vajon hogyan gépekre is szeretne átültetést készíteni. Az asztali oldódnak meg ezek a kérdések. gépeken egy ilyen szolgáltatás inkább csak érdekes- A múlt hónapban azt írtam, hogy Marcelo Tosattinak ség, a kiszolgálók rendszergazdái számára viszont a 2.6-os sorozat megjelenése miatti teljes befa- kisebbfajta megváltás, mely segít csökkenteni a gyasztásra vonatkozó terve okán az XFS várhatóan vállalati rendszerek leállási idejét. Ezzel a fejlesztés- nem kerül be a 2.4-es fába. Az XFS a végsõ zárás sel a valóban könnyen méretezhetõ, egymásra elõtt mégis a 2.4-es sorozat része lett. Ez a lépés építhetõ rendszerek világa is közelebb kerül hoz- nem kis részben a fejlesztõk felzúdulásának volt zánk. Képzeljünk el egy felölthetõ számítógépet, köszönhetõ, ugyanis az XFS volt az egyetlen olyan amely további két processzorral bõvül, amikor fontosabb naplózó fájlrendszer, amely még nem felhúzzuk a cipõnket. Nem hiszem, hogy Yasunori is szerepelt a 2.4-es ágban. Marcelo emellett koráb- ilyen futurisztikus dolgokon töri a fejét, ám a RAM- ban jelezte, hogy az XFS akkor kerülhet be a fába, lapkák (RAM chip) üzem közbeni csatlakoztatása ha elkészült. Végül Marcelo csak úgy engedte be sok érdekes lehetõséget tár majd elénk. a kódot a 2.4-es fába, hogy elõtte harmadik fél által Zack Brown gondosan ellenõriztette. Nekünk a legfontosabb a végeredmény, mégpedig az, hogy az XFS teljesítette az elõírt határidõt, a további munkák célja pedig Linux Journal 2004. április, 120. szám

A SOLIS névadója

Jon "maddog" Hall és Cesar Brod elõször 1999-ben találkoztak. 2001-ben ellátogatott a Univates egye- temre, ekkor javasolta az ott dolgozó csapatnak, hogy munkájukat más egyetemekkel is ismertessék meg. Õ lett a SOLIS keresztapja.

Cesar Brod

10 Linuxvilág Láttuk-hallottuk

Linux-index Õk mondták

1. A CPUBuilders linuxos PC-inek induló ára a Sam's Club Elnökünk komoly kihívás elé állította oldalán: 256,68 dollár IT szervezetünket, illetve valójában az 2. A Microtel linuxos PC-jének induló ára a Wal-Martnál: egész IBM-et. Azt kérte, hogy 2005 199,98 dollár végéig Linux alapú asztali gépek 3. Egy 2,66 GHz-es, Linux minõsítéssel rendelkezõ, használatára álljunk át. Az átállás az Debian Linuxot futtató hordozható gép ára: 1749 dollár összes termelékenységnövelõ, web- 4. A Japán által a Linux-fejlesztõk támogatására fordított elérésre vagy dokumentumok meg- dollármilliárdok száma: 8,3 tekintésére használt program nyílt 5. A nyílt forrású fejlesztésekben részt vevõ tajvani szabványon alapuló megfelelõjével vállalatok száma: 20 való helyettesítését jelenti. 6. A tajvani fejlesztõk által elõállított nyílt forrású Bob Greenberg, programok értéke millió dollárban számolva: 3,4 CIO, IBM 7. A tajvani kormány ennyi millió dollárt fordít a nyílt forrású  http://www.theinquirer.net/ programfejlesztés népszerûsítésére: 3,4 ?article=13485 © Kiskapu Kft. Minden jog fenntartva 8. A tajvani kiszolgálók ekkora százaléka futtat jelenleg nyílt forrású programokat: 10 A szabványok nem állnak az újítások 9. A tervek szerint 2007-ben a tajvani kiszolgálók ekkora útjában. A jó szabványok akkor szület- százalékán fognak nyílt forrású programok futni: 30 nek meg, amikor az iparág szereplõi 10. A tajvani személyi számítógépek ekkora százaléka futtat már sikeresen kiirtották a hibákat egy jelenleg nyílt forrású programokat: 0,2 megoldásból, majd fogják magukat, 11. A tervek szerint a tajvani személyi számítógépek ekkora és az egészet leírják. Minden sikeres százaléka fog nyílt forrású programokat futtatni: 5 szabvány így jött létre, gondoljunk 12. Ennyi milliárd dollárt fizetett ki a Sun Microsystems a csak a grammra, a méterre, a feszült- Cobalt Networks részvényeiért 2000-ben: 2 ségre, az oktánszámra, a TCP/IP-re 13. A Sun által 2004. február 19. után is tovább gyártott vagy akár az XML-re. Cobalt-termékek száma: 0 Tim Bray 14. A tervek szerint Kínában ennyi millió példányban fogják  http://www.tbray.org/ongoing/ telepíteni a Linux alapú Sun Java Desktop Systemet: 200 When/200x/2003/05/10/RSS-std 15. A Sun Java Desktop Systemet 2004. januárjától kezdve minden évben legalább ennyi példányban fogják A legtöbb mûvészeti ágat élõben, telepíteni: 500 000 bizonyos szempontból ugyanúgy 16. A Sun Java Desktop Systemet 2004 januárjától mûvelik, nem igaz? Ha a mûvészet kezdõdõen évente legfeljebb ennyi példányban fogják támogatói nem a teljesítményért telepíteni: 1 millió fizetnének, és magukat sem a tel- 17. A Sun tervei szerint ennyi linuxos PC lesz jesítményben tennék érdekeltté, a Kínában: 500 millió mûalkotásokat nem az aranyrudakhoz 18. A Microsoft Office – OpenOffice.org átállással elérhetõ hasonlatosan kezelnék, akkor a P2P költségmegtakarítás százalékos aránya: 60-70 messze nem jelentene akkora fenye- 19. Sao Paulo 72 teleközpontját hetente ennyi ember veszi getést, mint amilyennek most mutatni igénybe: 150 ezer próbálják. Ugyanez érvényes a programok és a nyílt forrás viszonyára is – a sikeres- Források ség nem egyenlõ a rejtõzéssel és a 1.: Sam's Club tökéletes kód megalkotásával, sokkal 2.:  http://www.walmart.com inkább egy közösségi kódot elõállító, 3.: Linux Certified közös folyamatban szükséges min- 4.:  http://itbusiness.ca denkinek részt vennie. 5–11: Asia Computer Weekly 12, 13.: CXO Today Brian Behlendorf 14–16.: Motley Fool (elektronikus levél) 17.: John Fowler – Sun, Apachecon rendezvény 18.: John Terpstra A világ csak a cselekvést jutalmazza. 19.: Nat Friedman Nincs más, amit ily nagyra értékelne. Scott Adams  http://paulboutin.weblogger.com/ Linux Journal 2004. április, 120. szám 2003/12/22

www.linuxvilag.hu 2004. június 11 Láttuk-hallottuk

A hónap szakmai tanácsai

A #include használata Nyomtasd ki az anyagodat egy PostScript fájlba, A check_region() hívással próbálok kapukat elérni, majd a következõ programmal oszd fel több oldalra: s ennek érdekében a kódomba foglaltam a /linux/ www.ctan.org/tex-archive/support/poster. A lapokra resource.c fájlt. Amikor azonban megpróbálom le- külön jelzéseket is nyomtat, ezek alapján szétvágha- fordítani a programot, a következõ hibát kapom: tod és egymáshoz illesztheted õket. Marc Merlin, [email protected] In file included Tûzfal Red Hat 9-es rendszerbõl /usr/include/linux/sched.h Van egy gépem két ethernetkártyával, melybõl tûzfa- /linux/resource.c lat szeretnék építeni. Az útválasztást már engedé- /usr/include/linux/timex.h :field "time" A Linux Journal lyeztem rajta. Az FWbuilder 1.1.1-es és a Red Hat honlapján számtalan has incomplete type 9-es változatát futtatom rajta. Kérdésem a rendszer- gond megoldásához mag útvonaltáblájára vonatkozna. A külsõ cím az time timeval találhattok további A egy típusú adatszerkezet, megadá- eth0 csatolón 192.168.1.2, a belsõ cím pedig az sa a timex.h fájlban található. Kérlek, segíts, mi a hi- eth1 csatolón 172.10.10.252. Az eth0 esetében az segítséget. A Sunsite ba oka és mi lehet a megoldás. alapértelmezett átjárónak 192.168.1.1-nek kell len- tüköroldalait, a gyakori Ashutosh Sharma, [email protected] nie, a rendszermag azonban a 192.168.1.2-t teszi kérdéseket és az egyéb alapértelmezetté, és nem ereszti el az útvonalat. Át- útmutatásokat a A resource.c egy forráskódfájl, ez tartalmazza az irányítottam a 192.168.1.0-ra, de az eth0-nál megáll www.linuxjournal.com összes függvény megvalósítását, köztük azét is, a forgalom, és nem halad tovább a 192.168.1.1 felé. amelyet használni próbálsz. Szerintem inkább A belsõ oldallal nincs gond. Azon túlmenõen, hogy honlapon olvashatjátok a fájlt kellene befoglalnod, eb- újrafordítom a rendszermagot, hogyan tehetném el. A rovatban közzétett ben szerepelnek a függvények megadásai – és nem a 192.168.1.1-et alapértelmezett átjáróvá? válaszokat Linux-szak- megvalósításai. Joe Golden, [email protected] értõk kis csapata készí- Chad Robinson, [email protected] tette el. További kérdé- Írd át a /etc/sysconfig/network-scripts/ifcfg-eth0 fájlt. Nagyméretû képek nyomtatása a Gimp alól? GATEWAY='192.168.1.1' seiteket szívesen fogad- Egy tartalmú sort kell hoz- A Gimpet használom szinte minden képszerkesztési záadnod, majd a service network stop/service ják (angol nyelven) a feladatra, és nemrég készítettem néhány nagymére- network start parancsokkal újra kell indítanod a há-  www.linuxjournal.com/ tû, például 61×61 cm-es képet. Elsõsorban vázlat- lózati szolgáltatást. lj-issues/techsup.html ként használom õket, mielõtt végleges festményt Felipe Barousse Boué, [email protected] címen, ahol csak egy készítenék vászonra. Van egy HP 5650 típusú nyom- Váltás meglévõ X-munkamenetek között kérdõívet kell kitöltene- tatóm, ami természetesen nem tud ilyen nagy la- pokra nyomtatni. Ezért nyomtatáskor sajnos csak Hogyan futtathatok egyszerre több X-munkamene- tek, de a [email protected] a kép bal felsõ sarka kerül papírra. Szeretném meg- tet? Tegyük fel, hogy rendszergazdaként jelentkezek címre levelet is írhattok. találni a módját, hogy a teljes képet kinyomtathas- be, nyomok egy CTRL-ALT-F2 billentyûkombinációt, A levél tárgyában sam eredeti méretében, természetesen több normál kiadom a startx -- :1 parancsot, elindul az X, min- szerepeljen a „BTS” méretû lapra elosztva, melyeket összeragasztanék. den remekül mûködik. A CTRL-ALT-F7 kombinációval kulcsszó. Létezik ilyen program a linuxos világban, vagy ven- visszalépek, továbbra is minden rendben. Amikor nem kell egy HP plottert? Ez azonban jóval drágább aCTRL-ALT-F2-t újra lenyomom, akkor az ottani X már megoldás lenne. elszállt. Az F7-en futó viszont továbbra is megvan. Paul Godin, [email protected] Létezik olyan parancs, amivel az F2-n is életben tart- hatom az X-et, miközben ide-oda váltogatok? Lehet, hogy félreértek valamit, de elég egyszerûnek Bjarni Valsson, [email protected] tûnik a megoldás. Darabold fel a képet több részre, majd egyenként nyomtasd ki õket. A Gimp alatt ezt Az X nem az F2-n (pty 2) fut. Minden X-példány saját kézzel teheted meg, de az ImageMagick eszköz- pty-t indít, ezért lehet a pty 7-re váltani. Ha vissza- készlet segítségével parancsfájlt is készíthetsz hoz- lépsz a pty 2-re, akkor valójában a háttérbe küldöd zá. A programkészletben található egy convert(1) az X-et (CTRL-Z, majd a bg parancs), és az adott kon- nevû eszköz is, amellyel a képeket nyomtatásra al- zolt más feladatokra használod. Ha újabb X-példányt kalmasabb – például PostScript vagy PCL – formá- indítasz, miközben már fut egy, akkor újabb pty jön tumra hozhatod, illetve részeket vághatsz ki belõlük. létre, esetedben ez a 8-as. Erre az X-példányra Használatáról a hozzá tartozó súgóoldalon olvas- aCTRL-ALT-F8 billentyûkombinációval léphetsz vissza. hatsz bõvebben, bár ha jól emlékszem, a -crop Chad Robinson, [email protected] kapcsolót kell használnod. Linux Journal 2004. április, 120. szám Chad Robinson, [email protected] © Kiskapu Kft. Minden jog fenntartva

12 Linuxvilág Láttuk-hallottuk

Új termékek

Altix 350 Desktop/LX Pocket PC Edition tásait archiválja, a mentett adato- Az SGI 350 ki- A Lycoris beje- kat pedig változás észlelésekor szolgálója 1–16 da- lentette Linux önmûködõen kiegészíti. A Tripwire rab 64 bites operációs rend- for Network Devices akár több tíz- 2 processzort (nor- szerének kézi- ezer csomópont kezelésére is ké- mál vagy alacsony gépekre sza- pes, a csomópontokat logikai cso- feszültségû típust) és bott, Desk- portokba sorolhatjuk. A jelszavak összesen legfeljebb top/LX Pocket és jogosultságok kezelése érdeké- 192 GB megosztott PC Edition nevû ben egybeépül a felhasználók hite- memóriát tartalmaz- változatát. A teljes egészében nyílt lesítését végzõ, a hozzáférésüket hat. A 350-es másod- szabványokra épülõ kiadás a veze- ellenõrzõ és erõforrás-használatu- percenként 6,4 GB tékes, az USB, az infravörös és kat számlázó alkalmazásokkal. továbbítására képes 802.11b alapú hálózati kapcsolato- A Tripwire alapszintû helyreállítá- SGI NUMAlink össze- kat egyaránt támogatja. Teljes érté- sokra, az épség valós idejû ellen- köttetéseket használ. Alkalmas kû személyi adatkezelõ program- õrzésére és az elõírások betartásá- © Kiskapu Kft. Minden jog fenntartva a független méretezésre pro- gyûjtemény jár hozzá, teljes mér- nak vizsgálatára is képes. cesszorok, megosztott memória tékben támogatja a HTML és  http://www.tripwire.com és be/kiviteli (I/O) eszközök tekin- a CSS 4 szabványokat, továbbá ké- REALbasic 5.5 tetében egyaránt, szabványos há- pes a POP3 alapú levélletöltésre, A REALbasic 5.5 zába különféle bõvítõmodulok hangok, mozgóképek és médiafo- egy fejlesztõi építhetõk be, így a legkomolyabb lyamok lejátszására. Az adatokat eszköz, amellyel igényeket támasztó mûszaki alkal- meghatározott jeleken alapuló kéz- több géptípu- mazásokban is megállja helyét. Az írással, képernyõn megjelenõ bil- son – Linux, SGI a 350-es tartozékaként a Pro- lentyûzettel, magával az érintõkép- Windows és Pack programot kínálja, amely ernyõvel, prediktív módon (pick- Mac – is futtat- a normál Linux-terjesztésekben board) és hagyományos billentyû- ható alkalmazá- megtalálható rendszer-, adat és zeten keresztül vihetjük be. sokat készíthe- erõforráskezelõ-szolgáltatásokra A Desktop/LX Pocket PC Edition tünk. A REALbasic része a VB épülõ eszközöket, könyvtárakat és bizonyos StrongArm és XScale Project Converter eszköz, amellyel teljesítménynövelõ megoldásokat processzorokat és lapkakészlete- táblákat, ûrlapokat és programkó- kínál használójának. ket támogat. dot lehet REALbasic alá átemelni;  http://www.sgi.com  http://www.lycoris.com így állíthatók elõ a Linux vagy IVR100B Tripwire for Network Macintosh alá szánt programvál- Az IVR100B egy állványra szerel- Devices 3.0 tozatok. A REALbasic 5.5 x86 hetõ távközlési alkalmazáskiszol- Intel gépeken a Red Hat Enter- gáló felhasználói beavatkozást prise és a SuSE-terjesztéseket tá- igénylõ, GNU/Linuxra és Bayonne- mogatja, de bármely más terjesz- ra épülõ, beszédalapú ügyfélrend- téssel is használható, ha abban szerek (Interactive Voice Response, megtalálhatók a szükséges GTK+ IVR) üzemeltetéséhez. Alapeset- 2.0-s és a CUPS könyvtárak. ben négykapus Pike Inline GT be- A program távoli hibakeresésre is szédkártya jár hozzá, melyet leg- alkalmas, így a linuxos alkalmazá- feljebb 24 kapuig lehet bõvíteni. sok hibái Windows vagy Mac alól Az IVR100B-ben Pentium osztályú is megkereshetõk. Az 5.5-ös vál- egylapkás számítógép és legalább A Tripwire for Network Devices tozathoz további bõvítmények 32 MB RAM található, beépített 3.0 egy több gyártó termékeit is (plugin) is beszerezhetõk, így to- USB- és 10/100 Mb/s sebességû támogató, hálózati beállítások ke- vábbfejlesztett felhasználói felüle- ethernetcsatolóval rendelkezik, va- zelésére, pontosabban a hálózati tek, javított együttmûködés az MS lamint Quantum Fireball LM IDE elemeket érintõ változások köz- Office-alkalmazásokkal, kiterjesz- merevlemez tartozik hozzá. A gép ponti felügyeletére, figyelésére és tett Mac OS X támogatás, jobb mellé IVR-alkalmazásokat is ka- jelentésére használható alkalma- adatbázis-elérés, SOAP- és XML- punk, amelyek adatbázisokkal és zás. A Tripwire nemcsak a hetero- támogatás és további API-k.  web- és levélkiszolgálókkal képe- gén környezetek támogatására ké- http://www.realsoftware.com sek kapcsolatot teremteni. pes, de változatkövetésre is alkal- Linux Journal 2004, 121. szám  http://www.ostel.com mas, vagyis minden eszköz beállí-

www.linuxvilag.hu 2004. június 13 Láttuk-hallottuk

Linux a légiforgalmi irányításban A Linux nélkülözhetetlen a Szövetségi Légügyi Hivatal légi irányító programjához.

ok ember szerint a Linux még nem nõtt fel a légi irá- nyítás feladataihoz, de a valóságban felkészült, oly- © Kiskapu Kft. Minden jog fenntartva annyira, hogy már használják is. Nemrégiben részt Svettem egy projektben, amely a FAA (Szövetségi Légügyi Hi- vatal) Common ARTS programját ( http://www1.faa.gov/ ats/atb/Sectors/Automation/CommonArts/index.htm) ültette át Linuxra. Amikor a légi irányító rendszerekre gondolunk, többnyire egy kerek képernyõn pásztázó sugarat látunk magunk elõtt. Kevesen tudják miként néz ki valójában a Radar an- tennarendszer. A Radar antenna és a képernyõ között jó néhány számítógép teszi könnyebbé a kapcsolattartást. Di- gitális jelfeldolgozó processzorok (Digital Signal Processors, DSP) találhatók mind az antenna épületében, mind a vezér- lõrendszerben. Írásunk bemutatja, hogyan mûködik a ve- Egy vezérlõ Atlantában zérlõrendszer, és hol alkalmazzák a Linuxot. adatok tartalmazzák a nyers Radar jelet, a válaszadó Történelem (transponder) válaszát (minden repülõgépnek van egy vá- Az Automated Radar Terminal System (ARTS, azaz ön- laszadója, amely egy azonosítószámot és magassági adatot mûködõ Radar terminálrendszer) 1964-ben állt munkába, küld vissza minden alkalommal, amikor a Radar letapogatja Univac számítógépeken. A rendszer 1973-ban került orszá- a gépet), valamint az idõjárási adatokat. Általában ugyanaz gos felhasználásra az Egyesült Államokban. Az eredeti szá- az antenna veszi mindhárom jelet. Bármelyik Radar és vá- mítógépeket felújították és mind a mai napig használják. laszadó adata bármelyik három soros vonalon mehet, míg Számos nagy központ már a 80-as években átköltözött az az idõjárás a saját soros vonalán kerül továbbításra. Univacról a mikroprocesszoros rendszerekre. Az összes örö- A TP legalább két alrendszerre van osztva: a soros üzenet- költ ARTS programot átültették vagy C-ben újraírták, hogy összeillesztõre és a pillanatnyi nyomvonal-feldolgozóra. a valós idejû LynxOS alatt legyenek futtathatóak. A soros üzenet-összeillesztõ minden üzenettípust (nyers A LynxOS-re való költözés nem volt véletlen, mivel ez Posix Radar, válaszadó és idõjárás) hálózati üzenetté alakít át. alapokat nyújtott, ami lehetõvé teszi a további átültetést. A nyomvonal-feldolgozó az összetartozó Radar és válasz- Ezenkívül a LynxOS használata megengedte a fejlesztõk adó üzeneteket (célokat) egyetlen nyomvonallá dolgozza számára, hogy a használni kívánt mikroprocesszort kivá- össze. A nyomvonal a repülõgép ismert története. A célok laszthassák. Kezdetben a program Motorola 68K-n futott, lehetnek Radar- vagy válaszadó jelek, vagy mindkettõ. jelenleg PowerPC-n mûködik. Amint egy célpont összefüggésbe kerül egy nyomvonallal, egy újabb nyomvonalüzenet kerül a hálózatra. Kiépítés Az üzeneteket általában a hálózaton sugározzák, vagyis A Common ARTS rendszer egy erõsen elosztott, hálózatos, a hálózat minden pontjára eljutnak. Mindkét fõvonalon többszálú, valós idejû rendszer. A teljes megbízhatóság elõ- UDP használatával kerülnek küldésre, és minden üzenet- feltétel. Kettõs hálózatot használnak, és normál körülmé- nek egyedi csomagazonosítója van. A hálózaton az összes nyek között minden megadott feladatra két tartalék kerül számítógép figyeli mind a két fõvonalat, és minden cso- kijelölésre. A programot úgy tervezték meg, hogy adott al- magazonosítót, valamint az õket küldõ egyedi hálózati azo- rendszer néhány szolgáltatását át tudja venni egy másik al- nosítót feljegyezi. Ha rés támad a csomagazonosítók sorá- rendszer. ban, bármely készülék kérhet újraküldést. A duplikált cso- A Radar adatai soros vonalakon érkeznek be a követõ pro- magazonosítókat azonban mellõzi, mert feltételezi, hogy cesszorokhoz (track processzor – TP). Általában négy soros ez az üzenet a másik fõvonalon érkezett vagy egy másik vonal megy minden Radarból mindegyik TP-hez. A Radar készülék kért újraküldést.

14 Linuxvilág Láttuk-hallottuk

Minden rendszernek szívveréseket kell sugároznia a háló- Amikor a légi irányításról van szó, a legtöbbünk pusztán zaton. Ha egy szívverés kimarad, az azt feltételezi, hogy a kijelzõkre gondol: egy szoba tele kerek kijelzõkkel és az a hozzá tartozó rendszer nem mûködik, és többi rendszer õket bámuló fehér inges fickókkal. Egyre több helyen hasz- egyike üzenetet küld, hogy a tartalék rendszer vegye át nálnak nagy, 20"-os, szögletes, színes kijelzõket. Az új színes a feladatát. kijelzõk 2048×2048 képpontos X Window megjelenítõk. A következõ, aki a hálózati üzeneteket feldolgozza, az általá- A kijelzõ-feldolgozó program (Display Processing Software nos processzor (Common Processor – CP). A CP számos fel- – DPS) kialakítása olyan, hogy a darabjait bármilyen kijel- adatot lát el, például párosítja a repülési terveket a nyomvo- zõtípushoz fel lehet használni, például az olyan színes, nalakkal, ütközési riasztásokat (Conflict Alerts, CA) és a leg- szögletes kijelzõnél, mint egy ARTS Color Display (ACD), kisebb biztonságos magasság riasztásokat (Minimum Safe vagy a kerek vektorkijelzõnél, mint a Full Digital ARTS Altitude Warning, MSAW) küld, valamint néhány Common Display (FDAD). ARTS rendszer szívverését is figyeli. A CP legfontosabb fel- A DPS fogadja a sugárzott üzeneteket és megjeleníti a meg- adata a légisebesség és nyomvonal irányának meghatározá- felelõ képet a rendszer állapotától függõen. Normál üzem- sa. Ezeket az adatokat összevetve más nyomvonalak sebes- ben a kijelzés magában foglalja a nyomvonal és az irány történetjelölését, egy részleges és teljes adatblokkot, vala- mint a különbözõ rendszerek állapotát. A CP-tõl származó repülésterv-információ üzenet a teljes adatblokkban jelenik meg, közel ahhoz a repülõgéphez, © Kiskapu Kft. Minden jog fenntartva amelyikhez a TP már elkészítette a nyomvonalat. Az SMC átfogó állapota szintén megjeleníthetõ. A hálózat egyszerre egy vagy akár több száz kijelzõt is használhat. Ráadásul minden rendszer egy vagy több processzoron fut- hat. Ha a CPU teljesítménye elég nagy, minden rendszer és alrendszer egyetlen processzoron futhat.

Átültetés Kezdetben az átültetés oka az volt, hogy lehetõvé tegyük a fejlesztõk számára a kipróbálást és a hibakeresést az aszta- li számítógépükön, mielõtt a célgépen kipróbálnánk. A cél- Teljesen digitális ARTS kijelzõ. Az ACD-k (jobb oldalon) fogják gép LynxOST futtató VME vázban lévõ Motorola OEM kár- leváltani ezeket a vektorkijelzõket. Minden tekerõgomb menüben tyákból áll. A rendszerek viszonylag drágák, ezért sem található a kijelzõn a FAA, sem a Lockheed Martin nem akart feleslegesen be- gyûjteni belõlük. Ehelyett szinte folyamatosan különféle ségével és irányával a CA állapítja meg a lehetséges ütközés- tesztrendszereket használnak az összevont kipróbálásokra veszélyt. Amennyiben ütközésveszélyt állapít meg, a CP egy és a fejlesztésre. Mivel az IS osztály NT CA üzenetet sugároz a hálózatra, megjelölve a feltételezett PC-ket adott a fejlesztõknek, megpróbálták a programot át- összeütközésben érintett repülõgépeket. Amikor egy repülõ- ültetni NT-re. Az átültetés nagy része készen volt, amikor gép 300 csomó/s – kb. 5 mérföld percenként – sebességgel dolgozni kezdtem a cégnek. Néhány dolog kipróbálására az halad, fontos egy vagy két percre elõre tekinteni. NT-t jól lehetett használni. Egy átalakító réteg tette lehetõ- Az MSAW helyszínre illesztett térképet használ a táj dombor- vé, hogy a Posix-szálak, a fájlmûveletek és a grafika ugyan- zatának ismeretéhez. A domborzathoz nemcsak a dombok és úgy nézzen ki, mint a célrendszereken, emiatt ezek kipró- hegyek, hanem a tornyok és magas épületek is hozzátartoz- bálására alkalmatlan volt. nak. A válaszadóval (transponder) felszerelt repülõgépek ese- Amikor a Lockheed Martinnál kezdtem, az üzenetréteg cso- tében az MSAW rendszer figyeli a helyzetet és magasságot, porthoz kerültem, amely a kapcsolattartással, szálkezeléssel amibõl megállapíthatja, hogy a gép esetleg túl alacsonyan és a fájl B/K (I/O) kezeléssel foglalkozott. Alapvetõen egyik száll. Ha egy repülõgép túl alacsonyan tartózkodónak találta- tesztünket sem lehetett asztali gépen elvégezni, ezért a cél- tott, a rendszer egy MSAW üzenetet sugároz a hálózatra. eszközt kellett használnom. Kezdetben egy mellékprojekt is Az utolsó fõ rendszer a hátsó szobában (back room) futott, pusztán azért, hogy megbizonyosodjunk megvalósít- a rendszer megfigyelõ és irányító (System Monitor and hatóságáról, s én egy öreg (200 MHz-es Pentium) PC-t kap- Control – SMC). Az SMC fõ célja a többi rendszer megfi- tam a fejlesztéshez. gyelése és irányítása. Ez egy átjáró az SMC megjelenítõ A kódok többsége rendben lefordult, bár akadtak gondok PC-re, ami grafikus kezelõfelület a hálózat és annak pilla- a Posix-szabvánnyal. A LynxOS – a 2.4-es és 3.0-s – egy ré- natnyi állapotának megfigyelésére. A pillanatnyi állapot jel- gebbi szabványt alkalmaz, míg a Linux a jelenlegit használ- zi, hogy egy-egy rendszer mûködik, nem mûködik, várako- ja. Kezdetben a 2.2-es rendszermagot futtató Red Hat 7-esen zik vagy üresjáratban üzemel. Ha egy szívverés kimarad, végeztem a fejlesztést, de ez nem támogatta a kinevezett az SMC utasítja valamelyik várakozó rendszert a feladat át- jelzõket (named semaphores) és a kinevezett memóriasza- vételére. A rendszer kezelõje bármikor kézzel is átkapcsol- kaszokat. Egy olyan elosztott rendszerben, mint a miénk, hat, új programot tölthet be vagy újraindíthatja a rendsze- könnyebb a processzoron belül állandó neveket használni, reket, mindezt errõl a PC-rõl teheti meg. Az SMC emellett mint egyéb kapcsolattartási módszert használni, és meg- rögzíti a hálózaton átmenõ összes adatot. tudni azt, hol találhatók a megosztott memóriaterületek és

www.linuxvilag.hu 2004. június 15 Láttuk-hallottuk

Képernyõfotó a 8 bites VGA Linux DSP programról. Összehasonlítva az Az irányító egy ACD-t figyel © Kiskapu Kft. Minden jog fenntartva ACD kijelzõvel, csak a teljesen barna idõjárás a különbség. A kék elõzménycsíkok hasonlóak, a zöld válaszadó és Radar képek ugyanazok. Ennek az animációnak a megvalósítása 128 színcellába ke- A menü átlátszó a térképen, de az idõjáráson nem rül. Ehhez az alkalmazáshoz egyetlen cellát használtam ani- máció nélkül. Lenyûgözõen néz ki. Kikeresve a hasonló pi- jelzõk. Összeférceltem egy kinevezett memória-megfelelõ- rosakat, zöldeket, sárgákat, kékeket, fehéreket és szürkéket, ségi réteget (named shared memory compatibility layer) és megnyirbáltam a színtáblát 78 színre. egy orosz webhelyen találtam egy kinevezett jelzõ megfe- Amint mindezzel elkészültem, kaptam egy kétsíkú video- lelõségi réteget (named semaphore compatibility layer). kártyát, hogy lássam, még ekkor is mûködik-e a rendszer. A fejlesztés során Red Hat 7.1-re váltottam, amely elvileg Egy fordítási idejû zászló (compile time flag) átállításával az támogatja a kinevezett megosztott memóriát, de megfelelõ- egész dolog mûködött. A kétsíkú kártya az idõjárást, a tér- ségi gond akadt a glibc és a header fájlok között. A hibát képeket és a menüt ugyanarra a síkra tette. megleltem a forrásban és egy feljegyzést küldtem a rend- Két dolog is történt etájt: az FAA-nak leszállítottam a Linux- szermag-levelezõlistára. Hogy bárki, bármilyen javítás nél- kódot, és néhány másik fejlesztõnek az a feladat jutott, hogy küli Red Hat-változattal dolgozni tudjon, a kódban hagy- a cél PowerPC-n tegye futtathatóvá a Linuxot. Az FAA talált tam az általam összefércelt változatot. néhány frissítést, amit én nem vettem fel az alapkóddal, és A céleszköz mind nagy endian típusú (Motorola 68K és együtt dolgoztunk rajtuk. A többi fejlesztõ úgy találta, hogy PPC), a Linux PC pedig x86 kis endian, ezért szükségem az én legtöbb #ifdefs-em a Linuxhoz és nem a számítógép- volt némi bájtfordításra, hogy az egész rendszer mûködjön. hez kapcsolódik. Emiatt visszatartottam az összes változtatá- Sok fájl bináris formában tárolt (térképek, adaptációk stb.). somat és elkészítettem a megfelelõ #ifdefs-eket mire végül A hálózati rétegben már volt beépítve egy bájtfordító szer- az FAA megkapta õket. kezet és jól is mûködött. A PowerPC Linux Projekt arra tett kísérletet, hogy az SMC Amint az összes üzenetkezelõ kód lefordult és futott, szük- által végzett adatrögzítõ feladatokat továbbfejlesszük. A je- ségem volt egy alkalmazásra. Az FAA egyetértett, hogy fek- lenlegi rendszer fogyasztói szintû, boltban vásárolható opti- tessük le a TP, CP, SMC és DSP rendszerek további fejleszté- kai meghajtókat használ, amelyek nem alkalmasak 24 órás, sének alapjait az asztali kipróbáláshoz és hibakereséshez. heti hétnapos üzemre. Az új rendszer SAN meghajtókat tar- Az összes rendszert jól át lehetett ültetni, de a DSP-nek talmaz, amelyek jobban illeszkednek a légiforgalmi irányí- akadtak gondjai az X-megjelenítéssel. Normál esetben tás igényeihez. Bár technikailag sikeres volt, de a projekt a nagy 2048×2048 képpontos megjelenítõk egyedi eszközö- most szünetel. kön futnak, két vagy három álszínes fizikai síkon. Ha a me- Tavaly tavasszal az FAA használni kezdte a Linuxon futó nük és a térképek a hátsó síkon kerülnek kirajzolásra, az Common ARTS-t egy nem kényes (noncritical) alrendsze- idõjárás a következõ síkon, a repülõgépek pedig a legfelsõ ren, egy olcsó átjáró rendszer, amely ARTS adattal látja el síkon, nem szükséges a teljes kijelzõt újrarajzolni egy repü- a többi rendszert. A teljes engedélyezés pedig nemsokára lõgép elmozdulásakor. Ahhoz, hogy ez a síkos megoldás bekövetkezhet. mûködjön, a színtérkép három részre lett osztva. Az álszí- nes (8 bites) megoldás minden síkon korlátozza a használ- Linux Journal 2004. január, 117. szám ható színeket. A térkép és menüsík kapta a fehér színt, az idõjárás a barnát, az elsõdleges megjelenítõ síknak pedig Tom Brusehaver 78 szín jutott. Programozó, aki már a PC elõtti korszakban is Emiatt szükség volt a színtábla módosítására, mivel normál kódokat írt. Jobbára szerzõdéses munkákat vé- esetben az elsõdleges kijelzõ 250 színt használt. A nagy ki- gez. Nõs, felnõtt gyermekei, két macskája és jelzõnek van egy animált elhalványuló pásztázó vonala, egy kutyája van. Amikor szép az idõ, repülõ- amely emulálja a vektorkijelzõ elhalványuló foszforát. gépet épít.

16 Linuxvilág Vezérfonal

OfflineIMAP

Hordozható linuxos számítógépet használók, próbáljátok ki a gyors, kényelmes helyi alkönyvtár és a kiszolgáló alapú IMAP-tároló elõnyeit egyesítõ levelezõ megoldást. © Kiskapu Kft. Minden jog fenntartva

okak számára az elektronikus levél az internet leg- meg róla, hogy a gépünkön van-e Python 2.2 vagy újabb vál- fontosabb hozadéka. Elektronikus leveleket olva- tozata. Ha még nincs Pythonunk, próbálkozhatunk a megle- S  sunk otthon, a munkahelyen, utazás közben – több võ terjesztéssel vagy pedig a http://www.python.org cím- különbözõ számítógépen. Néha azonban jó lenne ugyanazt rõl töltsük le. a levelet mindegyik helyrõl látni. Elõfordulhat olyan eset is, Ha készen állunk az OfflineIMAP telepítésére, a tar -zxvf ha egy üzenetet az otthoni gépünkrõl letörlünk, és ugyan- offlineimap_4.0.2.tar.gz futtatásával kicsomagolhatjuk azt a postafiókot a munkahelyünkrõl megnézzük, élõ (nem a forrást. Lépjünk be az új könyvtárba és rendszergazda- törölt) üzenetként látjuk viszont. Még rosszabb, ha egy ként adjuk ki a python setup.py install utasítást. Ha el- adott üzenetet esetleg csak egyetlen géprõl tudunk meg- akadnánk, az OfflineIMAP kézikönyv néhány hasznos tele- nézni. Néha csak le szeretnénk tölteni elektronikus levele- pítési tippet is tartalmaz. inket hordozható gépünkre, és internetkapcsolat nélkül ol- vasgatnánk. Ekkor a helyzet még ennél is összetettebb lesz. Alapszintû beállítás Akadnak, akik ezeket a gondokat oly módon kísérlik meg- Az OfflineIMAP beállítását a ~/.offlineimaprc állomány tar- oldani, hogy levelezõügyfelükben IMAP-ot használnak. Az talmazza. Ez az állomány három részbõl áll: az elsõ egy ál- IMAP azonban hosszadalmasnak és gyengén támogatott- talános rész, amely az OfflineIMAP átfogó mûködését sza- nak bizonyulhat, különösen egy lassú kapcsolat esetén haj- bályozza. A második a tárolási rész, amely a levelek tárolási lamos élvezhetetlenné tenni a levelek olvasgatását. Nemrég helyét írja le, valamint a harmadik a hozzáférési rész, ami pontosan ilyen helyzetbe kerültem és roppant bosszús let- nyilvántartja, hogy két tárolási hely miként van összehan- tem. Szerintem sok program születik oly módon, hogy vala- golva. Egy alapszintû, egyszerû beállítás csak kisméretû hol egy programozó dühbe gurul. Én jogos felháborodá- beállítóállományt igényel. Íme egy példa: somban megírtam az OfflineIMAP-ot. [general] Az OfflineIMAP névjegye accounts = MyMail Az OfflineIMAP-ot arra tervezték, hogy ugyanazt a posta- fiókot több különbözõ géprõl tudjuk olvasni, mûködõ [Account MyMail] internet-kapcsolattal vagy anélkül. Kétirányú összehango- localrepository = MyMailLocal lást valósít meg, vagyis az általunk véghezvitt összes vál- remoterepository = MyMailRemote toztatás minden gépünkrõl ténylegesen látható lesz. Az OfflineIMAP mûködése során kapcsolatba lép egy IMAP- [Repository MyMailLocal] kiszolgálóval és a levelezési alkönyvtárainkat összehangolja type = Maildir egy sor, helyi gépünkön létrehozott Maildir alkönyvtárral. localfolders = ~/MyMail Neve ellenére az OfflineIMAP még akkor is hasznos, ha so- ha nem olvasunk leveleket kapcsolat nélküli üzemmódban. [Repository MyMailRemote] type = IMAP Az OfflineIMAP telepítése remotehost = hostname.example.com Az OfflineIMAP-ot egyszerû telepíteni. Látogassunk el az remoteuser = my-username-goes-here OfflineIMAP quux.org/devel/offlineimap címen található hon- ssl = yes lapjára és a .deb vagy a tar.gz állományt töltsük le. A Debian- felhasználók egyszerûen a dpkg -i offlineimap.deb futtatá- Ez a példa egy hozzáférést – MyMail – határoz meg. sával telepíthetik, azután pedig az apt-get -f install segít- A MyMail postafiókot a hostname.example.com kiszolgálóról ségével ellenõrizhetik a függõségeket és kereshetik meg a hi- hangoljuk össze a helyi gépünkön levõ ~/MyMail könyv- ányzó elemeket. Ha nem Debiant használunk, gyõzõdjünk tárral. Minden távoli alkönyvtár lemásolódik. Amennyiben

www.linuxvilag.hu 2004. június 17 Vezérfonal

IMAP-szolgáltatónk nem támogatja az SSL titkosítást, töröl- mú sort hozzáadhatjuk a példánkban szereplõ MyMailRemote jük az ssl = yes sort. Most futtassuk az offlineimap-ot. tárolási szakaszhoz. Ekkor az OfflineIMAP három kapcsola- Ekkor megkérdezi tõlünk a jelszót, azután egyszer elvégzi tot tud létesíteni a kiszolgálóval. postafiókjaink összehangolását, majd kilép. Ha folyamatos összehangolást végzünk a fent leírt autorefresh lehetõséggel, egy újabb késedelmi forrás Folyamatos összehangolás jelentkezik. Minden alkalommal, amikor az OfflineIMAP Amennyiben levélolvasás közben élõ internet-kapcsolatunk elindít egy hozzáférés-összehangolást, kapcsolatba lép a ki- van, az OfflineIMAP segítségével folyamatosan összehan- szolgálóval. Amint a szóban forgó összehangolás megtörté- golhatjuk helyi könyvtárainkat a kiszolgálóval. Ehhez egy- nik, megszünteti a kapcsolatot. E kapcsolatok létrehozása szerûen egy önfrissítés sort adjunk hozzá a hozzáférési sza- gyakran lassú. Az OfflineIMAP lehetõséget teremt arra, kaszhoz. A hozzáférési szakaszunkat például átírhatjuk hogy az összehangolások közötti szünetekben is fennálljon olyan módon is, hogy a következõképpen nézzen ki: a kapcsolat. A gondot az okozza, hogy egyes kiszolgálók a hosszú ideig tétlen ügyfelekkel megszüntetik a kapcsola- [Account MyMail] tot. Az OfflineIMAP oly módon oldja meg a nehézséget, localrepository = MyMailLocal hogy idõrõl idõre küld néhány bitet, s így nem járnak le remoterepository = MyMailRemote a számlálók. Fenti lehetõségek kiaknázására a következõ autorefresh = 5 sorokat adjuk hozzá a távoli tárolási szakaszhoz: © Kiskapu Kft. Minden jog fenntartva holdconnectionopen = true Ha most lefuttatjuk az OfflineIMAP-ot, akkor postafiókjaink keepalive = 60 összehangolását akként fogja végezni mint eddig, de ha be- fejezte, a kilépés helyett továbbfut, és ötpercenként össze- A keepalive – azaz életben tartás – másodpercekben, míg hangolja a levelezésünket. az autorefresh percekben lett megadva.

Több hozzáférés összehangolása Felhasználói felületek Az OfflineIMAP több hozzáférés összehangolására is alkal- Az OfflineIMAP-hez több különbözõ felhasználói felület mas. Például lehet, hogy azt szeretnénk, ha leveleket tud- tartozik. A két legelterjedtebb a Tk.Blinkenlights és nánk olvasni mind a munkahelyi, mind az otthoni levelezõ- a Curses.Blinkenlights. Az elõbbi egy kis grafikus ablakot programunkkal. Ennek eléréséhez adjunk hozzá egy hozzá- jelenít meg az OfflineIMAP állapotáról X-felületen, az utób- férést és két tárolási szakaszt minden hozzáféréshez, eköz- bi pedig parancssorban fut és egy tetszetõs állapotkövetõ- ben ügyeljünk rá, hogy egyedi neveket használjunk. Ez- ben jelenít meg. után adjuk hozzá a hozzáférést az általános szakaszban lé- A Tk.Blinkenlights felhasználói felületen a Sync immediately võ hozzáférési listához. A neveket vesszõvel válasszuk el (Azonnali összehangolás) gombra kattintva utasíthatjuk, egymástól. hogy rögtön végezze el az összehangolást. A helyi oldalon ügyelnünk kell arra, hogy minden egyes A Curses.Blinkenlights felülettel dolgozva ugyanezt úgy hozzáférés összehangolása különbözõ könyvtárban történ- érhetjük el, hogy rákattintunk a hozzáférés neve melletti jen, különben keveredés és minõségromlás léphet fel. számra. Mindkét felület megjeleníti a folyamatban levõ te- vékenységek naplóját. Továbbá egy elbûvölõ, élénk fényû Teljesítménynövelés állapotkijelzõt is bekapcsolhatunk, hogy ne unatkozzunk, Az OfflineIMAP alapbeállításai, mint a fenti példák is mu- miközben az összehangolás eseményeit követjük. tatják, elég óvatosak. Éppen csak üzembe helyeztük, máris A TTY.TTYUI illesztõfelület Curses támogatás nélkül is fut a lehetõ legtöbb IMAP-kiszolgálóval igyekszik mûködni, így – nem használ sem színes, sem parancssoros ellenõrzést. a néha zavart keltõ emelt szintû tulajdonságokat az alapbe- Jelszóbevitelt tud olvasni, egyéb beavatkozási lehetõséget állítások letiltják. viszont nem nyújt. Ha sok alkönytárunk van vagy minden alkönyvtárban sok A Noninteractive.Basic felhasználói felület soha nem fogad a levelünk, az összehangolási folyamat bizony lassú lehet. bemenõ adatokat a felhasználótól, viszont állapotüzenete- Ez különösen akkor igaz, ha hosszú válaszidejû internet- ket képes kijelezni. Ha a távoli kiszolgálóra történõ belépés- kapcsolatot használunk, például modemest vagy mûholdast. hez jelszó szükséges, a beállításfájl távoli tárolási szakaszá- Az OfflineIMAP, hogy felgyorsítsa az eseményeket, képes hoz a következõ sort adjuk hozzá: egyszerre több kapcsolatot is létesíteni a kiszolgálónkkal. remotepass = mypassword Ekkor több feladatot párhuzamosan tud elvégezni. Például egyidejûleg tudja végrehajtani három üzenet letöltését és Végül pedig a Noninteractive.Quiet egy lépéssel tovább- két alkönyvtár összehangolását. megy és nem ad ki állapotüzeneteket. Egyes felhasználók Az OfflineIMAP több beállítási lehetõséget kínál: elõször az OfflineIMAP-ot elõszeretettel futtatják önmûködõ indí- is az általános szakaszhoz hozzá kellene adnunk tással (cron), erre a Noninteractive.Quiet kiválóan alkalmas. a maxsyncaccounts = 5 sort. Ez lehetõvé teszi az Kétféleképpen határozhatjuk meg, melyik felhasználói fe- OfflineIMAP-nak, hogy egyidejûleg több hozzáférést hangol- lület kerüljön alkalmazásra. Az elsõ lehetõség, hogy az jon össze, ami majdnem mindig üdvös dolog. Másodszor OfflineIMAP parancssorában a -u kapcsolót használjuk. minden egyes hozzáférés távoli részére vonatkozó tárolási Kiadhatjuk például az offlineimap -u részekben szabályozhatjuk hány párhuzamos kapcsolatot Curses.Blinkenlights utasítást. A másik lehetõség, hogy használjon a program. Például a maxconnections = 3 tartal- az általános szakaszhoz hozzáadunk egy ui sort:

18 Linuxvilág Vezérfonal

ui = Tk.Blinkenlights, Curses.Blinkenlights, nametrans = lambda foldername: TTY.TTYUI re.sub(´^INBOX\.´, ´´, foldername)

Ilyen beállítás esetén az OfflineIMAP elõször A folderfilter-hez hasonlóan a nametrans is Python- a Tk.Blinkenlights felülettel próbálkozik. Ha a gépünkön le- kifejezést fogad. Ez a kifejezés változóként alkönyvtárnevet võ Python nem támogatja a Tk-t, vagy pedig nem X-et hasz- vesz át, és az új és javított alkönyvtárnevet fogja visszaadni. nálunk, akkor a Curses.Blinkenlights felülettel próbálkozik. Ebben a példában minden INBOX.-tal kezdõdõ nevû al- Ha ez sem vezet eredményre, megkísérli a TTY.TTYUI felü- könyvtár nevébõl törlõdik a kezdõ „INBOX.” karakterlánc. letet használni. Ha egyik sem mûködik, az OfflineIMAP hi- Fontos, hogy ne csak a név elején levõ „INBOX” törlõdjék, baüzenettel megszakítja a próbálkozásokat. hiszen INBOX alkönyvtár is létezik, s így egy üres nevû al- könyvtár maradna ránk, ami bizony hálátlan dolog lenne. Alkönyvtárak kijelölése A nametrans mûveleteinkkel is bánjunk körültekintõen. Alapértelmezés szerint az OfflineIMAP lekérdezi a távoli Ügyeljünk rá, hogy a nametrans minden egyes alkönyvtár IMAP-kiszolgálót, mely alkönyvtárak érhetõk el számunkra, esetében különbözõ értéket adjon vissza. Ha két különbözõ és ezek mindegyikét összehangolja. A távoli rész tárolási sza- alkönyvtár számára azonos értéket ad, nemkívánatos ese- kaszához hozzáadható a folderfilter lehetõség, ez behatá- mények is bekövetkezhetnek. rolja az áthozott adatokat. A folderfilter rendkívül nagy A nametrans ugyanis nem változtatja meg a folderfilter-t, teljesítõképességû. Az eddig bemutatott lehetõségekkel ellen- vagyis folderfilter parancsaink még azelõtt hajtanak © Kiskapu Kft. Minden jog fenntartva tétben a folderfilter valóban azt várja, hogy Python-függ- végre mûveleteket az alkönyvtárakon, mielõtt a nametrans vénynek adjuk át. A függvény egy változót vesz át és igaz ér- mûködésbe lépne. tékkel tér vissza, ha az adott alkönyvtárat is kezelni kell. A Python egy lambda nevû szolgáltatást is kínál, amellyel Két IMAP-kiszolgáló összehangolása menet közben függvényeket tudunk létrehozni. Így össze- Egyes levelezõprogramok nem támogatják eléggé a Maildir tett mûveleteket is szerkeszthetünk. Lássunk néhány pél- levéltárolási formát. Ezek számára az OfflineIMAP új lehe- dát! Kijelölhetjük azokat az alkönyvtárakat, amelyeket tõséget vezetett be, azaz két IMAP-kiszolgálót közvetlenül össze szeretnénk hangolni. A Pythont használhatjuk mûve- is össze lehessen hangolni. Az ötlet a következõ: a helyi gé- letekbe ágyazva is, hogy ellenõrizzük, szerepel-e az adott peinkre IMAP-kiszolgálót telepítünk. Levelezõprogramunk, postafiók a listában: ami már rendelkezhet lassú IMAP-támogatással, gyorsan eléri a saját gépünkön levõ IMAP-kiszolgálót. Az olvasó al- folderfilter = lambda foldername: foldername in kalmazásnak nem kell tudnia, hogy az OfflineIMAP az al- [´INBOX´, ´Sent Mail´, könyvtárakba rakosgatja a leveleket. Ennek megvalósításá- ´Received´] hoz néhány egyszerû módosítást kell végrehajtanunk helyi tárolási szakaszunkban. Elõször is változtassuk meg a tí- Ez a kód csak a három megnevezett alkönyvtárat hangolja pust Maildir-rõl IMAP-ra. Ezután töröljük a localfolders össze. Figyeljünk arra, hogy a második és harmadik sor bel- és egyéb Maildir adatokat, és helyettük válasszuk ki jebb kezdõdik – a behúzottan írt sorokat az elemzõ ugyan- a remotehost és remoteuser IMAP-beállításokat. Végül pe- azon utasítás részeinek tekinti. dig töröljük ki a ~/.offlineimap könyvtárunkat, hogy a régi Kizárás céljából is kijelölhetünk alkönyvtárakat: állapotadatok biztosan ne bújhassanak meg rossz helyen. Bizonyos lehetõségek még mindig csak a távoli szakaszban folderfilter = lambda foldername: foldername not in támogatottak – két példa a nametrans és a folderfilter –, [´Spam´, ´Junk´] de magára a kapcsolatra vonatkozó lehetõségek (options) mindkét helyen támogatottak. Helyi IMAP-kiszolgálónk va- Ebben a példában a Spam és Junk kivételével minden al- lójában a távoli gépen is lehet. könyvtár össze lesz hangolva. Hagyományos kifejezéseket is használhatunk: Összegzés Az OfflineIMAP hatékony levelezõalkalmazás. Írásomban folderfilter = lambda foldername: az OfflineIMAP alapjait mutattam be. További ismereteket not re.search(´(^Trash$|Del)´, foldername) az OfflineIMAP honlapról szerezhetünk és a példaként szolgáló beállításfájlok alapján. Python programozók talál- Ez a kódrészlet kizárja a Trash nevû, valamint az összes hatnak itt néhány „szép” buktatót is, amelyek Python- olyan alkönyvtárat, amely tartalmazza a „Del” szöveget. kódok fejlesztésekor jelentkezhetnek.

Alkönyvtárak nevének módosítása Linux Journal 2004. március, 119. szám Elõfordulhat, hogy szeretnénk módosítani az alkönyvtárak nevét, mielõtt mentenénk õket. Az OfflineIMAP e mûvelet John Goerzen ([email protected]) 1996 óta elvégzésére a nametrans nevû lehetõséget biztosítja, amely fejleszt Linux-programokat, jelenleg a Software in a távoli tárolási szakaszban is meg van adva. Egyes IMAP- the Public Interest, Inc. alelnöke. kiszolgálók, mint például a Courier, minden alkönyvtár elejé- re beírnak egy „INBOX.” szöveget, ami bizony bosszantó is lehet. Ettõl szabadulhatunk meg a nametrans lehetõséggel:

www.linuxvilag.hu 2004. június 19 Szaktekintély

Alkalmazásszintû proxyzás a Zorp segítségével (2. rész) A Zorp proxykiszolgáló a rendszermag Netfilterével együttmûködve alkalmazásszintû, az ügyfelek számára átlátszó proxyzást végez.

© Kiskapu Kft. Minden jog fenntartva lõzõ írásomban ódákat zengtem az alkalmazásszintû products/zorp_gpl címrõl érhetõk el. Példáim ugyan a Zorp proxytûzfalakról, valamint Scheidler Balázs kereskedel- GPL 2.0-s változata alapján készültek, de Zorp Pro 2.0-s mi és ingyenes változatban egyaránt elérhetõ Zorp alatt is érvényesek. A Zorp Pro rendelkezik néhány olyan Etûzfalcsomagját mutattam be. Ez alkalommal ott folytatom, proxymodullal, amelyeket a Zorp GPL nem tartalmaz, de ahol abbahagytam, vagyis áttekintem a Zorpnak azokat az a közös modulok azonosan mûködnek. alapszintû beállításait, amelyekre egy belsõ hálózat – demili- tarizált zóna (DMZ) – külsõ hálózat környezetben szükség le- A környezet het. Csak néhány szolgáltatás beállításáról lesz szó, de bízom A Zorp tûzfalanként háromnál jóval több csatoló támogatá- abban, hogy ezek alapján a leendõ Zorp-felhasználók meg sára is képes, ám a leggyakrabban az 1. ábrán láthatóhoz ha- tudják kezdeni saját intelligens tûzfalrendszerük kiépítését. sonló, háromlaki rendszerekkel találkozhatunk. A további- Idézzük fel néhány szóban az alkalmazásszintû proxyk fel- akban ilyen hálózat meglétét feltételezem. adatát. A proxyk nem pusztán továbbadják, sokkal inkább Amint az 1. ábráról is kitûnik, összesen három adatáramlási közvetítik a rajtuk keresztül haladó forgalmat. Például, ha irányt különböztetünk meg: HTTP-forgalom az internet és a belsõ hálózat valamelyik felhasználója HTTP-kapcsolatot a DMZ-ben lévõ webkiszolgáló között; HTTP-forgalom kezdeményez egy a proxytûzfal túloldalán lévõ kiszolgáló- a belsõ hálózat és az internet között; HTTP és SSH-forga- val, a tûzfal elfogja és megtöri a kapcsolatot; így kiszolgáló lom a belsõ hálózat és a DMZ között. Nem térek ki olyan, (az ügyfél felõl nézve) és ügyfél (a célkiszolgáló oldaláról még az egyszerûbb hálózatokban is általánosan használt szemlélve) szerepet egyaránt játszik. szolgáltatásokra, mint az IMAP, az NNTP vagy az FTP. Ha A Zorp átlátszó proxykat használ, a Zorp tûzfal mögött dol- megérted, hogyan tudod beállítani a Zorpot a fenti alap- gozó felhasználóknak tehát nem kell tudniuk róla, hogy szolgáltatások támogatására, akkor a többivel is boldogulni tûzfal védi õket – olyan módon érhetik el a külsõ címeket fogsz. A DNS és az SMTP viszont szóba fog kerülni, függet- és állomásneveket, hogy saját alkalmazásaikban nem kell lenül attól, hogy az 1. ábráról lemaradtak. a proxyval való kapcsolattartáshoz szükséges beállításokat megadniuk. Ezt fontos kiemelni, mert lényeges ellenérv- Dummy csatoló megadása ként szolgál, ha azzal az idejétmúlt nézettel találkozunk, Az elsõ dolog, amivel foglalkoznunk kell, nem annyira hogy a proxyk szükségszerûen sokkal bonyolultabbak, mint a Zorp, inkább a Tproxy rendszermagmodul mûködésével a másfajta tûzfalak. A Zorp használatakor a bonyolultság függ össze. Átlátszó proxyzásnál a Tproxynak szüksége van a háttérrendszernél jelentkezik, a felhasználók boldogságát egy dummy (néma, ál-) hálózati csatolóra, amelyhez az így semmi sem árnyékolja be. adatfolyamok kettéválasztásakor kötõdni tud. Ennek a csa- Ugyanakkor a Zorp használata a rendszergazda számára sem tolónak olyan IP-címet kell adni, amely az interneten nem feltétlenül jelenti a kínok kínját. Ha engem kérdeznének, azt irányítható, és a tûzfalhoz csatlakozó hálózatok egyikébe mondanám, a beállítása bonyolultabb, mint az iptables be- sem tartozik. üzemelése, de könnyebb, mint a sendmail.cf megírása. Ne is A 2.4-es rendszermagok alapértelmezett fordítás után várjunk tovább, húzzuk fel saját Zorp tûzfalunkat! is támogatják a dummy hálózati csatolók használatát. Valószínûleg neked is van ilyened, hacsak nem a dummy Elõfeltételek illesztõprogram támogatása nélkül fordítottad a rend- A továbbiakban feltételezem, hogy elõzõ írásom alapján si- szermagot. Ha így tettél, most új, dummy-támogatás- keresen foltozott 2.4-es rendszermaggal rendelkezel, sal rendelkezõ rendszermagra lesz szükséged. A Tproxy iptables-példányod pedig támogatja a Tproxy modult mûködéséhez mindössze annyit kell tenned, hogy (lásd  http://www.balabit.hu/products/oss/tproxy). Felte- megadsz egy dummy0 csatolót, és nem irányítható, szem azt is, hogy lefordítottad és telepítetted a libzorpll, használaton kívüli címet rendelsz hozzá. Debian alatt a zorp és a zorp-modules csomagokat – forráskód vagy a következõ sorokat kell hozzáadnod a /etc/networking deb-csomag formájában ezek a  http://www.balabit.com/ /interfaces fájlhoz:

20 Linuxvilág Szaktekintély

a Linux 2.4-es tûzfalkódjának neve, az iptables pedig az a parancs, amellyel a rá vonatkozó beállításokat meg- adhatjuk.) Internet HTTP (Piros) (TCP 80) Emellett bizonyos szolgáltatásokat, különösen a DNS-t és DMZ az SMTP-t ajánlott öntartalmazó proxyként (self-contained (Lila) 192.168.1.0/24 proxies) futtatni a tûzfalon. Ha így teszel, akkor az iptables eth0 segítségével közvetlenül be kell állítanod a tûzfalat e kap- csolatok elfogadására. Például a BIND v9 támogatja a látha- Tûzfal eth2 tár-megosztásos (split-horizon) DNS-szolgáltatást, amely

HTTP eth1 Webkiszolgáló a külsõ és a belsõ ügyfeleket más-más zónafájlokból szolgál- (TCP 80) 192.168.1.240 ja ki. Hasonlóan a Postfixet is könnyen be lehet állítani oly HTTP (TCP 80) módon, hogy közvetítõként szolgáljon a belsõ állomások SSH (TCP 22) számára, de kizárólag helyi szállítást végezzen, ha külsõ ál- Belsõ hálózat (Kék) lomásokkal kerül kapcsolatba. Ilyen proxyjellegû szolgálta- 10.0.1.0/24 tásokat sokszor érdemes a tûzfalon futtatni, feltéve, hogy beállításuk során rendkívüli gondossággal járunk el. Ha nem vagy jártas a Netfilter/iptables kezelésében, akkor az alábbiakat nem nagyon fogod érteni, és sajnos helyhiány © Kiskapu Kft. Minden jog fenntartva 1. ábra Példahálózat miatt nekem sincs módom arra, hogy részletesebb magyará- zatokkal szolgáljak. Sajnálom, de a Zorp nem kezdõknek való eszköz. Dióhéjban csak annyit, hogy az iptables segít- ségével minden csomagot egyszerû ellenõrzésnek vetünk Internet alá, amely során megpróbáljuk kiszûrni a hamisított IP- (Piros) címeket. Ezután elfogjuk az átlátszó proxyzásra kiszemelt csomagokat, majd a normál FORWARD lánc helyett egyedi lán- HTTP cok segítségével dolgozzuk fel õket. Továbbítani lényegében (TCP 80) semmit nem fogunk. Végül gondoskodunk néhány, magá- nak a tûzfalnak küldött csomag célba juttatásáról. Tûzfal A Zorp Próhoz egy iptables-utils nevû parancsfájlgyûjte- HTTP mény is tartozik, ezek segítségével lényegesen leegyszerû- (TCP 80) södik az iptables Zorp-vonatkozású kezelése. Az iptables- utils ingyenes kiadása a Zorp GPL 2.0-s változathoz  Belsõ hálózat a http://www.balabit.com/downloads/zorp/zorp-os/pool/ (Kék) i/iptables-utils címrõl tölthetõ le. Mindenkinek javaslom, 10.0.1.0/24 hogy próbálkozzon meg az iptables-utils használatával, segítségével ugyanis sokkal könnyebb kipróbálni egy iptables-beállítást, mielõtt érvénybe léptetnénk. 2. ábra HTTP-kapcsolat, amely a kék számára kimenõ, Írásmódját helyhiány miatt nem ismertethetem, ezért az a piros számára bejövõ alábbi példa egy hagyományos iptables indítóparancsfájl lesz. Tekintsük át a parancsfájl legfontosabb részeit! Elöl találhatók a különleges tproxy tábla szabályai, ezeket auto dummy0 a Tproxy modul adja hozzá a Netfilterhez (1. kódrészlet). iface dummy0 inet static Itt saját hálózataink mindegyikéhez egy-egy egyedi proxy- address 1.2.3.4 láncot adunk meg: PRkék a belsõ hálózat felõl indított, netmask 255.255.255.255 proxyzott kapcsolatok számára; PRlila a DMZ felõl indított és proxyzott kapcsolatokhoz (ebben az esetben nincs ilyen); Más terjesztések alatt ettõl eltérhet a hálózati beállítások ke- PRpiros az internetrõl indított, proxyzott kapcsolatok zelése. A Red Hat- és a SuSE-terjesztések például ifcfg fájlo- számára. kat helyeznek a /etc/sysconfig/network könyvtárba. Remé- Az 1. kódrészletben több érdekes dolgot is találunk. Elõször is lem, azért könnyen meg tudod fejteni a jelentésüket. Talán a tproxy tábla saját PREROUTING és OUTPUT kimeneti lánco- feltûnt, hogy az imént 32 bites alhálózati maszkot adtam kat tartalmaz. Zorp alatt a tproxy/PREROUTING lánccal to- meg. Miért? Ismétlem, a dummy csatoló címének egyik há- vábbítjuk a csomagokat a megfelelõ egyedi proxylánc felé lózatba sem kell tartoznia. (PRkék), annak alapján, hogy az egyes csomagok mely csa- tolón érkeznek be. Mint minden egyedi iptables láncnál, Beállítások: iptables ha egy csomag úgy halad keresztül ezek valamelyikén, Jogos a kérdés, most a Zorp vagy az iptables a téma? hogy egyik szabállyal sem mutat egyezést, akkor ahhoz A helyzet az, hogy a Zorp nem az iptables helyett, hanem a sorhoz kerül vissza, amely a csomagot az egyedi láncba vele együttmûködve végzi feladatát. Maga a Tproxy is egy küldõ szabályt közvetlenül követi. Ez az oka annak, hogy Netfilter-folt. A Tproxyt az iptables paranccsal tudjuk be- az egyedi láncok nem tartalmaznak alapértelmezett célokat. állítani, ahogy a Netfilter egyéb részeit is. (A Netfilter A PRkék láncban két szabály található, mind a kettõ a belsõ

www.linuxvilag.hu 2004. június 21 Szaktekintély

1. kódrészlet Tproxy-szabályok 2. kódrészlet A szûrõtábla INPUT lánca

iptables -t tproxy -P PREROUTING ACCEPT iptables -P INPUT DROP iptables -t tproxy -A PREROUTING -i eth1 -j iptables -A INPUT -j zaj PRkék iptables -A INPUT -j hamis iptables -t tproxy -A PREROUTING -i eth2 -j iptables -A INPUT -m tproxy -j ACCEPT PRlila iptables -A INPUT -m state \ iptables -t tproxy -A PREROUTING -i eth0 -j --state ESTABLISHED,RELATED -j ACCEPT PRpiros iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -j LOkék iptables -t tproxy -P OUTPUT ACCEPT iptables -A INPUT -i eth0 -j LOpiros iptables -A INPUT -i eth2 -j LOlila iptables -t tproxy -N PRkék iptables -A INPUT -j LOG --log-prefix "INPUT iptables -t tproxy -A PRkék -p tcp --dport 80 \ DROP: " -j TPROXY --on-port 50080 iptables -A INPUT -j DROP iptables -t tproxy -A PRkék -p tcp --dport 22 \ © Kiskapu Kft. Minden jog fenntartva ! -d tuzfal.pelda.net -j TPROXY --on-port 50022 en, hogy melyik csatolón keresztül érkeztek be. A HEkék iptables -t tproxy -N PRlila lánccal elfogadjuk a DNS-lekérdezéseket, az SSH- és az SMTP-kapcsolatokat. A HElila csak a DNS-lekérdezéseket iptables -t tproxy -N PRpiros engedélyezi. Végül a HEpiros lánccal az internetszolgáltató iptables -t tproxy -A PRpiros -p tcp --dport DNS-kiszolgálójának (upstream.dns.server) válaszait és az 80 \ SMTP-kapcsolatokat engedjük tovább. Az egyedi láncok kö- -j TPROXY --on-port 50080 zül az utolsó három a legegyszerûbb: a zaj a linuxos tûzfa- lak naplóit hagyományosan zagyvasággá változtató NETBIOS-csomagokat tartja távol; a hamis az egyértelmûen hálózat felõl kiindulni engedélyezett forgalomtípushoz egy- hamisított, vagyis érvénytelen forrás-IP-címmel érkezõ cso- egy. Minden kimenõ HTTP-forgalom proxyzásra kerül, va- magokat szûri ki; a hamis_eldob pedig a hamis által elfogott gyis átadásra egy az 50080-as kapun csücsülõ csomagokat naplózza és dobja el. proxyfolyamat felé. Az SSH-szabály annyiban más, hogy A 4. kódrészlet iptables példaparancsfájlunk maradékát tar- itt a Netfilternek csak addig kell proxyznia a kimenõ SSH- talmazza, egy lényegében üres FORWARD láncot egy alapér- forgalmat, amíg az nem maga a tûzfal felé irányul. Ugyan telmezett DROP házirenddel, valamint egy üres OUTPUT lán- az 1. ábrán ezt a forgalomtípust nem tüntettem fel cot alapértelmezett ACCEPT lánccal. Ismétlem, ez egy (Kék®SSH®Tûzfal), azonban a tûzfal felügyeletéhez szük- proxytûzfal, így semmit sem fog továbbítani. A tûzfalról ség van rá. Ehhez az adatforgalomhoz a normál szûrõtábla származó csomagokra vonatkozó alapértelmezett ACCEPT INPUT láncában is szükséges egy szabály. A példahálózatban házirend miatt lehet, hogy gombóc marad a torkodban, de a DMZ-be helyezett webkiszolgáló nem kezdeményezhet semmi gond, Zorp alapú tûzfal esetében az ilyesmi szüksé- semmilyen kapcsolatot, ezért a PRlila lánc üres maradt. ges és biztonságos is. Lépjünk tovább a normál szûrõtáblára. Ez az a Netfilter tábla, amit valószínûleg sokan ismernek, az iptables ezt Zorp-példányainak beállítása tekinti alapértelmezettként, ha a -t kapcsolót elhagyjuk. Végre elérkeztünk a Zorp beállításait megadó fájlokhoz. A 2. kódrészletben a példatûzfal szûrõtáblájának INPUT szabá- Ezeket a /etc/zorp könyvtárban találjuk; mindjárt vessük is lyai láthatók. rá magunkat az instances.conf fájlra, amely megadja a Zorp- Az elsõ néhány sor segítségével – egyedi láncok felhaszná- példányokat, illetve szabályozza a mûködésüket. Ökölsza- lásával – megpróbáljuk kiszûrni a hamisított IP-címeket. Ha bályként elfogadható, hogy hálózati zónánként egy pél- egy csomag túljut ezen az ellenõrzésen, akkor lejjebb lép az dány szükséges, ezért példakörnyezetünkben, mint már INPUT láncban. A Tproxy modul által létrehozott csomago- nyilván kitaláltad, a piros, a kék és a lila zónához egyaránt kat elfogadjuk, nemkülönben a meglévõ és engedélyezett egy-egy példány tartozik. Az 5. kódrészlet szemlélteti, ho- kapcsolatokhoz tartozókat és a hurokcsomagokat (loopback gyan kell kinéznie egy instances.conf fájlnak. packets; 4–6. sor). Következõként, ahogy a tproxy tábla Minden sorban az elsõ mezõ a példány neve. A nevet sza- PREROUTING láncával is, a bejövõ csatolójuk alapján a cso- badon választhatjuk meg, de ügyeljünk arra, hogy a Zorp magokat egyedi láncokhoz irányítjuk. Ezeket az egyedi lán- policy.py beállításfájljában hibátlanul kell hivatkoznunk rá. cokat helyi célcímmel ellátott csomagokhoz készítettük, Ha már itt tartunk, amennyiben úgy gondoljuk, az egyes nem proxyozott csomagokhoz, ezért LOkék és hasonló ne- példányokhoz külön beállítófájlokat is megadhatunk, de vekkel láttam el õket. Ezután lássuk a szûrõtábla egyedi egyetlen fájlban felsorolhatjuk több zóna beállításait is. láncait (3. kódrészlet). Teljesen mindegy, melyik megoldást választjuk, az Az egyedi láncok közül az elsõ három a legfontosabb: instances.conf -p kapcsolója adja meg a Zorpnak, hogy HEkék, HElila és HEpiros, ezek adják meg a Netfilternek, melyik példányhoz melyik fájl társul. hogyan kezelje a tûzfalnak küldött csomagokat, attól függõ- A -v kapcsolóval a naplóüzenetek részletességét szabályoz-

22 Linuxvilág Szaktekintély

3. kódrészlet Egyedi láncok a szûrõtáblában 4. kódrészlet A szûrõtábla FORWARD és OUTPUT láncai iptables -N LOkék iptables -A LOkék -p tcp --dport 22 --syn -j iptables -P FORWARD DROP ACCEPT iptables -A FORWARD -j LOG \ iptables -A LOkék -p udp --dport 53 -j ACCEPT --log-prefix "FORWARD DROP: " iptables -A LOkék -p tcp --dport 25 --syn -j iptables -A FORWARD -j DROP ACCEPT iptables -A LOkék -j LOG --log-prefix "LOkék iptables -P OUTPUT ACCEPT DROP: " iptables -A LOkék -j DROP

iptables -N LOlila 5. kódrészlet Az instances.conf iptables -A LOlila -p udp --dport 53 -j ACCEPT iptables -A LOlila -j LOG \ kék -v3 -p /etc/zorp/policy.py \ --log-prefix "LOlila DROP: " --autobind-ip 1.2.3.4 © Kiskapu Kft. Minden jog fenntartva iptables -A LOlila -j DROP lila -v3 -p /etc/zorp/policy.py \ --autobind-ip 1.2.3.4 iptables -N LOpiros piros -v3 -p /etc/zorp/policy.py \ iptables -A LOpiros -p udp -s --autobind-ip 1.2.3.4 upstream.dns.server \ -sport 53 -j ACCEPT iptables -A LOpiros -p tcp --dport 25 --syn -j  ACCEPT 6. kódrészlet A policy.py; iptables -A LOpiros -j LOG --log-prefix "LOpiros 1. rész (átfogó érvényû beállítások) DROP: " iptables -A LOpiros -j DROP from Zorp.Core import * from Zorp.Plug import * iptables -N zaj from Zorp.Http import * iptables -A zaj -p udp --dport 137:139 -j DROP iptables -A zaj -j RETURN InetZone("kékzóna", "10.0.1.0/24", outbound_services=["kék_http", "kék_ssh"], iptables -N hamis iptables -A hamis -i lo -j RETURN InetZone("lilazóna", "192.168.1.0/24", iptables -A hamis! -i lo -s 127.0.0.0/8 -j inbound_services=["kék_http", "kék_ssh",  hamis_eldob "piros_http"]) iptables -A hamis -i eth1 ! -s 10.0.1.0/24 \ -j hamis_eldob InetZone("piroszóna", "0.0.0.0/0", iptables -A hamis! -i eth1 -s 10.0.1.0/24 \ outbound_services=["piros_http"], -j hamis_eldob inbound_services=["*"]) iptables -A hamis -i eth2 ! -s 192.168.1.0/24 \ -j hamis_eldob InetZone("helyizóna", "127.0.0.0/8", iptables -A hamis! -i eth2 -s 192.168.1.0/24 \ inbound_services=["*"]) -j hamis_eldob iptables -A hamis -j RETURN # átfogó érvényû szakasz vége

iptables -N hamis_eldob iptables -A hamis_eldob -j LOG \ nézve lehet azonos is, sõt lehetõleg ezt a megoldást vá- --log-prefix "Hamisított csomag: " lasszuk. Az itt megadott címnek értelemszerûen egyeznie iptables -A hamis_eldob -j DROP kell a korábban beállítottal. (Lásd a „Dummy csatoló meg- adása” címû részt.) hatjuk: a 3-as a közepes szint, az 5-ös pedig hibakeresésre A Zorp alkalmazásproxyk beállítása: policy.py használható. Ezzel a kapcsolóval csak a Zorp által létreho- Az iptables parancsfájl határozza meg, hogy a csomagok zott naplóüzenetek tartalmát szabályozhatjuk, a Netfilter/ hogyan jutnak el a proxykhoz, a /etc/zorp/instances.conf pe- iptables naplózására nincs hatással. Végül minden sor egy dig a Zorp indulását szabályozza. Nyilván a Zorp proxy- --autobind-ip beállítással zárul, ez határozza meg, hogy jainak viselkedését is vezérelni kell valahogyan, erre a célra a kapcsolatok proxyzásakor a Zorpnak melyik dummy IP- a /etc/zorp/policy.py fájl szolgál, illetve az a fájl vagy azok hez kell kötnie a Tproxyt. Ez az IP-cím az összes példányra a fájlok, amelyet vagy amelyeket az instances.conf fájlban

www.linuxvilag.hu 2004. június 23 Szaktekintély

hetõ a 6. kódrészlet kékzóna és a piroszóna szakaszában. 7. kódrészlet A policy.py; Fontos, hogy mindkét olyan zóna megadásakor, amit vala- 2. rész (példányok megadása) milyen adatfolyam érint, ugyanazt a szolgáltatásnevet hasz- náljuk (a 2. ábra és a 6. kódrészlet esetében ez a kék_http). def kék(): A 6. kódrészlet kapcsán még annyit mondanék el, hogy a * Service("kék_http", HttpProxy, (csillag) helyettesítõ karakter minden megadott szolgáltatást router=TransparentRouter()) helyettesít. Ez csak elsõ ránézésre jelent sok mindent, a * Service("kék_ssh", PlugProxy, ugyanis csak azokat a szolgáltatásokat helyettesíti, amelyek router=TransparentRouter()) a policy.py fájl szolgáltatás–példány-párosításaiban szerepel- Listener(SockAddrInet(´10.0.1.254´, 50080), nek, és nem az összes lehetséges szolgáltatást. Ne feledjük, "kék_http") hogy a Zorp csak a Netfilter és a Tproxy által hozzá eljuttatott Listener(SockAddrInet(´10.0.1.254´, 50022), csomagokat dolgozza fel. Ha egy zónában sem a bejövõ, sem "kék_ssh") a kimenõ kapcsolatokat nem akarjuk engedélyezni, akkor az inbound_services vagy az outbound_services kulcsszót el- def lila(): hagyhatjuk, illetve üres szögletes zárójelet írhatunk mögé. pass A 7. kódrészlet a policy.py fájl szolgáltatás–példány-megadá- sait tartalmazza. Minden megadás elsõ sorának egy az © Kiskapu Kft. Minden jog fenntartva def piros(): instances.conf fájlban szereplõ példánynévre kell hivatkoz- Service("piros_http", HttpProxy, nia, a további sorokat pedig be kell húzni, a feldolgozás router=DirectedRouter(SockAddrInet(´192.168.1.24 ugyanis a behúzásokra nézve elég finnyás Pythonnal törté- 2´, 80), nik. A megadás nem lehet üres. Ha adott példánytól nem forge_addr=TRUE)) indul ki szolgáltatás, akkor a pass kulcsszót kell használni. Listener(SockAddrInet(´169.254.1.254´, Erre a 7. kódrészlet lila() példányánál láthatunk példát.  50080), Egyéb esetben a megadásnak egy vagy több Service sorból "piros_http") kell állnia, ezek egy vagy több zónamegadásban hivatkozott szolgáltatásnevet és egy Zorp proxymodult tartalmaznak. Utóbbi beépített, az átfogó érvényû befoglaló utasításokkal megneveztünk. A policy.py a megszokott név, de szabadon beemelt vagy egyedi osztályban megadott proxy egyaránt eltérhetünk tõle. A házirendfájl két részbõl áll: az elsõ rész- lehet. A Service sorok utolsó mezõje a router, ez adja ben az átfogó érvényû beállítások találhatók, itt a zónák meg, hogy a proxyzott csomagokat hova kell küldeni. megadása a hálózati címek és a megengedett szolgáltatások A 7. kódrészletben például a piros_http szolgáltatásnál szerint történik. A második rész a szolgáltatás–példány- a forge_addr=TRUE paranccsal változatlan formában adjuk megadásokat tartalmazza, ebben az instances.conf fájlban át az internetrõl érkezõ webes ügyfelek forrás-IP-címét felsorolt példányok megadása a szolgáltatások kiinduló he- a webkiszolgálónknak. Ha ezt a parancsot elhagynánk, lye alapján történik, továbbá itt írhatjuk elõ a szolgáltatások akkor a DMZ-be befutó webes forgalom forrása látszólag alkalmazásproxykhoz való hozzárendelését is. a tûzfal lenne. A 6. kódrészlet teljes egészében tartalmazza policy.py példa- Ugyan a 7. kódrészletben csak a HttpProxy és a PlugProxy fájlunk átfogó érvényû szakaszát. Néhány import pa- (általános célú UDP- és TCP-proxy, amely az alkalmazások ranccsal kezdõdik, ekkor végezzük el a szükséges Python- adatait módosítás nélkül másolja) használatára látunk példát, függvények beemelését. A következõ rész a zónamegadáso- a Zorp GPL FTP, whois, SSL, telnet és finger proxyval is kat tartalmazza. Ha az instances.conf fájlban zónánként egy rendelkezik. Miként már utaltam rá, saját osztályokat is ké- Zorp-példányt adunk meg, akkor az itt használt zónanevek szíthetünk, ha szeretnénk módosítani vagy bõvíteni a meglé- lehetnek hasonlók a példánynevekhez, vagy akár meg is võ proxykat. Könnyedén létrehozhatunk például URL- egyezhetnek velük. A 6. kódrészletben én eltérõ neveket szûrést végzõ HTTP-proxyt, vagy a HTTPS-forgalom intelli- választottam, ezzel is szemléltetni próbáltam a zónanevek gens proxyzására képes, HTTP-proxyra ültetett SSL-proxyt. és a példánynevek egymástól való függetlenségét. Sajnos ezek már magasabb szintekre tartozó témák, amelyek- Minden zónamegadásban az 1. ábrán szereplõ hálózatcí- kel itt nem foglalkozhatunk. Szerencsére a Zorp Python mek valamelyikét és az engedélyezett szolgáltatások meg- proxymoduljai bõségesen el vannak látva megjegyzésekkel. adását találjuk. A szolgáltatásneveket szabadon választhat- A 7. kódrészletben szereplõ TransparentRouter egyszerûen juk meg, használatukra a következõ részben, a szolgáltatás- proxyzza a csomagokat az ügyfél által megadott cél-IP-címre példányok megadásakor kerül sor. Az utasításokkal kapcso- és -kapura. A piros példány piros_http szolgáltatásánál latban fontos kiemelni, hogy a bejövõ és a kimenõ irányo- azonnal láthatunk példát a DirectedRouter használatára is, kat mindig a zónához vagy a hálózathoz, és nem a tûzfal- ennél kötelezõ érvényû cél-IP-címet és -kaput is elõ kell írni. hoz viszonyítva kell érteni. Egy szolgáltatás–példány-megadás minden Service sorá- A 2. ábrán követhetjük, hogy a belsõ hálózat–internet irá- hoz tartoznia kell egy Listener sornak. Ez a sor adja meg nyú HTTP-kapcsolatok proxyzott kapcsolatként viselked- a Zorpnak, hogy melyik helyi (tûzfal) IP-címhez és kapuhoz nek. Az ábra alapján egyértelmû, hogy a teljes kapcsolat lét- kell a szolgáltatásnak kötõdnie. Furcsának tûnhet, hogy rejöttéhez egyrészt szükség lesz egy kimenõ kapcsolatra a 7. kódrészlet Listener soraiban elég magas sorszámú ka- a belsõ zónából (kék), valamint egy bejövõ kapcsolatra az puk szerepelnek, 80 helyett 50080 és 22 helyett 50022. Ne internetzónába (piros). Ennek megvalósulása rendre követ- feledkezzünk meg azonban arról, hogy mindegyik proxy

24 Linuxvilág Szaktekintély  a Netfilteren keresztül, a rendszermagtól kapja a csomago- kat, nem pedig közvetlenül az ügyfelektõl. Az itt megadott KAPCSOLÓDÓ CÍMEK kapuszámoknak tehát egyezniük kell a tproxy tábla Netfilter-szabályaiban meghatározottakkal (1. kódrészlet). A Zorp készítõinek (Balabit Kft.) magyar nyelvû honlapja Már említettem, hogy míg a HttpProxy egy teljes mérték-  http://www.balabit.hu címen érhetõ el. ben alkalmazástudatos, a helyes HTTP-mûködés érdeké- A ZorpOS letöltési könyvtárának gyökerében található ben a vonatkozó RFC-ket mindenben követõ proxy, illetve néhány olyan eszköz, amelyekkel a Zorp GPL használata a PlugProxy egy általános célú proxy. A PlugProxy még így jóval könnyebbé válik (többek közt az iptables-utils, is jobb védelmet nyújt, mint a puszta csomagszûrés, ugyan- Tproxy-képes Linux-rendszermag és iptables parancs). is még az önmagában, alkalmazástudatos mûködés nélkül Ezek lényegében a Zorp Próval beszerezhetõ Debian- végzett proxyzás is többre képes, mint a Netfilter, hiszen terjesztés ingyenes részei, ez az oka annak, hogy utóbbival ellentétben meg tudja védeni rendszerünket az a ZorpOS-ben minden Debian csomagok formájában alacsony szintû támadásoktól. szerepel. Ha nem Debiant használsz, akkor minden szükséges elemet megtalálsz a pool könyvtár alkönyvtá- Összegzés raiban. Az egyes csomagok alkönyvtáraiban legfelül for- Talán mondanom sem kell, rendkívül felszínesen tekintettem ráskódokat tartalmazó tar.gz fájlok találhatók. Ha csak át a Zorp GPL szolgáltatásait. Messze ez a legbonyolul- 

Debiant használsz, akkor a http://www.balabit.com/ © Kiskapu Kft. Minden jog fenntartva tabb eszköz, mellyel ezeken az oldalakon valaha is foglalkoz- downloads/zorp/zorp címet apt-get forrásként hasz- tam, de bízom benne, senki nem fogja elvesztegetettnek hin- nálhatod. ni azt az idõt, amit a Zorp megismerésére fordított. A Zorp-felhasználók levelezõlistája rendkívül gyors és könnyû módja a segítségkérésnek, akár a Pro, akár Linux Journal 2004. április, 120. szám a GPL Zorp-változattal akadna gondod. A listára az aláb- bi oldalon lehet feliratkozni, illetve archívuma is innen Mick Bauer ([email protected]) érhetõ el. Megjegyezném, hogy a Balabit egy magyar Biztonsági szakember, a Linux Journal vállalkozás, így mérnökei (valamint a leghozzáértõbb biztonsági témákkal foglalkozó szerkesztõje, Zorp-használók egy része) közép-európai idõ szerint biztonsági tanácsadó a Minnesota állambeli dolgoznak: Minneapolisban található Upstream Solutions  http://https://lists.balabit.hu/mailman/listinfo/zorp LLC Inc.-nél.

www.linuxvilag.hu 2004. június 25 Szaktekintély

Biztonságos levelezés LDAP és IMAP segítségével (2. rész) Ha sikerül egy IMAP-levélkiszolgálót egy LDAP-címtárral házasítanunk, akkor min- den egyszerûbbé és biztonságosabbá lesz, és a felhasználók is könnyebben tud- nak levelezni. Mick ezúttal a rázósabb témákról szól, amelyeken keresztülrágva magunkat a cég elektronikus levélügyi szakértõjévé képezhetjük magunkat. © Kiskapu Kft. Minden jog fenntartva

z LDAP és a Cyrus IMAP-kiszolgáló együttes hasz- miatt az ilyen fiókot levélolvasásra és -küldésre használva nálatáról szóló cikksorozat elsõ részében telepítet- kedvezõtlenül befolyásolhatjuk a kiszolgáló mûködését. tük és beállítottuk a Cyrus IMAP-ot és a Cyrus Amint a múltkori alkalommal megtanultuk, a Cyrus fel- ASASL-t. Ez alkalommal felhasználókat adunk a Cyrus IMAP ügyeleti fiókjainak nevét a /etc/imapd.conf fájlban szereplõ adatbázisához, majd olyan módon állítjuk be a Postfixet, admins változó adja meg. hogy a Cyrus IMAP-kiszolgálónak továbbítsa a leveleket. Másodszor a cyradm ugyanazt a hitelesítési eljárást hasz- nálja, mint a Cyrus IMAP egyéb részei. Elõzõ írásomban A Cyrus IMAP leírása ezt úgy határoztuk meg, hogy a /etc/imapd.conf fájl Mielõtt elmerülnénk a Cyrus IMAP beállításának és fel- sasl_pwcheck_method változóját saslauthd értékre állítot- ügyeletének részleteiben, egy megjegyzés a leírásokkal kap- tuk, a /etc/sysconfig/saslauthd fájl módosításával pedig csolatban. A Cyrus IMAP-hoz html-formátumú rendszer- LDAP, illetve SuSE-terjesztésnél PAM használatát írtuk elõ. gazdai útmutató jár. A SuSE-terjesztésekben a kézikönyv A PAM ezt követõen a /etc/pam.d/imap és a /etc/openldap/ a /usr/share/doc/packages/cyrus-imapd/doc, Simon Matter ldap.conf fájl segítségével vehetõ rá arra, hogy az IMAP- Red Hat SRPM terjesztésében (lásd a cikksorozat elsõ ré- tranzakciók hitelesítéséhez LDAP-ot használjon. Magyarul, szét) pedig a /usr/share/doc/cyrus-imapd-2.1.12 útvonalon a cyradm a rendszergazdákat is LDAP-on keresztül azonosítja érhetõ el. A megtévesztõ Installation (telepítés) névvel el- és hitelesíti, feltéve, hogy az elõzõ alkalommal leírtak alapján látott hivatkozás egy olyan oldalra vezet, amely nemcsak helyesen állítottuk be a Cyrus IMAP LDAP-támogatását. a telepítéssel, de a beállítással és a felügyeleti teendõkkel Végül a hitelesítés elvégzéséhez a cyradm egy LDAP auth ke- kapcsolatos tudnivalókat is tartalmazza. A kézikönyv mel- resést végez a megadott felhasználónévvel és jelszóval, keresé- lett számos súgóoldal is tartozik a Cyrus IMAP-hoz, a leg- si szempontként az UID LDAP-jellemzõt használva. Ha tehát fontosabbak az imapd.conf(5), az imapd(8) és a cyradm(1). egy fiókot fel szeretnénk hatalmazni a cyradm futtatására, ak- A Cyrus IMAP elektronikus leírása mellett érdemes tanul- kor a hozzá tartozó LDAP-bejegyzésnek UID és userPassword mányozni Dianna és Kevin Mullet „Managing IMAP” címû jellemzõt egyaránt tartalmaznia kell. Az UID kötelezõ jellem- könyvét is. Amennyire én tudom, ez az egyetlen kizárólag zõ, a userPassword pedig megengedett, mint a posixAccount IMAP-pal foglalkozó könyv. A Cyrus IMAP kapcsán az objektumosztály része. Minden IMAP-felhasználó fiókját hoz- LDAP használatára ugyan már nem tér ki, de rendkívül jól zá kell tehát rendelni a posixAccount osztályhoz. megírt könyv, amely tisztán és érthetõen magyarázza el az Az utolsó dolog: az OpenLDAP-kiszolgáló /etc/openldap/ IMAP-pal kapcsolatos fogalmakat és a Cyrus IMAP felügye- slapd.conf fájljában olyan hozzáférési lista (ACL) beállításo- letét, továbbá az UW-IMAP-pal is foglalkozik. kat kell megadnunk, amelyek a userPassword jellemzõhöz hozzáférést engednek az IMAP-kiszolgáló (illetve a hozzá A cyradm használata tartozó saslauthd folyamat) által az LDAP-kiszolgálóhoz A Cyrus IMAP-hoz tartozik egy Perl parancsfájl, a cyradm, való csatlakozáshoz, vagyis a hitelesítésekhez használt ezzel lehet a legkényelmesebben létrehozni és kezelni LDAP-felhasználó számára. Az LDAP ACL-utasítások leírása a felhasználók postaládáit. A cyradm használatba vétele a slapd.conf(5) súgóoldalon található, illetve korábbi, „Hite- elõtt jó néhány dologgal kell tisztában lennünk. Elõször is lesítés LDAP használatával (3. rész)” címû cikkemben a cyradm-ot olyan fiókkal kell futtatni, amit elektronikus (Linuxvilág, 2003. szeptembere) is ismertettem õket. levelek olvasására nem használunk. Másként fogalmazva, A cyradm jellemzõen felügyeleti parancssorként fut, nem elektronikus levelezésre soha ne használjunk felügyeleti normál parancsként. Elindítása után a cyradm bekéri fel- IMAP-fiókot. A szokatlantól eltérõ írási–olvasási engedélyek használónevünket és a felügyelni kívánt gép nevét, majd

26 Linuxvilág Szaktekintély

a megfelelõ jelszót is. Sikeres hitelesítés esetén felhasználói is sent, drafts stb. névvel jelennek meg, az Inbox alatt. beavatkozást igénylõ (interaktív) munkamenetet indít, en- Érdemes még megemlíteni, hogy a postaládák létrehozása- nek saját parancsai és beépített súgója van. A cyradm fel- kor a Cyrus semmilyen visszajelzést nem ad arról, hogy használói beavatkozást nem igénylõ módon is futtatható, a mûveletet sikeresen végrehajtotta-e. Akit ez – hozzám a parancsfájlok írásával kapcsolatban pedig a cyradm(1) sú- hasonlóan – idegesít, az a listmailbox, röviden az lm pa- góoldalon találunk útmutatást. ranccsal ellenõrizheti, hogy éppen milyen postaládák van- A cyradm meghívásának legegyszerûbb módja: nak a rendszerben: bash-$> cyradm --user felhasználónév gépnév localhost> lm user.bwooster (\HasNoChildren) Ha a cyradm-et ugyanazon az állomáson futtatjuk, mint amelyen a Cyrus IMAP-ot, akkor a localhost gépnevet ad- Hisszük vagy sem, a Cyrus IMAP ezt követõen készen áll juk meg, ha viszont távoli gépet szeretnénk felügyelni, ak- arra, hogy fogadja a bwooster felhasználó leveleit, illetve le- kor annak nevére vagy IP-címére lesz szükség. Alapbeállítás vélolvasási lehetõséget adjon számára. Feltéve, hogy létezik szerint a cyradm a 143-as TCP-kapun keresztül próbál csat- egy bwooster UID jellemzõt tartalmazó LDAP-bejegyzé- lakozni. Mivel a Cyrus IMAP ezt a kaput csak nyílt, szöveg sünk. Cyrus IMAP alatt az új postaláda létrehozásával egy- alapú kapcsolattartásra használja, a --port kapcsolóval kell ben a megadott felhasználó IMAP-fiókja is létrejön. Mielõtt jeleznünk a programnak, hogy a TLS titkosítású adatkap- azonban áttérnénk arra, hogy a Postfix MTA-t hogyan © Kiskapu Kft. Minden jog fenntartva csolathoz a 993-as számú TCP-kaput szeretnénk igénybe kell rávenni a levelek Cyrus IMAP-nak való továbbítására, venni: --port 993. Szerintem ilyen esetben az a legegysze- néhány szó a Cyrus IMAP ACL-jeirõl, vagyis hozzáférés- rûbb, ha a távoli IMAP-kiszolgálóra SSH-n keresztül lépünk vezérlési listáiról. be, majd helyben futtatjuk a cyradm-ot. Tegyük fel, hogy az IMAP-kiszolgálómon helyben akarom A Cyrus IMAP hozzáférés-vezérlési listái futtatni a cyradm-et, és felügyeleti fiókom neve mick_admin. Egy Cyrus IMAP alapú rendszer minden postaládájához A kiadandó parancs a következõképpen fest: egy vagy több hozzáférés-vezérlési lista (ACL) tartozhat, ezek azt határozzák meg, hogy az egyes felhasználók mi- bash-$ cyradm -u mick_admin localhost lyen mûveleteket hajthatnak végre az adott postaládán IMAP Password: ********** vagy könyvtáron. Alapesetben egy új postaládához csak egyetlen ACL tartozik, ez teljes felügyeleti jogot ad a posta- localhost> láda gazdájának a ládára. Érdekes, hogy a rendszergazdák alapesetben csak keresési A localhost> parancssor megjelenése jelzi, hogy a cyradm és felügyeleti jogosultsággal rendelkeznek a postaládákra, parancssori munkamenetét sikeresen elindítottuk. Ha a ren- vagyis a listmailbox paranccsal megtekinthetik a ládák delkezésre álló parancsok teljes listáját meg szeretnénk jele- nevét, illetve módosíthatják a rájuk vonatkozó ACL-ek tar- níteni, adjuk ki a help parancsot vagy gépeljünk be egy talmát. Ebbõl fakadóan, ha törölni akarunk egy postaládát, kérdõjelet. Összesen húsz parancs létezik, mindegyiket rö- akkor elõször létre kell hoznunk egy olyan ACL-t, amely vidíteni lehet, sokszor kétféle módon is. A súgó képernyõ- felügyeleti jogot ad felügyeleti fiókunk számára. Nem hibá- jén a parancsok összes változata megjelenik. ról, hanem biztonsági szolgáltatásról van szó, amely segít megelõzni a véletlen törléseket. Postaládák létrehozása a cyradm segítségével Példánknál maradva, az imént létrehozott postaládát Postaládát a createmailbox paranccsal tudunk létrehozni, il- a mick_admin felügyeleti fiók használatával az alábbi paran- letve használhatjuk a parancs create vagy cm rövidítését is: csokat kiadva törölhetjük: localhost> cm user.bwooster $ cyradm -u mick_admin localhost localhost> IMAP Password: *****

Ennél hatékonyabb nem is lehetne a parancssor használata. localhost> setaclmailbox user.bwooster mick_admin Egy apróságot megjegyeznék, a postaládához tartozó fel- all használónév nem user.bwooster, hanem egyszerûen localhost> deletemailbox user.bwooster bwooster. A user. elõtagot a Cyrus IMAP-postaládák létreho- zásakor mindig meg kell adni. Ha tehát a Bubba felhaszná- A második parancsot talán nem nagyon kell magyarázni, lónak postaládát szeretnénk adni, a cm user.bubba paran- az elsõ elemein viszont érdemes végigmenni. Itt a cyadm csot kell kiadnunk. Ezt követõen a postaládán belül a cm setaclmailbox parancsát adtuk ki, ezt sam vagy setacl user.bubba.sent, a cm user.bubba.drafts stb. parancsok- formában rövidíthettük volna. A parancsot a kérdéses pos- kal hozhatunk létre alkönyvtárakat. taláda neve követi (user.bwooster), majd annak a fióknak A user. elõtag csak a Cyrus és a felügyeletét végzõk szá- a neve következik, amelynek jogot szeretnénk adni (szük- mára látható. Amikor Bubba az Evolution vagy valamely ség esetén a jogok megvonását is hasonló módon végezhet- más IMAP-ügyfél segítségével csatlakozik a kiszolgálóhoz, jük el), ebben az esetben mick_admin. Utolsó elemként en- akkor csak egy Inbox nevû könyvtárat fog látni, függetlenül gedélykódok csoportját vagy egy különleges karakterláncot attól, hogy felhasználóneve user.bubba. Az alkönyvtárak kell megadnunk. A példában az all karakterláncot látjuk,

www.linuxvilag.hu 2004. június 27 Szaktekintély

ennek segítségével az összes engedélyt megadhatjuk vagy rán módosult. Ha a Cyrus IMAP és a Postfix telepítését egy- elvehetjük. A user.bwooster postaládát úgy is tudtuk volna aránt saját Linux-terjesztésünk legújabb változatának CD- törölni, hogy a parancs végére c betût írunk be, vagyis pos- éjérõl vagy letöltési helyérõl végeztük, akkor az abban talált taláda és alpostaládák létrehozására és törlésére adunk jo- /etc/postfix/master.cf fájlnak módosítás nélkül mûködnie gosultságot. Az ACL-ekben szereplõ további engedélyek kell. Ha viszont a Cyrus IMAP vagy a Postfix akár csak egyi- összefoglalása az táblázatunkban szerepel (60. CD Magazin/ két is forrásból tettük fel, akkor szükségünk lehet némi bar- MAP könyvtárban). kácsolásra, ekkor a Google segítségével deríthetjük ki a má- Az ACL-ekrõl a cyradm(1) súgóoldal és a Cyrus IMAP html- sodik sor helyes formátumát és tartalmát. Errõl egyébként formátumú leírásában olvashatunk részletesebben. Min- annyit érdemes leírni, hogy az argv=/usr/libexec/ denkinek javaslom, hogy miután a cyradm segítségével lét- cyrus/deliver átadott értékben szereplõ elérési útnak rehozta a postaládákat, minden alkalommal legalább ellen- a helyi rendszer Cyrus deliver parancsára kell mutatnia. õrizze az ACL-ek tartalmát, ha nem is változtatja meg õket. A harmadik és egyben utolsó Postfix fájl a /etc/aliases. Egyes Sok helyen nincs szükség arra, hogy a felhasználók alap- rendszereken a /etc/postfix/aliases név alatt szerepel. Ha- értelmezett c (létrehozási és törlési) joga megmaradjon. csak nem LDAP-ot használunk az álnevek kikeresésére Ha például minden alpostaládát (user.felhasznalo.sent, – ennek tárgyalása meghaladná írásom kereteit, de a szél- user.felhasznalo.saved stb.) saját kezûleg hozunk létre, akkor jegyzetben kitérek rá –, akkor az aliases fájlban minden elõfordulhat, hogy a felhasználók számára nem akarjuk en- Cyrus postaládához léteznie kell legalább egy bejegyzés- © Kiskapu Kft. Minden jog fenntartva gedélyezni újabbak létrehozását vagy a meglévõk törlését. nek, továbbá a postaládákhoz igényelt álneveket is fel kell sorolni. Például a Bubba felhasználó számára az alábbi sor- A Postfix beállítása a levelek Cyrus IMAP-nak történõ ral kell bõvíteni a /etc/aliases állományt: továbbítására bubba: bubba Az elsõ részben már volt szó a levélszállító ügynökök (Mail Delivery Agent, MDA) szerepérõl: ezek juttatják el a levele- Egyszerû, igaz? Elmarad a user. elõtag, és a Cyrus postalá- ket a postaládákba. Mint MDA, a Cyrus IMAP képes a leve- dákra felhasználónév alapján hivatkozunk. Ha a Cyrus-, va- lek postaládákba juttatására, ám ehhez elõbb meg kell kap- gyis LDAP-felhasználónevek egyeznek a helyi rendszerben nia õket valamilyen levéltovábbító ügynöktõl (Message szereplõ felhasználónevekkel, akkor ezekhez a felhaszná- Transfer Agent, MTA). A legnépszerûbb MTA a Sendmail, lókhoz nem kell álnév-bejegyzéseket létrehoznunk. de ha egyszerûbb és biztonságosabb megoldásra vágyunk, A Cyrus egyik szépsége, hogy használatakor a felhaszná- válasszuk Wietse Venema kiváló programját, a Postfixet lóknak nem kell héjhozzáférést adnunk. ( http://www.postfix.org). Mivel én is a Postfixet haszná- Ha Bubba az adott cég marketingelemzõje, akkor hozzáad- lom MTA-ként, és a legtöbb Linux-terjesztésben vagy hatjuk az alábbi sort is: alapértelmezett, vagy választható MTA-ként megtalálható, marketing_zseni: bubba a továbbiakban csak vele foglalkozom részletesebben. Vajon az IMAP-kiszolgálónak a helyi szervezet SMTP- Az aliases fájl szerkesztése után ne feledjük el kiadni továbbító gépén kell futnia? Lehetõség nyílik rá, de nem a postalias parancsot, amely létrehozza az új álnév-adat- muszáj így lennie. Biztonság és teljesítmény szempontjából bázist: ellenben elõnyösebb, ha az SMTP-továbbító kizárólag ezt az egy feladatot látja el. Ekkor az IMAP-kiszolgáló saját Postfix- bash-$> postalias hash:/etc/aliases példányt futtathat, amely a kinevezett (dedicated) SMTP- továbbítótól fogadja a leveleket, és nem közvetlenül más há- Összegzés lózatok MTA-itól. Bármilyen hálózati felépítést is választot- Természetesen még sok mindennel tisztában kell lennünk, tunk, a továbbiakban feltételezzük, hogy az az MTA, amelytõl hogy Cyrus IMAP rendszergazdának vallhassuk magunkat, az IMAP-kiszolgáló a leveleket kapja, ugyanazon a gépen fut, ám az eddigiek alapján bele tudunk kezdeni egy LDAP- mint a Cyrus IMAP. képes Cyrus IMAP-kiszolgáló üzemeltetésébe. A két írásom Ahhoz, hogy a Postfix a Cyrusnak továbbítsa a leveleket, alapján elsajátított tudásanyag elegendõ ahhoz, hogy bo- három állományt kell átszerkeszteni. Az elsõ a /etc/postfix/ nyolultabb kérdésekkel is foglalkozhassunk, mint például main.cf, ebben az alábbi sort kell a megjegyzésbõl kivenni, az LDAP-jelszavak módosításának lehetõvé tétele a felhasz- vagy ha hiányzik, begépelni: nálók számára, az LDAP-kiszolgáló beüzemelése telefon- könyvként, megosztott IMAP-könyvtárak biztonságos be- mailbox_transport = cyrus állítása, biztonságos webes levelezõfelület létrehozása, például a SquirrelMail telepítésével és így tovább. A második fájl a /etc/postfix/master.cf, ebben két sort kell ha- sonló módon élesítenünk: Linux Journal 2004. január, 117. szám

cyrus unix - n n - - pipe Mick Bauer ([email protected]) user=cyrus argv=/usr/libexec/cyrus/deliver -r Biztonsági szakember, a Linux Journal ${sender} ${user} biztonsági témákkal foglalkozó szerkesztõje, biztonsági tanácsadó a Minnesota állambeli Lehet, hogy a saját rendszerünkön a második sor más lesz, Minneapolisban található Upstream Solutions a Cyrus deliver program meghívásának módja az idõk so- LLC Inc.-nél.

28 Linuxvilág Szaktekintély

Írjunk hibátlan programot! Bár e gondolat túlzó, a jellemzõ memóriahibákra azonnal rámutat a KDE-csoport legújabb csodája, a Valgrind.

dinamikus memóriakezelés alapvetõ fontosságú szempontjából helyes használathoz, és rámutat a hiányos- © Kiskapu Kft. Minden jog fenntartva szerepet játszik napjaink alkalmazásaiban. Jelen- ságokra. Mindezt valójában az x86-os processzor emulálásá- leg elképzelhetetlen C/C++ programot írni val teszi. Aa malloc() vagy new() használata nélkül. E függvények al- A fentebb említett tulajdonságok következtében a Valgrind kalmazásával nem nehéz elérni, hogy az egyetlen korlát az használata meglepõen egyszerû. Elsõ megközelítésben elég elérhetõ memória mérete legyen. Ám az áldásos tulajdonsá- csak a parancs elé beszúrni a valgrind szót. A futtatandó gok mellett hamar napvilágot láttak a gondatlanságból ere- program és kapcsolói elõtt a Valgrindnek is megadhatunk dõ káros mellékhatások is: a tömbök túlcímzése, lefoglalt te- bizonyos értékeket, ezekkel befolyásolhatjuk a vizsgálatot. rületek többszöri felszabadítása vagy a mutatóik elvesztése, A továbbiakban jellegzetes programozói hibákat fogok elkö- ezek mind-mind olyan gondok, amelyek nem is biztos, vetni és a Valgrind segítségével derítem fel õket. A példák hogy azonnal kiderülnek. Sõt, még ha rá is jövünk, hogy természetesen olyanok lesznek, amelyekrõl üvölt, hogy hi- baj van, a gond forrását akkor is órákba telhet megtalálni, básak, de most tegyünk úgy, mintha nem is lenne olyan mivel többnyire egyáltalán nem ott helyezkednek el, ahol szemet szúróak. A hangsúly most a hiba típusán van. észleltük õket. Készítsünk mi is olyan feltételt, amelyben egy kezdõérték A Valgrind egy nyílt forrású segédeszköz a memóriakezelési nélküli változó áll. Íme: hibák felderítésére. Az x86-os processzorra fordított progra- mokban figyeli a memóriaszivárgást és a helytelen elérést. #include Julian Seward fejlesztette. Jelenleg ez a projekt int main () { a  http://www.developer.kde.org/~sewardj/ címen érhetõ signed char a; el. A Valgrind telepítésének elõfeltétele a legalább 2.2-es vál- if (a > 0) printf ("hello\n"); tozatszámú rendszermag, illetve a 2.1-es vagy 2.2-es Glibc return 0; megléte. } A Valgrind valójában egy dinamikusan összeépített könyv- tár, ez a parancsfájl végzi az összeépítést. A szükséges függ- Amennyiben gcc-t használjuk, a -Wall segítségével elõcsalo- vénykönyvtárak a /usr/local/lib alatt találhatók. A Valgrind gathatjuk a fordítás alatt az összes figyelmeztetõ üzenetet. az alábbi hibákat képes felderíteni: Az a szép ebben a csúnyaságban, hogy a gcc még a -Wall-lal is rendben találja, azaz szó nélkül lefordítja. Az, hogy az • olyan memóriaterület olvasása, amely nem kapott kez- elkészült program kiírja-e, hogy hello, vagy sem, nagyban deti értéket; függ az ózonlyuk méretétõl, és a New York-i tõzsde pilla- • felszabadított terület olvasása, illetve írása; natnyi állásától. Nézzük, mit mond rá a Valgrind: • túlcímzett terület olvasása, illetve írása; • a verem nem megfelelõ területeinek olvasása, illetve írása; ==3220== Conditional jump or move depends on • memóriaszivárgás; uninitialised value(s) • rosszul használt malloc/new/new[] és free/delete/ ==3220== at 0x80483FA: main (elso.c:4) delete[] páros; ==3220== by 0x4025614E: __libc_start_main • a POSIX pthread API helytelen használata. (in /lib/libc-2.2.5.so) ==3220== by 0x8048330: (within Ezek a hibák többnyire összeomláshoz vezetnek, ám sok- /home/bw/prog/c/valgrind/elso) szor nagyon sokáig rejtve maradnak a felhasználók elõl. Csak bizonyos körülmények együttálláskor kerülnek fel- A sor elején látható szám az indított folyamat azonosítója színre, emiatt nagyon veszélyesek. A Valgrind közvetlenül (PID). Az elkövetett hiba ismertetése után a hívás helye is lát- a futtatandó állományt használja a vizsgálathoz. Eldönti, ható. Amennyiben a -g kapcsolóval fordítottuk a programot hogy a program módosítása szükséges-e a memóriakezelés (debug), akkor még a forrásállományban kérdéses sor sorszá-

www.linuxvilag.hu 2004. június 29 Szaktekintély

mát is megadja. Ez az alapvetõ hiba más formában is testet #include ölthet. Például egy tömböt indexelünk a változóval egy szám- #include lálós ciklusban. Gondoljuk csak végig a következményeket. int main () { Lássunk példát a dinamikus memóriafoglalásra is! Ezúttal int *p, a; túlcímzünk egy tömböt: p = (int *) malloc (sizeof (int) * 10); p[9] = 1; #include a = p[9]; #include free (p); int main () { free (p); int *p, a; return 0; p = (int *) malloc (sizeof (int) * 10); } p[10] = 1; a = p[10]; Erre már a Linux is dobott egy „Segmentation fault” üzenetet. free (p); Ez az a pont, amikor egy több ezer soros program esetén return 0; Valgrind nélkül nem marad más, mint a gdb (GNU debugger) }* alkalmazása. A változókövetés, töréspontok elhelyezése, és lé- pegetés a sorok között hadmûvelet több órát is elrabolhat © Kiskapu Kft. Minden jog fenntartva Mivel C-ben a tömbök indexelése 0-tól indul a fenti példában drága idõnkbõl. Ehelyett inkább a következõket tegyük: a 9-es a legmagasabb indexû elem. A p[10]-zel láthatóan túl- címeztük a dinamikusan foglalt tömbünket. Linux alatt elin- ==3296== Invalid free() / delete / delete[] dítva egyetlen árva hibaüzenetet sem kaptam. Szó nélkül le- ==3296== at 0x40027E7A: free futott a program. Doktor Valgrind itt is segít (1. lista). (vg_replace_malloc.c:231) ==3296== by 0x8048479: main (harmadik.c:9) ==3296== by 0x4025614E: __libc_start_main ==3269== Invalid write of size 4 (in /lib/libc-2.2.5.so) ==3269== at 0x804844E: main (harmadik.c:6) ==3296== by 0x8048370: (within ==3269== by 0x4025614E: __libc_start_main /home/bw/prog/c/valgrind/harmadik) (in /lib/libc-2.2.5.so) ==3296== Address 0x41070024 is 0 bytes inside ==3269== by 0x8048370: (within a block of size 40 free'd /home/bw/prog/c/valgrind/harmadik) ==3296== at 0x40027E7A: free ==3269== Address 0x4107004C is 0 bytes after (vg_replace_malloc.c:231) a block of size 40 alloc'd ==3296== by 0x804846A: main (harmadik.c:8) ==3269== at 0x40027B88: malloc ==3296== by 0x4025614E: __libc_start_main (vg_replace_malloc.c:153) (in /lib/libc-2.2.5.so) ==3269== by 0x804843F: main (harmadik.c:5) ==3296== by 0x8048370: (within ==3269== by 0x4025614E: __libc_start_main /home/bw/prog/c/valgrind/harmadik) (in /lib/libc-2.2.5.so) ==3269== by 0x8048370: (within A Valgrind hasonlóan jól felismeri, ha a malloc() mellett  /home/bw/prog/c/valgrind/harmadik) nem free()-t, hanem delete()-t használunk. A memória- ==3269== foglalással kapcsolatos függvények bármely helytelen variá- ==3269== Invalid read of size 4 ciója esetén jelez. Még abban az esetben is kapunk hibaüze- ==3269== at 0x804845A: main (harmadik.c:7) netet, ha a lefoglalt és felszabadított területek megegyez- ==3269== by 0x4025614E: __libc_start_main nek, de rossz volt a függvényhívás. (in /lib/libc-2.2.5.so) Utoljára, a rám legnagyobb hatást gyakorolt tulajdonságot, ==3269== by 0x8048370: (within a memóriaszivárgás felismerését hagytam. Akadnak olyan /home/bw/prog/c/valgrind/harmadik) C-rõl szóló könyvek, amelyekben azt tanácsolják, hogy ha ==3269== Address 0x4107004C is 0 bytes after „nem tudjuk, hol vagyunk éppen”, inkább ne használjuk  a block of size 40 alloc'd a free()-t, mert a többszöri felszabadítás rosszabb, mintha ==3269== at 0x40027B88: malloc egyszer sem tennénk. Ez Linux alatt még mûködhet is, (vg_replace_malloc.c:153) mert többé-kevésbé eltakarítja a fel nem szabadított terüle- ==3269== by 0x804843F: main (harmadik.c:5) teket. Ám más rendszerek esetén ez a memória szabályos ==3269== by 0x4025614E: __libc_start_main felfalásához, rosszabb esetben a teljes összeomláshoz vezet- (in /lib/libc-2.2.5.so) het. Azért, mert a rendszertõl nem kapunk hibaüzenetet, ==3269== by 0x8048370: (within amiért nem szabadítottuk fel a memóriát, még nem járunk /home/bw/prog/c/valgrind/harmadik) el helyesen. Készítsünk egy memóriafalót: ugyanazt a mutatót fogjuk Javítsuk ki fenti programunkat. Ám mialatt jóízûen szür- használni többszöri malloc() hívásra, természetesen free() csölgetjük kávénkat, egy vicces kolléga belenyúlt a mun- nélkül. Érdekes kipróbálni, hogy egy terminálablakban fut- kánkba, és a biztonság kedvéért még egyszer felszabadítot- tatjuk memóriafalónkat, mellette pedig egy xosview-t figye- ta a memóriaterületet: lünk. Érdemes elüldögélni elõtte.

30 Linuxvilág Szaktekintély

#include ==3400== 16384 bytes in 4 blocks are definitely #include lost in loss record 2 of 2 int main () { ==3400== at 0x40027B88: malloc int hamm = sizeof (int) * 1024, *p, i; (vg_replace_malloc.c:153) for (i = 1; i <= 5; i++) { ==3400== by 0x804845B: main (negyedik.c:6) if (NULL == (p = (int *) malloc (hamm))) ==3400== by 0x4025614E: __libc_start_main break; (in /lib/libc-2.2.5.so) printf ("Lenyelve: %d byte.\n", i * hamm); ==3400== by 0x8048370: (within } /home/bw/prog/c/valgrind/negyedik) return 0; } Miként az látható, lesznek feltehetõen és biztosan elvesztett területek. Ötször futott le a ciklusunk, ez azt jelenti, hogy Nem kell megijedni, ugyanis ha Linux alatt futtatjuk, több négyszer írt felül egy olyan mutatót, ami értékes területre mint valószínû, hogy visszanyerjük a memóriát. A Valgrind mutatott. Ez a négy biztosan elvesztett terület. A program mindenesetre nem állja meg szó nélkül. végére még maradt egy mutató az adatterületre, így nem A --leak-check=yes beállítás használata esetén az alábbi biztos, hogy ez elveszett. jelentést kapjuk: Mindent egybevetve nagyon hatékony és jól használható eszköz a Valgrind. Nem hallottál még róla, és azt gondolod, © Kiskapu Kft. Minden jog fenntartva ==3400== 4096 bytes in 1 blocks are possibly lost senki nem használ egy ilyen „névtelen” programot? Látogass in loss record 1 of 2 el a honlapjára és nézd meg, mely nagy alkalmazások készí- ==3400== at 0x40027B88: malloc tésénél vették igénybe a Valgrindet. Az OpenOffice.org-tól (vg_replace_malloc.c:153) a Mozillán keresztül számtalan nagy csomag esetén használ- ==3400== by 0x804845B: main (negyedik.c:6) ják hibakeresésre. Itt az idõ, hogy megismerj egy olyan esz- ==3400== by 0x4025614E: __libc_start_main közt, melynek megtanulása tíz perc, de órányi keserves ke- (in /lib/libc-2.2.5.so) resgélést takaríthatsz meg vele. Sok szerencsét és kísérletez- ==3400== by 0x8048370: (within getõ kedvet a programozáshoz. /home/bw/prog/c/valgrind/negyedik) ==3400== Fülöp Balázs

www.linuxvilag.hu 2004. június 31 Szaktekintély

A Redacle munkafolyamat-irányító rendszer Egy MySQL alapú rendszer kezeli egy ötszázezer alkatrészbõl álló új tudományos mûszer megépítési folyamatának az adatkezelését, minõségellenõrzését és könyvelését. Hogyan alkalmazhatjuk ezt a módszert saját gyártófolyamatainkhoz? © Kiskapu Kft. Minden jog fenntartva

szubnukleáris részecskék valóban igen kismé- retûek, kimutatásukhoz és megmérésükhöz hatal- mas érzékelõkre van szükség. Ezt a tudomány- Aterületet nagy energiájú fizikának (high-energy physics, HEP) nevezik, a kísérleti HEP pedig napjaink egyik él- vonalbeli tudományterülete. Felhasználja és továbbfejleszti a legújabb módszereket, új eszközöket talál fel, és ösztönzi az ismeretek cseréjét. Mindezen okokból kifolyólag a HEP már hosszú ideje a nyílt forrású programok birodalma. A rossz hír az, hogy a HEP idõközben egyre bonyolultabbá vált: ami korábban kisipari módszerekkel is elõállítható volt, az mára ipari folyamat, ami a különleges célra létrehozott és rendszerint igen drága folyamatirányító programot is megkívánja. Mindezt saját tapasztalataink alapján állít- hatjuk: egy nagy nemzetközi csoport egy 12 500 tonnás de- tektor, a CMS (Compact Muon Solenoid) legyártását rendel- te meg, amelynek a Genovai CERN-ben, a nagy hadronüt- 1. kép A mai nagy energiájú fizika egy ipari folyamatra hasonlít köztetõben kellene 2007-ben az adatokat összegyûjtenie. Az Olaszországi Nukleáris Fizikai Intézet (INFN) által támo- használtunk egy zárt összetevõkre épülõ WFMS-rendszert, gatott, Rómában, a La Sapienza Egyetem fizikai tanszékén de ez nehézkesnek, lassúnak, túl erõforrás-igényesnek, mûködõ csoportunk dolgozik az elektromágneses kalori- a kényszerû megszakítások után nehezen újraindíthatónak méter megépítésén. A kaloriméter körülbelül ötszázezer al- és más eszközökkel csak fáradságos módon integrálhatónak katrészbõl áll, amelyek között szcintilláló kristályok és foto- bizonyult. Amikor a beérkezõ kaloriméter-alkatrészek emel- érzékelõk is vannak. A folyamatnak adatkezelõi, minõség- kedõ számával az összeszerelési sebesség már nem tudott ellenõrzõi és könyvviteli támogatásra van szüksége, ame- lépést tartani, úgy döntöttünk, hogy nyílt forráskódra épülõ lyek mindegyike a munkafolyamat-irányításra támaszkodik. összetevõkbõl fejlesztjük ki a saját megoldásunkat. Célunk az volt, hogy ezzel a lépéssel elkerüljük a korábbi hátrá- A munkafolyamat-irányítás nyokat, és a bejövõ és kimenõ adatok számára létrehozott Egy munkafolyamat-irányító rendszer (Work-flow Manage- felületek átlátszóságával biztosítsuk a rendszer kívánt ru- ment System, WFMS) „olyan számítógépes program, amely galmasságát. A rendszer mûködtetéséhez a LAMP (Linux, teljesen vagy részben biztosítja az üzleti folyamatok önmû- Apache, MySQL, és Perl/PHP/Python) felületet választottuk. ködõvé tételét, miközben dokumentumok, információk vagy A LAMP minden összetevõjének megvan a maga elsõdleges feladatok áramlanak az egyik résztvevõtõl a másikig bizo- feladata: a Linux és az Apache biztosítja a szolgáltatások és nyos eljárási szabályok szerinti mûvelet elvégzése céljából” a programozás alapvetõ hátterét, a MySQL képviseli WMFS- ( http://www.e-workflow.org). A WFMS használata egy rendszerünk adatbázis-hátterét, a Perl/PHP pedig az ope- koordinátort feltételez, aki meghatározza a termék elõállítá- rátorok és az adatbázis közti párbeszédet kezeli. sához szükséges tevékenységek egymáshoz kapcsolódását. Az operátorokat az elõállítási folyamaton vezetik végig, Redacle: az adatbázisterv amelybõl minden nem várt eltérés kiszûrésre kerül. Mind- WFMS rendszerünk neve Redacle (Relational ECAL Data- egyik mûvelet valamilyen adatot – méretadatot, megjegy- base at Construction Level – relációs ECAL-adatbázis ter- zést, jelölést – állít elõ, amelyek egy adatbázisba kerülnek. vezési szakaszban). Az adatbázistervvel szemben támasztott Ezt megelõzõen gyártófolyamatunkhoz körülbelül két évig elvárásaink részleteiben a következõk voltak:

32 Linuxvilág Szaktekintély

1. Nagyfokú rugalmasság: az adatbázis felépítése új tevékenység felvétele a munkafolyamatba nem áll többõl, termékek vagy tevékenységek hozzáadásakor nem mint hogy a leírását elhelyezzük a meghatározások táblájá- változhat meg. ban és összekapcsoljuk az Activity táblában lévõ elõfordu- 2. Minõségellenõrzõ (QC) adatok tárolásának a lehetõsége: lásokkal. Ugyanúgy igaz erre a szerkezetre is, hogy átszabás munkánk fontos részét képezi a minõségbiztosítás, az nélkül ráhúzható egy teljesen más üzleti tevékenységre is. összegyûjtött adatoknak pedig statisztikai elemzés Ha például levélkézbesítésrõl lenne szó, akkor a meghatá- céljából bárki számára elérhetõnek kell lennie. rozások táblájának rekordjaiban a levélfelvétel, a továbbítás 3. Az adatelérés sokfélesége: az adatbázisnak rendelkeznie és a kézbesítés helyén történõ munkamûveletek leírását kell a különbözõ eljárással – a héjból, programokból, találnánk, míg az Activity tábla rekordjaiból azt tudhatnánk parancsfájllal és a weben keresztül – történõ lekérdezés meg, hogy mikor és mely küldeményeken végezték el az lehetõségével. adott mûveletet. A munkafolyamatot a munka során elvégzendõ mûveletek Harmadik elvárásunknak a MySQL minden további nélkül meghatározásai és e mûveletek elvégzési sorrendje hatá- megfelelt; egyszerûsége és a teljessége mellett ez volt az rozza meg. A felületet biztosító program ellenõrzi, hogy a tulajdonsága, ami miatt a LAMP alkalmazása mellett dön- a munkafolyamat-meghatározásban az adott alkatrészen töttünk. Az elsõ két igény kielégítéséhez egy sablon alapján végrehajtott mûveletet követõ tevékenység a megadott egy táblakészletet fejlesztettünk ki, amely – az objektumköz- idõn belül befejezõdik-e. A mûveletek a csatlakozó prog- pontú programozáshoz hasonlóan – gyakori ramnak megfelelõen megismételhetõek © Kiskapu Kft. Minden jog fenntartva szabványos módja egy adott probléma meg- vagy átugorhatók. oldásának. Követett mintánk neve homo- A minõségellenõrzés adatai számára az morfizmus, ami a sok-egy kapcsolat egy- elvonatkoztatás újabb szintjét bevezetve szerû megvalósítása. A gyakorlatban ez úgy ugyanezt a homomorfikus mintát alkalmaz- mûködik, hogy az alkalmazott folyamat tuk. Olyan tulajdonságadatokat határoz- minden része rekordként az adatbázis két tunk meg, amelyeket egy alkatrészen vég- táblájában jelenik meg: az objektumtáblá- zett adott mûvelet végzése során gyûjtünk ban és az objektummeghatározási táblában. össze. Az ezeket tartalmazó Characteristic Minden objektummeghatározás egy azo- tábla azonban nem tartalmaz valósi érté- nosítóval rendelkezik, ez a gyakorlatban keket, mivel ezek különféle természetû ada- a MySQL elsõdleges kulcsértéke. Sok objek- tok lehetnek: karakterláncok, számok vagy tum használja ugyanazt az objektummeg- még összetettebb típusok. A Characteristic határozást, a köztük lévõ kapcsolatot az ob- tábla egyszerûen a kulcsok tárolóhelye, jektumtáblában tárolt idegen kulcs biztosít- amelyek közül az egyik a tulajdonságot ja, amely a megfelelõ objektummeghatáro- 2. kép Egy öt kristályból álló a charDefinition táblában lévõ meghatá- zás azonosítója. egység vizsgálata jellemzõinek rozásával kapcsolja össze. A tényleges Talán egy példán keresztül bemutatva vilá- meghatározása céljából. tulajdonságok értékei különbözõ, a típu- Az eszközöknek a mérési gosabb lesz a mûködés. Mint a bevezetésben suknak megfelelõ táblákban kerülnek adatokat a munkafolyamat- említettem, kaloriméterünk nagyon sok kü- tárolásra. A mi folyamatunk háromféle kezelõ rendszernek kell lönbözõ típusú alkotóelembõl tevõdik össze. továbbítaniuk adattípussal dolgozik: egyszeres lebegõpon- Az egyes alkotórészfajtákból, mint amilyen tos számokkal, számhármasokkal és karak- például egy kristály, igen sokra van szükség, a kaloriméter- terláncokkal. Például egy kristály hossza egy egyszerû hez például összesen mintegy 75 ezer kristályra. Az alkotó- szám, és a Value táblában tárolódik. Néhány mérés a kris- részek és meghatározásaik az adatbázis két külön táblájában tály tengelyének különbözõ pontjain történik, eltérõ kö- kerülnek tárolásra, ahogy az 1. és a 2. táblázatban látható. rülmények között. Az egyik ilyen az optikai terjedés, ame- Egy alkatrészfajta különbözõ példányai ugyanazt a megha- lyet eltérõ hullámhosszok mellett 2 centiméterenként tározást osztják meg a partDefinition_id oszlopban lévõ mérünk. Az eredmények számhármast alkotnak: az elsõ megfelelõ alkatrész-azonosítón keresztül. Ebben a két szám jelenti a pozíciót, a második a hullámhosszt, a harma- táblában a 33105000006306 számú alkatrész egy 1L típu- dik pedig a hullámterjedés mértékét. Ezek a számhármasok sú hengeres kristály, ahogy azt a partDefiniton táblában képezik a multiValue tábla egy-egy rekordját. Ugyanez igaz a partDefinition_id 195-ös értéke is mutatja. a karakterláncokra is: az operátorok minden mûvelet elõtt Ennek a megközelítésnek az igazi elõnye a rugalmasságá- szemrevételezik a kristályokat, és megjegyzéseket hagyhat- ban rejlik. Ha bármilyen okból kifolyólag új alkatrészek ke- nak a lehetséges hibákra vonatkozóan. A 2–6. táblázatban rülnek a képbe, a Redacle adatbázis-szerkezete változatlan láthatók az imént említett, a jellemzõk tárolására szolgáló maradhat. Elegendõ a meghatározások táblájában egy új táblák. A 33101000018045 rész a hossz és terjedés mérésére rekordot létrehozni és az új elemekkel összekapcsolni. Sõt (TTO) vonatkozik. A hossz 229,7815 mm a Value táblában. a Redacle adatbázisa még ennél is rugalmasabb: ha kalori- A char_id mezõ 134821, amely a Characteristic táblában méterek helyett autókat gyártanánk, akkor is ugyanez le- a charDefinition_id=6 értékre mutat, amely a kristály hetne az adatbázis-szerkezet. hosszának felel meg. A TTO egy számhármasokból álló A tevékenységek ugyanennek a megközelítésnek az alapján halmaz a multiValue táblában. Az adott kristály szemrevé- kerültek leképezésre: egy Activity nevû tábla tárolja az telezésének az eredménye a charValue táblában található ActivityDescription táblában leírt rekordokat. Egy újabb nonhomogeneous (nem homogén) megjegyzés.

www.linuxvilag.hu 2004. június 33 Szaktekintély

Ez az eljárás a Redacle-t megint csak másféle folyamatok kezelésére is alkalmassá teszi: egy tehenészetben például az 1. táblázat A Redacle adatbázisának Part táblája elõállító (karakterlánc) mellett jellemzésként ID partDefinition_id használhatnánk az egyes tejadagok baktériumtartalmának rögzítésére. Továbbá a séma megzavarása nélkül adhatunk 33105000006306 195 teljesen új adattípusokat (képeket vagy hangokat) az adat- 33105000006307 196 bázishoz – egyszerûen egy új tábla létrehozásával. Például, 33105000006308 197 ha képeket szeretnénk hozzáadni, akkor ezt egy három mezõbõl álló tábla létrehozásával érhetjük el, amelyben 33105000006309 198 a három mezõ az elsõdleges kulcs, a kép adatai BLOB típus- 33105000006310 196 ként és a Characteristic táblához kapcsolódást biztosító egész típusú azonosító. A MySQL-ben ezt a táblát az alábbi kóddal hozhatjuk létre: 2. táblázat A charDefinition tábla CREATE TABLE picture ( Id Description Name Unit activityDef_id id INT NOT NULL AUTO_INCREMENT, data BLOB, 2 result of visual VIS_I_OPER 2 © Kiskapu Kft. Minden jog fenntartva char_id INT, inspection INDEX (char_id), 6 crystal length DL mm 3 PRIMARY KEY (id) 26 transversal TTO mm#nm#% 4 ); transmission

A Redacle csatolófelületei Programunkban az adatbázissal a felhasználók számos kü- A mûveletek sorrendje a következõ: lönbözõ módon kerülhetnek kapcsolatba: a MySQL-ügyfél- • A csatlakozás után az eszköz bejelenti, hogy mely programon keresztül, C++- és Java-programok segítségé- alkatrészen végez mûveletet. vel, Perl-parancsfájlok vagy weboldalakon szereplõ PHP- • Az IA lekérdezést hajt végre a Redacle adatbázisában és parancsfájlok révén. Számottevõ elõnyei vannak, ha a grafi- megkeresi a munkafolyamatban az adott alkatrészen kus felhasználói felület (GUI) létrehozására böngészõprog- legutóbb befejezett tevékenységet. Az eszköz által ramot használunk: ezzel a GUI hordozhatóvá válik és szük- futtatandó parancs az adatbázis activityDefinition ségtelenné teszi különleges összetevõk telepítését, nem táblájának leírómezõjében található. vesztegetjük az idõnket a grafikus felület létrehozására, • Az IA elküldi az eszköznek a megfelelõ parancsot. továbbá a böngészõprogram mind az operátorok, mind • A parancs felismerése után az eszköz futtatja a paran- pedig az ügyfelek számára jól ismert. csot, az IA pedig a nyugtázás után egy új tevékenységet A Redacle egy másik kiemelkedõ tulajdonsága a más gépek szúr be a Redacle adatbázisba. felé irányuló csatolófelülete. A kaloriméter szerelésének fo- • A munkafolyamat befejeztével az IA frissíti az imént lyamán önmûködõ szerkezetek végezték el a kristályokkal létrehozott tevékenységet, befejezettnek jelöli meg és kapcsolatos méréseket, mindenfajta emberi beavatkozás XML formátumú karakterláncok formájában beolvassa nélkül (2. kép). Ezeknek a gépeknek tehát képesnek kell az eszközrõl az adatokat. lenniük a Redacle rendszerrel való kapcsolattartásra, hogy a végrehajtandó mûveletek megfelelõ sorrendjére, a mû- A mûvelet eredménye multiValue vagy charValue veletek kezdeti és befejezõ idõpontjára és a tulajdonságként mezõket egyaránt tartalmazhat. Az egyedül álló értékek tárolandó adatokra vonatkozó információkat kicserélhessék. formátuma a következõ: Olyan rendszer létrehozása volt a célunk, amely szinte mezõnévmezõérték... bármilyen eszköz számára lehetõvé teszi, hogy a Redacle rendszerrel kapcsolatba lépjen. Szándékosan kerültük, Az jelentése eredmény (result), az a mezõ hogy egy adott programozási nyelv hatása alá kerüljünk, (field), a pedig az érték (value) rövidítése. A mezõ- vagy hogy programozói könyvtárakat biztosítsunk a szóba névbõl az eszközközvetítõ megszerzi a tulajdonság megha- jöhetõ eszközökhöz, mivel ez amúgy sem állna arányban tározásának azonosítóját, és kitölti a mezõérték formátumá- a beszerezhetõ eszközök mennyiségével, és beágyazott nak megfelelõ tábla (value a számok és charValue a karak- eszközök is léteznek zárt programokkal. terláncok esetén) mezõjét. A multiValue tábla feltöltésére Ehelyett egy Instrument Agent (IA, eszközközvetítõ) nevû akkor kerül sor, ha az eredmény az alábbi formátumú: démont fejlesztettünk ki, amely csatolófelületként mûködik a Redacle és az eszköz között. Az IA egy olyan munkafolya- n-es név mat, amely egy internetes kapura csatlakozva onnan ASCII mezõnévmezõérték karaktereket képes olvasni, illetve ilyeneket tud oda külde- ... ni. Így az eszköznek csak arra kell képesnek lennie, hogy a hálózatra csatlakozzon és karakterláncokat küldjön a kap- Az ebben az esetben n-est jelöl, vagyis n számú elem- csolaton keresztül. bõl álló értéket.

34 Linuxvilág Szaktekintély

rülbelül tízezer Perl, C++, PHP és Java nyelven megírt prog- 3. táblázat A Characteristics tábla ramsort tartalmaz. A program futtatásához szükséges gép a korábbi rendszer erõforrásigényével összehasonlítva kicsinek ID charDefinition_id part_id activity_id mondható. Az elõtte használt rendszerrel a kétprocesszoros 106035 2 33101000018045 10660 800 MHz-es Pentium kiszolgálógép szinte állandó százszáza- 134821 6 33101000018045 16093 lékos processzorterheléssel futott a teljes 515 MB RAM fog- laltsága mellett. Szükség volt az ügyfélgépek továbbfejlesz- 135252 26 33101000018045 16182 tésére is, a Java GUI támogatása céljából megkettõztük a memóriájukat. Az elõzõ rendszer teljesítményét növelendõ a tervezett gép egy kétprocesszoros, 1 GHz-es Pentium III processzorokat magában foglaló, 1 GB memóriával rendel- 4. táblázat A Value tábla kezõ gép volt. A Redacle használatával ez bõven elégnek bi- ID x char_id zonyult, a processzorterhelés elhanyagolható, a felhasznált 37614 229.7815 134821 memória pedig 140–200 MB. Nyilvánvalóvá vált, hogy olyan eszközökre van szüksé- günk, amelyekkel az elõzõ, más laboratóriumban még min- dig használt adatbázisból adatokat importálhatunk, illetve 5. táblázat A multiValue tábla abba exportálhatunk. Ezeket az XML-fájlokat író és olvasó © Kiskapu Kft. Minden jog fenntartva eszközöket Perlben gyorsan létrehoztuk, és egy nap alatt ID x y z char_id képesek voltunk minden régi adatot átemelni a Redacle 748867 15 700 76.1 135252 rendszerbe. 748907 35 700 75.7 135252 Pillanatnyilag mintegy 13 ezer alkatrészt tárolunk az adat- bázisban. A tárolt tulajdonságok száma 97 ezer, amelyek 748947 55 700 75.9 135252 közül az 50 MB-os teljes adatbázisban bármelyik különbözõ 748987 75 700 76.1 135252 értékekbõl állhat. A 15 tábla közül a multiValue tábla a leg- 749027 95 700 76 135252 nagyobb, több mint egymillió rekordot tartalmaz és 41 MB méretû. 749067 115 700 75.5 135252 A leglátványosabb eredményt azonban az operátoroknak 749107 135 700 76 135252 a kaloriméter szerelésével töltött idejének terén értük el. 749147 155 700 75.7 135252 A Redacle bevezetése elõtt az operátorok idejük egynegye- dét a munkafolyamat-kezelõ rendszerrel való párbeszéddel 749187 175 700 76.3 135252 vesztegették el. A Redacle használatával az operátorok és 749227 195 700 76 135252 az adatbázis közti párbeszédre fordított idõ mennyisége 749267 215 700 74.6 135252 elhanyagolható, ami nagymértékben növeli az érzékelõ- összeszerelés hatékonyságát. Mi több, az operátorok rövid idõn belül hozzászoktak a Redacle rugalmasságához és sorra jelezni kezdték az új 6. táblázat A charValue tábla eszközök és csatolófelületek iránti igényüket. Aminek a kifejlesztéséhez korábban hetekre volt szükség vagy szinte ID value char_id lehetetlen volt megépíteni, a Redacle és a LAMP használa- 2872 nonhomogeneous 106035 tával most rövid idõn belül (néhány órától egy-két napig terjedõ idõ alatt) megvalósíthatóvá vált. A Redacle adatbázisának rendkívüli rugalmassága sok más Az eszköz programfejlesztõinek nem kell ismerniük üzleti folyamatban vagy ipari területen való felhasználásra a Redacle adatbázisának részleteit, mindössze a használt is alkalmassá teszi, világossá téve, hogy a nyílt forrású prog- karakterlánc-formátumokról kell tudomást szerezniük. Nin- ramok mennyivel jobban használhatóak lehetnek zárt kódú csenek elõírt programkönyvtárak, sem csatolandó fájlok; megfelelõiknél. Jövõbeli terveink között még összetettebb a programozási nyelv sem mérvadó. Az egyetlen elõfeltétel, munkafolyamatmodellek kidolgozása és a gyakran használt hogy képes legyen hálózatos kapcsolatot létesíteni az esz- lekérdezésekbõl és függvényekbõl egy programkönyvtár közközvetítõvel. összeállítása szerepel, amelyet más Redacle-alapú projek- A felhasználói és eszközfelület mellett a koordinátorok és tekben lehetne felhasználni. felügyelõk számára egy parancssoros parancsfájlgyûjte- ményt fejlesztettünk ki, továbbá egy kis programkönyvtárat Linux Journal 2004. február 118. szám hoztunk létre az adatbázis feletti C++- és Perl-parancs- fájlok futtatására, amely feleslegessé teszi az SQL-lekér- Giovanni Organtini ([email protected]) dezések szerkesztését. A Római Egyetem fizikusainak tanít számításelméletet és programozást. Tapasztalatok és távlatok A Redacle rendszert laboratóriumunk négy hónappal az elsõ Luciano M. Barone ([email protected]) A római La projektmegbeszélés után bocsátotta ki. A teljes rendszer kö- Sapienza Egyetem fizikai karának docense.

www.linuxvilag.hu 2004. június 35 Szaktekintély

A merevlemez figyelése Smarttal Az egyik merevlemez tán épp jelezni próbál, hogy az utolsókat rúgja. Telepítsünk olyan programot, ami figyelmeztet, ha cserélni kell.

© Kiskapu Kft. Minden jog fenntartva z tény, hogy a merevlemezek néha elhaláloznak, az is könnyen belátható miért. Egy korszerû meg- 1. lista A smartctl -i a /dev/hda kimenete hajtóban a lemeztányérok másodpercenként több Device Model: IC35L120AVV207-0 mintA száz fordulatot tesznek meg, miközben az olvasófej és Serial Number: VNVD02G4G3R72G az adatokat hordozó mágneses felület között mindössze Firmware Version: V24OA63A szubmikronnyi távolság van. A merevlemezek gyakran Device is: In smartctl database egész nap, a hét összes napján, túlfûtött környezetben, [for details use: -P show] agyonterhelt vagy alig karbantartott gépekben üzemelnek. ATA Version is: 6 Ennek megfelelõen nem meglepõ, hogy a tapasztalt fel- ATA Standard is: ATA/ATAPI-6 T13 1410D használók számára már ismerõsek a kimúló merevlemez tü- revision 3a netei. Furcsa dolgok kezdenek történni. Rendszermag hiba- SMART support is: Available - device has SMART üzenetek töltik meg a konzolt, majd a rendszer megbízha- capability. tatlanná lesz és lefagy. Gyakran egész napok elmennek az SMART support is: Enabled elveszett munka megismétlésével, az operációs rendszer új- ratelepítésével és az adatok helyreállításával. Még ha létezik is biztonsági mentés, egy váratlan lemez-meghibásodás fel- ér egy kisebb csapással. webhelyen megtalálhatók a programok és a telepítés leírá- sa, s nem szabad elmulasztani a WARNINGS fájl tanulmá- Mi az a Smart? nyozását, amelyben a hibás meghajtók, illetve vezérlõk lis- Számos felhasználó, sõt még rendszergazda sem tudja, tája található. A programok használatának leírása egyéb- hogy a legtöbb korszerû ATA és SCSI merevlemez fel van ként a súgóoldalakon, illetve a weboldalon is megtalálható. szerelve egy önellenõrzõ, értékelõ és hibajelentõ, más né- A smartmontools megtalálható Slackware, Debian, SuSE, ven SMART (Self-Monitoring, Analysis and Reporting Mandrake, Gentoo, Conectiva és más Linux-változatokban Technology) rendszerrel. A Smart merevlemezek figyelik is. A Red Hat jelenleg elérhetõ termékeiben az UCSC a saját egészségi állapotukat és teljesítményüket. Sok eset- smartsuite-féle smartctl és smartd található, de az elkö- ben a meghajtó maga figyelmeztet, hogy valami gond adó- vetkezendõ változatokban már a smartmontools változat dik, ezzel segít elkerülni a fentebb vázolt helyzetet. A Smart lesz beépítve. legtöbb megvalósítása lehetõvé teszi a felhasználó számára Ahhoz, hogy megértsük a mûködését, segítségünkre lehet, azt is, hogy önellenõrzéseket végezzen a merevlemezen és ha megismerjük a történetét. Az eredeti Smart megvalósítá- számos teljesítmény- és megbízhatósági jellemzõt figyelem- sait (specific SFF-8035i) a merevlemezgyártók egy csoportja mel kísérjen. készítette. A 2. Revision szerint (1996. április) a lemezek bel- Végzettségemet tekintve fizikus vagyok. A kutatócsopor- sõ listát vezetnek harminc jellemzõrõl, ilyen például az ol- tom egy nagy számítógéptelepet üzemeltet 300 csomópont- vasás és keresési hibák aránya, amelyekkel a megbízhatósá- tal és 600 merevlemezzel, ezek több mint 500 TB-nyi fizikai got és a teljesítményt mérik. Mindegyik tulajdonságnak adatot tárolnak. Néhány évvel ezelõtt kezdtem érdeklõdni (attribution) egy bájtos normalizált értéke (Value) van, ami a Smart iránt, amikor rájöttem, hogy segíthet csökkenteni 1-tõl 253-ig terjedhet, valamint ehhez kapcsolódik egy egy az állásidõt és megbízhatóbbá teszi a telep mûködését. Pont bájtos határérték (treshold). Ha egy vagy több tulajdonság ezért körülbelül egy évig karbantartottam a UCSC értéke (Value) kevesebb vagy egyenlõ, mint a hozzátartozó smartsuite programcsomagból származó, nyílt forrású határérték, akkor a merevlemez vagy várhatóan meghibá- smartmontools csomagot. Ebben a cikkben elmondom, ho- sodik az elkövetkezendõ 24 órában, vagy meghaladta a ter- gyan kell használni a smartmontools smartctl segédprog- vezett, illetve üzemi élettartamát. Néhány érték a meghajtó ramját és a smartd démont a merevlemezek állapotának fel- mûködése közben frissül, míg mások csak külön próba el- ügyeletére. A  http://smartmotools.sourceforge.net végzése során, ami a meghajtó írás- és olvasás teljesítményét

36 Linuxvilág Szaktekintély

2. lista A smartctl kimenete a -Hc /dev/hda

SMART overall-health self-assessment test result: PASSED

General SMART Values: Off-line data collection status: (0x82) Offline data collection activity was completed without error. Auto Off-line Data Collection: Enabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete off-line data collection: (2855) seconds. Offline data collection capabilities: (0x1b) SMART execute Offline immediate. Automatic timer ON/OFF support. © Kiskapu Kft. Minden jog fenntartva Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. No Conveyance Self-test supported. No Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 48) minutes.

lelassítja, így külön paranccsal kell futtatni õket. 1995 végén hajtón, elõször engedélyezni kell a -s kapcsolóval. Ezután az SFF8035i egyes részei beolvadtak az ATA3 szabványba. valami olyasmit fogunk látni, mint az 1.–4. listákon. Az ATA-4 szabvánnyal elvetették azt az igényt, hogy a me- A kimenet elsõ része (1. lista) a meghajtótípus és a gyári revlemezek egy belsõ Attribútum táblát vezessenek. Ehe- program (firmware) adatait sorolja fel – a példánkban ez lyett a meghajtók egyszerûen egy OK vagy NOT OK választ egy IBM/Hitachi GXP-180. A smartmontools rendelkezik adnak az egészségük felõl érdeklõdõ kérdésre. A negatív egy adatbázissal a meghajtótípusokról, ha a vizsgált meg- válasz azt jelzi, hogy a meghajtó gyári programja hajtó megtalálható benne, akkor a nyers tulajdonságadato- (firmware) úgy látja, a meghajtó várhatóan meg fog hibá- kat képes helyesen értelmezni. sodni. Az ATA-5 szabványba bekerült egy ATA hibanapló és A kimenet második részében (2. lista) olvasható a meghajtó a Smart parancskészlete bõvült a merevlemez önellenõrzést egészségi állapotát firtató lekérdezés eredménye. Ez az egy- futtató parancsaival. soros Executive Summary Report (felügyelõi összesítõ jelen- Ahhoz, hogy ezeket a tulajdonságokat kiaknázzuk, tud- tés) a lemez állapotáról. A példában látható merevlemez át- nunk kell hogyan használjuk a smartmontools-t a lemez ment a próbán (passed). Ha azonban a meghajtó egészségi Attribútum-ainak vizsgálatára (a legtöbb meghajtó állapota FAILING, azonnal készítsünk biztonsági mentést visszirányban csereszabatos (backward-compatible) az SFF- az adatainkról. E rész többi adata a lemez kapacitásáról, va- 8035i-vel), a meghajtó egészségi állapotának lekérdezésére, lamint a rövid és az átfogó önellenõrzõ próba lefutásának önellenõrzõ tesztek futtatására, a meghajtó önellenõrzõ várható idõtartamáról nyújt tájékoztatást. próbanaplójának (ez az utolsó 21 nap próbaeredményeit A kimenet harmadik része (3. lista) a meghajtó belsõ táblá- tartalmazza) vizsgálatára, a meghajtó ATA hibanaplójának zatának legfeljebb harminc tulajdonságát sorolja fel (egy (ami az öt utolsó lemezhibájának a részleteit tartalmazza) legfeljebb 255 elemet tartalmazó listából). Ne feledjük, hogy vizsgálatára. Bár ez a cikk elsõsorban az ATA meghajtókra ezek a tulajdonságok már nem részei az ATA szabványnak, összpontosít, a smartmontools weboldalán található leírás de a legtöbb gyártó még mindig támogatja õket. Bár az SFF- a SCSI merevlemezekrõl. 8035i nem határozza meg a tulajdonságok jelentésének ér- Kezdésnek a smartctl -a /dev/hda parancsot adjuk ki telmezését, soknak létezik ténylegesen szabványos értelme- rendszergazdaként, a megfelelõ útvonalat használva zése. Például ennek a meghajtónak a 13. tulajdonsága (ID a meghajtónkhoz. Ha a Smart nincs engedélyezve a meg- #194) a belsõ hõmérsékletet követi nyomon.

www.linuxvilag.hu 2004. június 37 Szaktekintély

3. lista A smartctl kimenete a -A /dev/hda

Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000b 100 100 060 Pre-fail Always - 0 2 Throughput_Performance 0x0005 155 155 050 Pre-fail Offline - 225 3 Spin_Up_Time 0x0007 097 097 024 Pre-fail Always - 293 (Average 270) 4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 10 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0 8 Seek_Time_Performance 0x0005 125 125 020 Pre-fail Offline - 36 9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 3548 10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 10 192 Power-Off_Retract_Count 0x0032 100 100 050 Old_age Always - 158 193 Load_Cycle_Count 0x0012 100 100 050 Old_age Always - 158

© Kiskapu Kft. Minden jog fenntartva 194 Temperature_Celsius 0x0002 189 189 000 Old_age Always - 29 (Lifetime Min/Max 23/33) 196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0

Tanulmányok megmutatták, hogy a merevlemez hõmérsék- ul néhány meghajtó a 9-es tulajdonságot használja a meg- letének minimális, 5 °C-kal történõ mérséklése jelentõsen hajtó üzemidõ perceinek tárolására, így a smartctl -v 9 csökkenti a meghibásodási arányokat, ámbár ez a legújabb, paranccsal helyesen lehet megjeleníteni a szóban forgó ér- hidraulikus csapágyazású meghajtóknál már kevéssé érde- téket. Ha a vizsgált meghajtó szerepel a smartmontools kes. Az egyik legegyszerûbb és legolcsóbb lépés, amit a me- adatbázisában, ez a hozzárendelés önmûködõen zajlik. revlemez megbízhatósága érdekében tehetünk az, hogy kü- A smartctl -a kimenetének része a következõ: lön ventilátorral hûtjük, közvetlenül ráfújva a hûvös levegõt. Minden Attribútum-nak létezik egy hat bájtos nyers értéke SMART Error Log Version: 1 (RAW_VALUE) és egy egy bájtos normalizált értéke (VALUE). No Errors Logged Példánkban a nyers érték három hõmérsékletet tárol: a me- revlemez hõmérsékletét Celsius fokban (29), valamint az Ez a lemezhibák naplója. A szóban forgó meghajtó történe- élettartama alatti legkisebb (23) és legnagyobb (33) értéket. tesen hibátlan, ezért ez a napló üres. Általában csak akkor A nyers érték formátuma a gyártótól függ, semmilyen szab- kell aggódni, ha a lemezhibák tömegesen sorakoznak. Vé- vány nem szabályozza. A meghajtó megbízhatóságának letlenszerû hibák elõfordulhatnak, addig nincs baj, amíg nyomon követésére a meghajtó gyári programja a nyers ér- nem rendszeresek. A smartmontool weboldalán számos téket egy 1 és 253 közé esõ normalizált értékké alakítja. Ha példa látható a smartctl -a kimenetrõl, ezek hibanapló- ez a normalizált érték kevesebb vagy egyenlõ, mint a határ- bejegyzéseket is tartalmaznak. A bejegyzésekhez egy idõ- érték (THRESH), az Attribútum a „nem megfelelõ” jelzést fog- bélyegzõ is tartozik, ami a meghajtó élettartamával mérve ja mutatni, mint az a WHEN_FAILED oszlopban látszik. Pél- mutatja az elõfordulás idejét. Ugyanígy le vannak pecsétel- dánkban ez az oszlop üres, mert egyik Attribútum sem lett ve azok az önálló ATA parancsok, amelyek a hibát okozták, hibára beállítva. A legalacsonyabb (WORST) normalizált érték a bekapcsolástól eltelt milliszekundumokat megszámlálva. szintén látható. Ez a legkisebb érték, amit a Smart szolgálta- Ez megmutatja, hogy a hiba új vagy régi. tás engedélyezése óta elért a meghajtó. Az Attribútum TYPE A smartctl kimenetének utolsó része (4. lista) jelentés a le- mezõje különbözteti meg, hogy az Attribútum „nem felelt mez által futtatott önellenõrzõ próbákról. E próbáknak két meg” beállítása azt jelenti-e, hogy az eszköz elérte a terve- típusa használatos: a rövid és hosszú (az ATA-6/7 meghaj- zett élettartam végét, vagy pedig azt, hogy hamarosan vár- tóknak van leszállítás utáni és szelektív önellenõrzése). ható a meghajtó meghibásodása. Például a lemez felpörgési Ezek a smartctl -t short /dev/hda és a smartctl -t long ideje (ID #3) egy meghibásodást elõjelzõ tulajdonság. Ha /dev/hda paranccsal futtathatók és nem veszélyeztetik ez (vagy bármelyik másik elõjelzõ Attribútum) „hibás” érté- a meghajtón lévõ adatokat. Ezeknek az önellenõrzéseknek ket kap, a lemez meghibásodása 24 órán belül válható. nincs közvetlen hatása a meghajtó normális mûködésére, A tulajdonságok neve, illetve jelentése, valamint a nyers ér- ezért a parancsot nyugodtan lehet alkalmazni egy mûködõ tékek értelmezése egyetlen szabványban sincs meghatároz- rendszer csatolt meghajtóján. Telepünk csomópontjain min- va. A különbözõ gyártók gyakran ugyanazt a tulajdonság- den vasárnap reggel lefuttatunk egy hosszú önellenõrzést azonosítót használják különbözõ célokra, ezért a tulajdonsá- a cron segítségével. A 4. lista bejegyzései mind hiba nélkül gok értelmezése módosítható a smartctl parancs -v kapcso- lefutott önellenõrzések; a Lifetime oszlop megmutatja lójával, errõl bõvebben a súgóoldalakon lehet olvasni. Példá- a meghajtó bekapcsolt élettartamát az önellenõrzés lefutá-

38 Linuxvilág Szaktekintély

sakor. Ha az önellenõrzés hibát talál, az LBA cím megadja Normál esetben a smartd-t a Unix normál init-je indítja. a hiba pontos helyét. A Remaining oszlop százalékban kife- Például a Red Hat-terjesztésben: jezve mutatja meg az önellenõrzés hátralévõ mennyiségét a /etc/rc.d/init.d/smartd start és a hiba megtalálásakor. Ha arra gyanakszunk, hogy valami a /etc/rc.d/init.d/smartd stop parancsok használhatók gond van a meghajtóval, igen ajánlatos lefuttatni egy a démon indítására és leállítására. hosszú önellenõrzõ próbát, hogy megtaláljuk a gondot. A smartd és a beállításfájlok használatáról további útmuta- A smartctl -t offline parancs segítségével offline próbá- tást a súgóoldalakon (man smartd) lehet találni, valamint kat lehet végrehajtani. Ezek a próbák nem készítenek be- összefoglalva a smartd -D és a smartd -h adnak. Például a jegyzéseket az önellenõrzési naplóba. Ezek még az SFF- -M test utasítás egy figyelmeztetõ próbalevelet küld, hogy 8035i szabványból származnak és felfrissítik azoknak az az elektronikus levelek kézbesítésének helyességérõl meg- Attribútumok-nak az adatait, amelyek normális merevlemez gyõzõdhessünk. Más utasítások további rugalmas mûkö- mûködés mellett nem kerülnek frissítésre (lásd az dést tesznek lehetõvé, mint például a nyers Attribútum ér- UPDATED oszlopot a 3. listában). Néhány meghajtó támo- tékek változásának figyelését. gatja az önmûködõ offline próbákat, amelyeket a smartctl Mit kell tenni, ha egy meghajtó zavar jeleit mutatja? -o on paranccsal lehet engedélyezni. Ennek hatására né- Mi történik, ha egy önellenõrzés vagy a meghajtó Smart hány óránként önmûködõen lefut egy offline ellenõrzés. egészségi állapota nem megfelelõ eredményt ad? Elõször A Smart szabvány a meghajtók önellenõrzésének futtatásá- is amilyen gyorsan csak lehet, mentsünk minden adatot ra és a teljesítmény bizonyos szemszögbõl való megfigyelé- a szóban forgó lemezrõl egy másik rendszerre. Másodszor © Kiskapu Kft. Minden jog fenntartva sére kínál eszközt. Legnagyobb hiányossága, hogy nincs futtassunk néhány kiterjedt meghajtó-önellenõrzést és fi- egyetlen közvetlen szerkezet az operációs rendszer vagy gyeljük, hogy a hiba megismételhetõ-e ugyanazon az LBA a felhasználó informálására, ha hibát talál. Mivel a meghaj- címen. Ha igen, akkor valószínûleg valami baj van a meg- tó Smart állapotát gyakran nem kísérjük figyelemmel, szá- hajtóval. Ha a lemez Smart egészségi állapota nem megfe- mos lemezhiba rejtve marad mindaddig, amíg végzetes lelõt jelez és még garanciális, a forgalmazó általában ki meghibásodást nem okoz. Természetesen a felhasználó az fogja cserélni. Ha a meghajtó önellenõrzõ tesztje nem meg- itt leírtak alapján a smartctl használatával rendszeresen el- felelõ eredményû, számos gyártó nyújt egyedi meghajtó- lenõrizheti a meghajtót, de ez nehézkes megoldás. gyógyító programot, mint például a Maxtor PowerMax A smartmontools csomag eddig még nem említett része vagy az IBM Drive Fitness Test. Olykor ezek a programok a smartd démon, mely a rendszeres ellenõrzést végzi, és tényleg meg tudják javítani a meghajtót, a hibás szektoro- a meghajtók Smart adatait hibára utaló jelek után kutatva kat kizárják a mûködésbõl. Gyakran olyan különleges hi- nézi át. Beállítható, hogyha ilyenre bukkan, küldjön levelet bakódot adnak, amelyet fel lehet használni cserelemez a rendszergazdának, vagy futtasson le tetszõleges parancs- igényléséhez. fájlt. Alaphelyzetben a smartd indulása után bejegyzi a rendszer meghajtóit, majd félóránként ellenõrzi állapotu- Összegzés kat, nem megfelelõ Attribútum, egészségi állapot vagy nö- Ez a cikk a smartmontools alapjairól szólt. Ha többet sze- vekvõ számú ATA hiba, nem megfelelõ eredményû önellen- retnénk megtudni róla, tanulmányozzuk a súgóoldalakat õrzés után kutatva, s minden ilyen adatot rögzít a SYSLOG és az internet idevonatkozó oldalait, további segítséget segítségével a /var/log/messages naplófájlba. pedig a támogató levelezõlistán kaphatunk. Ne feledjük, A /etc/smartd.conf fájl segítségével lehet vezérelni és a smartmontools nem helyettesíti az adatmentést! A Smart finomhangolni a smartd mûködését. Ezt a fájlt a smartd in- nem képes elõre jelezni minden lemez-meghibásodást, de dulásakor, még mielõtt a háttérbe vonulna, beolvassa. Min- gyakran jelzi, hogy valami gond támadt és már eddig is den egyes sor egy-egy merevlemezhez tartalmaz utasításo- számos számítógéptelepnek segített, hogy megbízhatóan kat. A mi számítógép-telepünk csomópontjainak beállítás- mûködjön. fájlja így néz ki: Néhány fejlesztõ átülteti a smartmontools-t FreeBSD, Darwin és Solaris rendszerekre, mi pedig mostanában /dev/hda -S on -o on -a -I 194 -m bõvítettük ki oly módon, hogy képes legyen megfigyelni [email protected] és vezérelni a RAID-vezérlõk mögött lévõ ATA-meghaj- /dev/hdc -S on -o on -a -I 194 -m tókat. Ha szeretnél résztvenni a smartmontools fejlesz- [email protected] tésében, írj a támogató (support) levelezõlistára. Különö- sen érdekelnek bennünket a gyártóspecifikus adatok Az elsõ oszlop jelzi az ellenõrzendõ eszközt. A -o enge- a Smart Attribútum-ok és nyers értékek jelentésérõl és délyezi az önmûködõ offline kipróbálást, a -S pedig enge- fordításáról. délyezi az önmûködõ tulajdonságmentést. A -m parancs a figyelmeztetõ üzeneteket küldi el az õt követõ levél- Linux Journal 2004. január, 117. szám címre, a -a pedig arra utasítja a smartd-t, hogy figyelje a meghajtó összes Smart-jellemzõjét. Ebben a beállításban Bruce Allen A Wisconsin Egyetem fizikapro- a smartd naplóz minden változást az összes normalizált fesszora. A gravitációs hullámok és a nagyon tulajdonság értékben. A -I 194 parancs arra szolgál, hogy korai világegyetem témakörben végez kutatá- mellõzze az 194. Attribútum változásait, mivel a meghaj- sokat és számos nagy Linux-telepet épített az tók hõmérséklete gyakran változik, ezért szükségtelen adatok elemzéséhez. rendszeresen naplózni.

www.linuxvilag.hu 2004. június 39 Szaktekintély

Energiakezelés linuxos rendszerekben Az energiakezelés megvalósítása minden rendszerben nehéz feladat. Az alábbiak- ban áttekintjük, hogyan tudjuk kezelni gépünk normál üzemi és energiatakarékos állapot közötti átmeneteit. © Kiskapu Kft. Minden jog fenntartva

z energiakezelõ programok az akkumulátoros szer végez, nem annyira a BIOS. Ugyan ez a két szabvány gépeknél – hordozható számítógépek, tenyérgé- elsõsorban x86 alapú gépekben terjedt el, más géptípuso- pek – szinte létfontosságúak, segítségükkel ugyan- kon is gond nélkül megvalósíthatók. Ais takarékoskodhatunk az energiával, ha az illetõ eszközt nem használjuk folyamatosan. Egyszerû példaként a kijel- Az energiakezelés megvalósítása zõ megadott, használat nélkül eltelt idõ utáni kikapcsolá- Az energiakezelõ eljárások megvalósítása elõtt tudnunk kell, sának lehetõségét említeném. Ilyen módszerekkel élve hogy az eszközoldal egyáltalán milyen szolgáltatások támo- meghosszabbíthatjuk az akkumulátoros üzemidõt, vagyis gatására képes. Az energiakezelõ program egyik legfonto- hosszabb ideig dolgozhatunk a géppel, mielõtt újra kelle- sabb feladata az, hogy minden eszközt olyan állapotban ne töltenünk az akkumulátort. tartson, amely a lehetõ legkisebb energiafelhasználással jár. Az eszközoldal támogatása az energiakezelés mûködésé- Az energiakezelés kérdéskörének egyik lehetséges megkö- hez elengedhetetlen; ha ez megvan, akkor a programoldal zelítésénél a megvalósítást egy energiahasználati–állapot- feladata a lehetõségek okos kihasználása. Az energiakeze- átmeneti folyamatábra felrajzolásával kezdjük. Ebben több- lés támogatásának szintje minden eszköznél más és más. féle energiahasználati rendszerállapotot határozunk meg, Akadnak olyan készülékek, amelyek csak kétféle állapotot illetve az állapotok közötti átmeneteket kiváltó szabályokat ismernek, a be- és a kikapcsoltat. Más eszközök, például és eseményeket is megadjuk. az SA1110 processzor összetettebb energia-megtakarítási Példaként vegyünk egy tenyérgépet, amelyben a következõ lehetõségeket is kínálhatnak, mint például az órajel vál- eszközök találhatók: Intel SA1110 processzor, valós idejû toztatása. óra, DRAM, flash, LCD, elõlap megvilágítása, UART, hang- Az energiakezelés megvalósítása minden rendszernél bo- kodek, érintõképernyõ, gombok és fõkapcsoló. Az Intel nyolult mûvelet, ugyanis számos, egymással kapcsolatban SA1110 processzor több energiamegtakarító szolgáltatást is nem álló alrendszer mûködését kell ugyanolyan irányvona- támogat, ilyen például az órajel programból megvalósított lak szerint összhangba hozni. Írásomban az energiakezelés változtatásának lehetõsége. Az órajel csökkentésével a pro- Linux (2.4.x) alatti mûködését és a fejlett energiakezelést cesszor energia-felvétele is csökken – igaz, a teljesítménye támogató, akkumulátoros mûködésû készülékeken történõ is. A processzor többféle mûködési módot is ismer: megvalósítását tekintem át, az illesztõprogramok és az al- kalmazások szintjére egyaránt kitérve. • Futó mód: az SA1110 normál állapota, amelyben valami- lyen programkódot futtat. Minden energiaforrás enge- A két energiakezelési szabvány délyezett, minden órajel él, a lapka minden erõforrása A számítógéprendszerek energiakezelése az évek során rendelkezésre áll. egyre kifinomultabb lett, eme folyamat során több szab- • Tétlen mód: lehetõvé teszi, hogy a processzort program- vány is született. A két legnépszerûbb ezek közül az APM ból leállítsuk, ha éppen nincsen rá szükség. Ilyenkor (Advanced Power Management, azaz fejlett energiakezelés) a processzor órajele megszûnik, ezzel valamennyi ener- és az ACPI (Advanced Configuration and Power Interface, gia-megtakarítás elérhetõ. A lapka összes többi erõforrá- vagyis fejlett beállítás- és energiafelület). Az APM-et a Mic- sa aktív marad. Ha megszakítás érkezik, a processzor rosoft és az Intel vezette be, az energiakezelés támogatását újra bekapcsol. egy vagy több programréteg segítségével valósítja meg. • Alvó mód: a legnagyobb mértékû energia-megtakarítási A rétegek közötti adatcserét szabványosították. Az APM lehetõséget nyújtja, amely egyben a legtöbb szolgáltatás modellben a BIOS kulcsszerepet játszik. A két említett meg- kikapcsolásával is jár. Ebben a módban a processzor túl- oldás közül az ACPI az újabb, fejlesztésében a Toshiba, az nyomó részének tápellátása megszûnik. Alvó módból Intel és a Microsoft vett részt. Az ACPI intelligensebb ener- a processzor elõre beprogramozott események hatására giakezelést tesz lehetõvé, amelyet inkább az operációs rend- lép ki, ilyen például a fõkapcsoló gomb megnyomása.

40 Linuxvilág Szaktekintély

• Alvó állapot: a rendszer akkor lép tovább ebbe az álla- újraindítás Használaton potba, ha hosszabb idõn keresztül nem használják. Az kívül energia-megtakarítás érdekében határozottabb lépések Futó állapot Készenléti állapot történnek, a processzort ugyanis alvó módba állítjuk, CPU-Mûködik RTC-ON CPU-OFF RTC-ON ekkor viszont az egyéb eszközök túlnyomó része is le- LCD-ON LCD-OFF kapcsol. A DRAM önfrissítõ módba lép, ezzel biztosítja Háttérvilágítás-ON Háttérvilágítás-OFF a gép állapotának, vagyis a memóriába írt adatok meg- Érintõképernyõ-ON Érintõképernyõ-ON õrzését. Alvó állapotból a gép elõre beprogramozott ese- Gombok-ON Gombok-ON Hang-ON Hang-ON mények hatására léphet ki. Ekkor futó állapotba kap- Flash-ON Flash-ON csol, és helyreállítja saját állapotát. DRAM-ON DRAM-ON • Kikapcsolt állapot: a gép a shutdown parancs hatására Használat jut ebbe az állapotba. A kikapcsolt állapotból történõ ki- leállítás lépéskor sor kerül a rendszer újratöltésére. Ez azt jelenti, hogy nincs szükség a gép állapotának, azaz a DRAM tartalmának megõrzésére, vagyis a memória kikapcsol- Használaton A felhasználó meg- Használat kívül ható. Kikapcsolt állapotban a legkisebb az energiafo- nyomja a fõkapcsoló gyasztás. gombot (a rendszer © Kiskapu Kft. Minden jog fenntartva újraindul) A valós idejû óra a rendszeridõ pontos értéken tartása érde- Kikapcsolt állapot Alvó állapot kében minden rendszerállapotban mûködik. A folyamatábra alapján bátran kijelenthetjük, hogy a hasz- CPU- Alszik RTC-ON CPU- Alszik RTC-ON LCD-OFF LCD-OFF nálaton kívüliség felismerése és az eszközök alacsony ener- Háttérvilágítás-OFF Háttérvilágítás-OFF giafogyasztású állapotba kapcsolása jelenti az energiakezelõ Érintõképernyõ-OFF Érintõképernyõ-OFF program szívét. Gombok-OFF Gombok-OFF Hang-OFF Hang-OFF Flash-OFF Flash-OFF A Linux és az energiakezelés DRAM-OFF DRAM-Önfrissítõ módban Az energiakezelõ program az állapotátmeneteket az illesz- tõprogramokkal és az alkalmazásokkal együttmûködve ve- 1. ábra Energiakezelési állapotátmeneti folyamatábra zérli. Minden energiakezelési eseményrõl tud, ide értve az állapotátmeneteket, az alvó módba kapcsolást és az akku- Mint látható, tétlen vagy alvó módba a programoldal kap- mulátor lemerülését is. Ennek köszönhetõen a programol- csolhatja a processzort. dalnak módja van az állapotátmenetek megakadályozására, Az ilyen tenyérgépekben a DRAM-cellákat a processzorban ha valamiért veszélyesnek ítéli meg végrehajtásukat. található memóriavezérlõ egység rendszeresen frissíti. Alvó Az illesztõprogramok általában azért is felelõsek, hogy ala- állapotban azonban a processzor nagy része kikapcsol, va- csonyabb energiafogyasztású állapotukba kapcsolásuk elõtt gyis a DRAM-cellák frissítése megszûnik, ez tartalmuk el- mentsék az eszközök állapotát, a rendszer újraaktiválásakor vesztését okozza. Az adatvesztés elkerülése érdekében pedig helyre is állítsák. a legtöbb DRAM támogatja az úgynevezett önfrissítõ mó- Az alkalmazások általában nem szólnak bele az energiake- dot, amelyben a DRAM önmaga gondoskodik saját cellái- zelési állapotátmenetekbe. Elõfordulhat azonban, hogy nak frissítésérõl. Ha ez a helyzet, akkor a DRAM – ugyan- olyan, az eszközöket közvetlenül használó programot futta- csak programból megvalósítottan, néhány vezérlõregiszter tunk, amely valami miatt mégis részt szeretne venni az át- tartalmának megváltoztatásával – a processzor alvó módba menetekrõl szóló döntések meghozatalában. Ebben a rész- kapcsolása elõtt önfrissítõ módba állítható, és ezzel meg- ben áttekintjük, mire van szüksége egy illesztõprogramnak õrizhetõ a tartalma. ahhoz, hogy az energiakezelésbe beleszólhasson: Tenyérgépünk fõ energiafogyasztó egységei a processzor, a memória és a kijelzõ háttérvilágítása lesznek. Ezeket • pm_dev adatszerkezet: a Linux-rendszermag energiakeze- kell tehát a lehetõ leginkább energiatakarékos állapotban lõ alrendszere a bejegyzett illesztõprogramok számára bi- tartani. zonyos adatokat a pm_dev nevû adatszerkezetbe ír be, így Az 1. ábrán a tenyérgéphez látható egy lehetséges energia- tudja értesíteni õket az energiakezelési eseményekrõl. használati–állapotátmeneti folyamatábra. Röviden tekint- • pm_register: az illesztõprogramoknak elõször be kell sük át az energiaállapotokat: jegyezniük magukat az energiakezelõ alrendszernél, az energiakezelésben csak ezt követõen vehetnek részt. • Futó állapot: a rendszer indítás után ebbe az alapértel- Ezt a pm_register függvény meghívásával tehetik meg: mezett állapotba jut. Az energiafogyasztás ebben az álla- potban a legnagyobb, hiszen minden eszköz aktív vagy struct pm_dev *pm_register(pm_dev_t type, unsigned bekapcsolt. long id, pm_callback cbackfn); • Készenléti állapot: a rendszer akkor lép ebbe az állapot- ba, ha megadott ideig nem használják. Az LCD és a hát- A type az illesztõprogram által kezelt eszköz típusát ad- térvilágítás kikapcsol, a processzor órajele csökken, ez- ja meg, az id az eszköz azonosítóját, a cbackfn pedig zel bizonyos mértékû energia-megtakarítás érhetõ el. egy mutató az illesztõprogram visszahívó függvényére.

www.linuxvilag.hu 2004. június 41 Szaktekintély

state = state = state = state = state = state = PM_RESUME PM_RESUME PM_RESUME PM_STANDBY PM_STANDBY PM_STANDBY (állapot) (állapot) (állapot) (állapot) (állapot) (állapot)

Fejrész A illesztõ- B illesztõ- C illesztõ- Fejrész A illesztõ- B illesztõ- C illesztõ- program program program program program program

2. ábra A rendszer futó állapota 3. ábra A rendszer készenléti állapota

Az illesztõprogramokban használható típusokat és azo- be magát az energiakezelési eseményekre, mint a Bluetooth nosítókat a linux/pm.h fájlban lehet megtalálni. Sikeres illesztõprogram. futás esetén a pm_register visszatérési értéke egy Ha a rendszer alvó állapotba szeretne lépni, egy PM_SUSPEND pm_dev adatszerkezetre hivatkozó mutató. Az illesztõ- kérést küld elõször a Bluetooth illesztõprogramnak, majd program visszahívó függvényét az energiakezelõ al- az USB illesztõprogramnak. Az USB állomásvezérlõ rendszer hívja meg energiakezelési esemény esetén. a PM_SUSPEND feldolgozásának részeként gond nélkül lekap- © Kiskapu Kft. Minden jog fenntartva A függvénynek átadott értékek a következõk: csolhatja a Bluetooth kaput. Amikor viszont a rendszer nor- mál állapotba vált vissza, a PM_RESUME esemény elõször • dev: mutató az eszközt képviselõ pm_dev adatszerke- a Bluetooth illesztõprogramhoz jut el, az USB állomásvezér- zetre, megegyezik a pm_register által visszaadott lõ illesztõprogramjának értesítése csak ezt követõen történik mutatóval. meg. Amikor a Bluetooth illesztõprogram feldolgozza, pon- • event: az energiakezelési esemény típusát adja meg. tosabban feldolgozná az eseményt, akkor az eszköz felé ve- A lehetséges események a következõk: zetõ csatolófelület még nem áll rendelkezésre, vagyis • PM_STANDBY – a rendszer készenléti állapotba fog a Bluetooth eszköz felébresztése sikertelen lesz. Az ilyen váltani; helyzeteket a legegyszerûbben oly módon lehet elkerülni, • PM_SUSPEND – a rendszer felfüggesztett, alvó állapotba hogy a PM_RESUME eseményekrõl „elsõként érkezett, elsõként kapcsol; szolgáljuk ki” sorrend szerint küldjük ki az értesítéseket. • PM_RESUME – a rendszer visszatér üzemi állapotba, A pm_unregister függvény meghívásával a megadott akár készenléti, akár alvó állapotból. Megvalósítástól illesztõprogramot kivehetjük az energiakezelésben résztve- függõen akár több esemény is megadható. võk listájából: • data: a kéréshez tartozó adat, ha van ilyen. pm_unregister(pm_callback cbackfn); Minden illesztõprogramtól azt várjuk, hogy az energiakeze- lési esemény típusától függõen elvégezzen valamilyen mû- A bejegyzés törléséhez ugyanazt a mutatót kell átadott ér- veletet. A PM_SUSPEND esemény hatására, például az LCD tékként használni, mint amit a bejegyzésnél is megadtunk. illesztõprogramjának mentenie kell az eszközállapotot, Ha egy illesztõprogram törölte saját bejegyzését, az energia- majd ki kell kapcsolnia az LCD-t. A PM_RESUME eseménynél kezelõ alrendszer többé nem értesíti az energiakezelési ese- az LCD illesztõprogram feladata az LCD bekapcsolása és ményekrõl. a mentett állapot visszaállítása. A Linux az illesztõprogramok számára két felületet is meg- A visszahívó függvénynek egy egész (integer) értékkel kell ad, ezek a pm_access és a pm_dev_idle. A pm_access meg- visszatérnie. A nulla visszatérési érték azt jelzi, hogy az hívását az eszköz elérése elõtt kell megejteni, illesztõprogram elfogadta az energiakezelési eseményt. Ha a pm_dev_idle pedig akkor jut szerephez, ha egy eszközt a visszatérési érték nem nulla, akkor az illesztõprogram el- nem használunk. Ugyanakkor vegyük figyelembe, hogy utasította az energiakezelési eseményt. Ilyenkor elõfordul- ezeket a felületeket nem minden géptípuson lehet megva- hat, hogy az állapotátmenet meghiúsul. Ha például az LCD lósítani. illesztõprogram energiakezelõ visszahívó függvénye egy Példaként lássunk egy átlagos állapotátmenetet, amelyben PM_SUSPEND eseményrõl kap jelzést, visszatérési értéke pe- csak illesztõprogramok jutnak szerephez. Az energiakezelõ dig 1, akkor a felfüggesztett állapotba váltás el fog maradni. alrendszer a nála bejegyzett illesztõprogramokat egy két- Az illesztõprogramok visszahívó függvényeinek meghívása szeresen láncolt, vagyis körkörösen bejárható listában tartja elõre meghatározott sorrendben történik. A sorrend felállí- nyilván. A 2. ábrán a lista három illesztõprogram bejegyzé- tása egyszerû, „késõbb jött, elõbb szolgáljuk ki” elv alapján sét követõ állapotát próbáltam szemléltetni. Feltételezzük, történik, ami viszont az eszközök egymástól való függése hogy elsõként a C, majd a B és végül az A illesztõprogram esetén okozhat gondot. Vegyünk példának egy Bluetooth jegyezte be magát. eszközt, amelynek csatolófelületét egy USB állomásvezér- Tegyük fel, hogy most a rendszer futó állapotból készenléti lõn keresztül érjük el. A Bluetooth illesztõprogramnak állapotba vált. Az energiakezelõ alrendszer PM_STANDBY ké- szüksége van erre a felületre, nélküle nem tud kapcsolatba rést küld mindhárom illesztõprogramnak. Kétféle ered- lépni a Bluetooth eszközzel. A függés miatt az USB állomás- ményre juthatunk. Az egyik eset az, hogy mindegyik vezérlõ illesztõprogramja a Bluetooth illesztõprogram elõtt illesztõprogram elfogadja a kérést, és a rendszer készenléti kerül betöltésre. Vagyis az USB állomásvezérlõ elõbb jegyzi állapotba lép. A második lehetõség az, hogy valamelyik

42 Linuxvilág Szaktekintély

state = state = state = state = state = state = PM_STANDBY PM_RESUME PM_RESUME PM_STANDBY PM_STANDBY PM_RESUME (állapot) (állapot) (állapot) (állapot) (állapot) (állapot)

Fejrész prev_state = Fejrész prev_state = prev_state = PM_RESUME B illesztõ- C illesztõ- PM_RESUME PM_RESUME C illesztõ- (elõzõ állapot) program program (elõzõ állapot) (elõzõ állapot) program A illesztõ- A illesztõ- B illesztõ- program program program

4. ábra Az A illesztõprogram elfogadta a PM_STANDBY kérést 5. ábra Az A és a B illesztõprogram elfogadta a PM_STANDBY kérést illesztõprogram, esetleg több való be- vagy onnan kilépé- is, elutasítja a kérést. Ilyen- state = state = state = sét stb. Az APM illesztõ- PM_RESUME PM_RESUME PM_RESUME kor az állapotváltás sikerte- (állapot) (állapot) (állapot) program rendszeresen le- len lesz, a rendszer futó álla- kérdezi az APM BIOS-tól potban marad. Fejrész A illesztõ- B illesztõ- C illesztõ- az energiakezelési esemé- A 3. ábrán látható állapot ak- program program program nyekre vonatkozó adatokat, © Kiskapu Kft. Minden jog fenntartva kor alakul ki, ha mindegyik majd az APM-képes illesz- illesztõprogram elfogadja tõprogramokkal és alkalma- a PM_STANDBY kérést. Vegyük 6. ábra A C illesztõprogram elutasította a PM_STANDBY kérést, zásokkal együttmûködve észre, hogy a pm_dev adat- ezért a rendszer újra futó állapotba váltott dolgozza fel õket. szerkezetek állapot- (state) A Linux APM illesztõprog- mezõjének értéke a kérés elfogadását követõen megváltozott. ramja két felületet tesz elérhetõvé az alkalmazások számá- Most vegyük azt az esetet, amikor az A és a B illesztõprog- ra. Az elsõ a /proc/apm, amely a rendszer áramforrásáról ram elfogadja a PM_STANDBY kérést, a C viszont nem. – hálózati forrás vagy akkumulátor – tájékoztat. Ha a gép A 4. ábrán az az állapot látható, amikor az A illesztõprog- akkumulátorról üzemel, akkor az akkumulátor töltöttségi ram már teljesítette a kérést. Miután az A illesztõprogram szintjérõl és a teljes lemerüléséig hátralévõ idõrõl is tájékoz- jelezte beleegyezését, a B illesztõprogram is megkapja tat. A második felület a /dev/apm-, amelynek segítségé- a PM_STANDBY kérést. vel az alkalmazások értesülhetnek az energiakezelési ese- Az 5. ábrán az azt követõ állapot szerepel, hogy a B illesztõ- ményekrõl, illetve részt is vehetnek bennük. Az alkalmazá- program is jelezte egyetértését. Ekkor az A és a B eszköz sok a megfelelõ ioctl hívások révén maguk is kezdemé- már készenléti állapotban van, a C viszont még futóban. nyezhetnek állapotátmeneteket. A fájlra vonatkozó olvasási A következõ mûvelet a PM_STANDBY kérés elküldése a C il- hívások mindaddig blokkolva maradnak, amíg valamilyen lesztõprogramnak, amely viszont elutasítja õt. Ekkor az ál- energiakezelési esemény nem történik. Az olvasási hívás lapotváltást vissza kell vonni. Mivel az A és a B eszköz már visszatérésekor a következõként bekövetkezõ energiakeze- készenléti állapotban áll, az energiakezelõ alrendszernek lési eseményrõl kapunk tájékoztatást. esetükben vissza kell vonnia a mûveletet, vagyis küld ne- Elõfordulhat, hogy rendszerünkön a /dev/apm_bios fájlt kik – elõször a B majd az A illesztõprogramnak – egy megnyitó alkalmazások egy része rendszergazdai jogosult- PM_RESUME kérést. A visszavonás elvégzése után újra futó sággal fut. Ezeket az alkalmazásokat az APM illesztõprog- módban lesz az összes eszköz, s ez az állapot a 6. ábrán ram kiemelten kezeli. Az események egy részérõl, mint az látható. alvó vagy készenléti állapotba váltás, az APM illesztõprog- ram minden olyan alkalmazást értesít, amely megnyitotta APM a /dev/apm_bios fájlt. A rendszergazdai jogosultságokkal A 7. ábrán az APM modell látható. Fontosabb összetevõi futó alkalmazásoktól visszaigazolást is vár, a tényleges álla- a következõk: potátmenetre csak a beleegyezõ üzenetek beérkezése után kerül sor. Egyetértésüket az alkalmazások az e célra szolgáló • APM BIOS: programfelület az alaplaphoz és energiake- ioctl hívásokkal fejezhetik ki. zelésre képes eszközeihez és összetevõihez. Ez a rend- Normál esetben a következõ ioctl hívások támogatása szer energiakezelõ programrendszerének legalacso- valósul meg: nyabb rétege. • APM illesztõprogram: az APM megadott operációs • APM_IOC_STANDBY: készenléti állapotba lépteti rendszeren történõ megvalósításáért felelõs. a rendszert. • APM támogatással rendelkezõ illesztõprogramok és al- • APM_IOC_SUSPEND: felfüggesztett állapotba lépteti kalmazások: az APM illesztõprogram minden energia- a rendszert. kezelési eseménynél velük lép kapcsolatba. Az APM két, felhasználói térben futó segédprogramot is Az APM BIOS észleli és jelenti a különféle energiakezelési rendelkezésünkre bocsát. Az apm parancs a rendszermag eseményeket, mint például az akkumulátor lemerülését, az APM alrendszerével tart kapcsolatot. A neki átadott érté- áramforrás megváltozását, a rendszer készenléti állapotba kektõl függõen képes a rendszer energiaállapotának meg-

www.linuxvilag.hu 2004. június 43 Szaktekintély

Alkalma- APM-képes APM-képes APM-képes APM-képes A B C zások alkalmazás alkalmazás illesztõ- illesztõ- s_user = 1 s_user = 1 s_user =0 program program Felhasználói tér Rendszermag tér Operációs Operációs APM illesztõ- rendszertõl rendszer program függõ D2 BIOS APM felület Operációs APM illesztõ- rendszertõl program független D1 APM BIOS CPU PM Bõvítõeszköz Bõvítõeszköz illesztõprogram

Programréteg Hardverréteg © Kiskapu Kft. Minden jog fenntartva APM BIOS által vezérelt processzor 1. 2. eszközök eszköz eszköz

7. ábra Az APM modell 8. ábra Példa az állapotátmenet végrehajtására

jelenítésére, de arra is használható, hogy a felhasználó "resume":"suspend") készenléti vagy felfüggesztett állapotba léptesse a gépet. #A rendszer kilép a felfüggesztett állapotból. Az apmd démon a különféle energiakezelési eseményeket #bekapcsoljuk a hálózati csatolót jelenti és dolgozza fel, valamint minden energiakezeléssel #és növeljük a processzor sebességét. kapcsolatos eseményt naplóz a /var/log/messages fájlba. ifconfig eth0 up A naplózás mellett az apmd a különféle energiakezelési echo 206400 > /proc/sys/cpu/0/speed események hatására bizonyos mûveleteket is képes végre- ;; hajtani, ezek megadására egy parancsfájl, általában az apmd_proxy fájl szolgál. A parancsfájlt az apmd démon hív- Példa az energia-állapotátmenetre ja meg, és egy vagy két átadott érték segítségével közli ve- Az állapotátmenetekkel kapcsolatosan homályosnak tûnõ le, hogy milyen esemény fog bekövetkezni. Nézzünk egy részek azonnal megvilágosodnak, ha veszünk egy illesztõ- példaparancsfájlt: programokat és alkalmazásokat egyaránt tartalmazó példát. Tegyük fel, hogy a rendszerben két illesztõprogram találha- case 1:2 in tó, D1 és D2, mindkettõ energiakezelésre bejegyezve, vala- mint a /dev/apm_bios megnyitásával három alkalmazás "standby":*) (A, B és C) is résztvesz a folyamatokban. Az A és a B alkal- #A rendszer használaton kívül van, ezért mazás rendszergazdai (superuser, s_user) jogosultsággal #készenléti fut, a C pedig normál felhasználóként. #állapotba vált. Csökkentjük a processzor A 8. ábrán ez a felállás látható. #sebességét. Vegyük most azt az esetet, amikor a rendszer futó állapot- echo 162200 > /proc/sys/cpu/0/speed ból alvó állapotba akar váltani. A szükséges lépések sora az ;; alkalmazásoknak (A, B és C) a végrehajtandó átmenetrõl való értesítésével kezdõdik. Így az alkalmazások elvégez- "resume":"standby") hetik az általuk az átmenethez szükségesnek vélt mûvele- #A rendszert használni akarjuk, ezért teket. Mivel az A és a B alkalmazás rendszergazdai jogo- #készenléti állapotból futó sultsággal fut, a további lépések megtétele elõtt meg kell #állapotba hozzuk. Növeljük a processzor várni, hogy beleegyeznek-e az átmenet végrehajtásába. #sebességét. Amikor az A és a B alkalmazás végzett mindazzal, amit az echo 206400 > /proc/sys/cpu/0/speed alvó állapotba való átlépés elõtt végre akart hajtani, engedé- ;; lyezõ jelzést küld az APM illesztõprogramnak. Az APM illesztõprogram most készen áll a rendszer alvó ál- "suspend":*) lapotba kapcsolására. PM_SUSPEND üzenetet küld D1-nek és #A rendszer felfüggesztett állapotba lép. D2-nek. D1 és D2 az általa kezelt eszközt alvó állapotba kap- #Leállítjuk a hálózati csatolót. csolja, majd nyugtázó jelzést küld az APM-nek. Miután D1 ifconfig eth0 down és D2 végzett a szükséges mûveletekkel, az APM jelzi a pro- ;; cesszor energiakezelõ illesztõprogramjának, hogy a pro-

44 Linuxvilág Szaktekintély

cesszort alvó állapotba lehet kapcsolni. Amikor ez is megtör- Anand K. Santhanam ([email protected]) 1999-ben ke- tént, akkor a rendszer alvó állapotba kapcsolásának folya- rült az IBM Global Services (Software Labs) indiai csapatába. mata lezárult. Az IBM Linux Group tagja, ahol leginkább illesztõprogramok- kal, ARMLinuxszal és a beágyazott rendszerek energiakeze- Összegzés lésével foglalkozik. Ugyan az APM alkalmazásának vannak bizonyos hátrányai is, egyszerûségébõl fakadóan gyakorlatilag bármilyen ké- Vijay Sukthankar ([email protected]) 1994-ben került az szülékben megvalósítható. Más szabványok, például az IBM-hez. Jelenleg a Linux Competency Center vezetõje, ACPI, magasabb fokú energiakezelést tesznek lehetõvé, ám emellett egyéb Linux alapú, nyílt forrású fejlesztéseket is irá- ennek a lehetõségnek a növekvõ bonyolultság az ára. nyít. Az IBM különféle munkacsoportjaiban számos beágya- Fontos az is, hogy minden illesztõprogram és alkalmazás zott Linux alapú szolgáltatás fejlesztésébe kapcsolódott be. helyesen végezze az energiakezelési mûveleteket, ellenkezõ esetben akár egyetlen illesztõprogram is megakadályozza Murali Iyer ([email protected]) 1995 óta dolgozik az IBM- például azt, hogy a gép felfüggesztett állapotba lépjen. nél, a vállalatnak több laboratóriumában is megfordult világ- Ugyanakkor hibátlan megvalósítással az energiakezelés je- szerte. 2000. óta Linux alapú beágyazott rendszerek tervezé- lentõs mértékben hozzájárulhat a gép hatékonyabb, ener- sével foglalkozik. Többek közt felsõ kategóriájú tenyérgépek giatakarékosabb mûködéséhez. fejlesztésében és szívritmus-szabályzó készülékek progra- © Kiskapu Kft. Minden jog fenntartva mozásában vett részt.

Linux Journal 2004. március, 119. szám  FORRÁSOK

Srivatsa Vaddagiri ([email protected]) 1996 óta dolgozik az IBM India alkalmazásában. Számos APM szabvány különbözõ tervezetben vett részt, elsõsorban Unix alapú A rendszermag forrásának Documentation/pm.txt rendszerekkel foglalkozik. Jelenleg a Linux alapú tenyérgé- állománya pek energiakezelés-támogatásán dolgozó beágyazott Intel SA1110 Advanced Developers kézikönyv Linuxot fejlesztõ csoport kiemelkedõ tagja.

www.linuxvilag.hu 2004. június 45 Szaktekintély

Pehelysúlyú ablakkezelõk Kényelmes géphasználat csekély erõforrásigénnyel.

ondolom sok Linux-felhasználóban felmerült már az a kósza gondolat, hogy miért is kell nekünk fé- © Kiskapu Kft. Minden jog fenntartva nyesen villogó, mindenféle különleges szolgáltatá- Gsokat nyújtó, magas színvonalú ablakkezelõt használnunk X-felületen? Természetesen egyáltalán nem kell, viszont mindenki a legelterjedtebbek felé veszi az irányt. Nincs is ezzel semmi baj, hiszen mindenki szereti, ha minél na- gyobb tudású alkalmazások segítik mindennapi munkáját, mert végül is gépünket sok esetben a grafikus felületen keresztül érjük el. Erre gondoltak a népszerû munkakör- nyezetek fejlesztõi is annak érdekében, hogy minél széle- sebb néptömegeket csábítsanak a Linux használatára. Ab- ból indultak ki, hogy az emberek nagy többsége Windowst használ, így mindenki megszokta, hogy a felület minden- ben a kedvére próbál tenni. Ha jobban belegondolunk, az ablakos rendszerben szükségünk is van rá, hiszen más- képp nem nagyon tudnánk elérni a mindennap használa- 1. kép Az Fvwm nevû klasszikus tos lehetõségek jelentõs részét. Linux alatt azonban kissé más a helyzet. Mivel rendszerünk parancssorban gyakor- úgy suhan a gépem, mintha legalábbis Windows 95 tanyáz- latilag verhetetlen, s a legtöbb guru ennél fogva ideje na rajta. Ami a kihasználtságot illeti: minden tekintetben nagy részét a parancssor elõtt tölti, ezért számukra sokkal a kezem alá dolgozik. kényelmesebb, gyorsabb ezen a felületen keresztül vezé- A következõkben néhány használható és kevésbé hasz- relni a masinájukat, minthogy igénybe vegyék a munka- nálható ablakkezelõt szeretnék bemutatni, ecsetelni elõ- környezet nyújtotta, sokszor nehézkes alkalmazások segít- nyeiket, vázolni hátrányaikat, s mindezt olyan módon, ségét. A legtöbb felhasználó ugyanakkor szívesen mellõzi hogy a leggyengébbektõl haladunk a legerõsebbek felé, a különbözõ látványos hatásokat, nem veszi igénybe miközben egyre magasabbra helyezzük felhasználói a bonyolult eszközkezelést stb. A kérdés ekkor csupán az, igényeinket. miért is foglaljon el a munkakörnyezet sok-sok tárhelyet, memóriát, processzoridõt, ha nagyrészt ki sem aknázzuk Fvwm2 a képességeit? Ha jobban belegondolunk, egy kezünkön Ez az ablakkezelõ bizony nem mai gyerek, fénykorát fel tudjuk sorolni milyen programokat használ egy átlagos a Unixok idejében élte, ám ez a fény mára jelentõsen meg- felhasználó egy beállított rendszeren: parancssor, web- kopott. Ez nem azt jelenti, hogy nem is használják. Szá- böngészõ, levelezõ, médialejátszó, irodai csomag. Ha pe- mos helyen – fõleg távoli X-terminálok esetében – mind dig ebbõl a szemszögbõl vizsgáljuk, bizony sokszor felesle- a mai napig rendeltetésszerûen alkalmazzák. Ami a felépí- gesnek tûnik a fényes grafikus felhasználói felületek hasz- tését illeti, egy különleges ablakot kapunk, ez ad helyet nálata, hiszen e szolgáltatások ellátására csupán egy a több munkafelület kezeléséért felelõs lapozónak, az órá- visszafogott tudású ablakkezelõ is bõségesen elegendõ. nak, illetve néhány elõre meghatározott gombnak. Ez Fõként akkor zavaró mindez, ha nem elég gyors a masi- a manapság megszokott startmenü-panelnek tekinthetõ, nánk, ezért munkánkat nem hogy javítaná, de jelentõsen azaz innen vezérelhetjük az asztalainkon lévõ ablakokat. hátráltatja is. Ekkora engedményeket nem is szükséges Leggyakrabban használt eleme az asztalon bal kattintással tennünk, ugyanis számtalan úgynevezett pehelysúlyú ab- elérhetõ menü, amellyel különbözõ alkalmazásokat indít- lakkezelõ (munkakörnyezet) áll rendelkezésünkre éppen hatunk, vagy éppen fejezhetjük be az ablakkezelõ (ezzel az ilyen esetekre a mindennapi felhasználók számára. együtt az X-felület) használatát. Az ablakok kezelésérõl rö- Magam is az egyik ilyen „fapadost” használom, mert bár el- viden annyi mondható el, hogy nehézkes, bár ez is csak fut a KDE, és semmi bajom vele, de ezzel a kis programmal megszokás kérdése. Annyi bizonyos, hogy nem nyújt szá-

46 Linuxvilág Szaktekintély

2. kép A Blackbox nevû ablakkezelõ 3. kép Az Afterstep ablakkezelõ bevetés közben

(forrás:  http://www.afterstep.org) © Kiskapu Kft. Minden jog fenntartva

Blackbox Mik ezek a misztikus munkafelületek? Az Fvwm-nél ugyan jóval fiatalabb, de fejlesztõi – tudását tekintve – az erõsen ingerszegény kategóriát célozták meg A Unix háza táján a kezdetektõl fogva jellemzõ vonás vele. A felállás itt is nagyjából ugyanaz: asztal, rajta egy pa- a különbözõ X-felületeknél, hogy egyszerre nem csak nel, amelyen a pillanatnyi munkaasztalt láthatjuk, a jelen- egyetlen képernyõnk van. Ez azt jelenti, hogy több leg kiválasztott ablakkal, s a panelen váltogathatunk az munkaasztalt határozhatunk meg, ebbõl azonban mindig egyes ablakok, illetve munkafelületek között. Ehhez az asz- csak egyetlenegy látszik. Mindegyikük hajszálra ugyan- talon jobb kattintással elérhetõ rendszermenü adódik, ame- úgy fest, s ugyanúgy is mûködik. Szerepük az, hogy lyen rögtön mindenféle egyéb panel nélkül megtehetjük az megsokszorozzák a felhasználó számára rendelkezésre összes beállítást, amit a fejlesztõk beépítettek – ebbõl jól kö- álló felületet, amelyen számtalan ablakát szétdobálhatja vetkeztethetõ – nem túl sok van belõlük. A rendszer egé- vagy épp rendszerezheti. Az ablakfelületek között általá- szen addig remekül használható, amíg ikon állapotúvá nem ban egy lapozó segítségével mozoghatunk. Ez – akár teszünk egy ablakot, vagyis inkább addig, míg ezt a bizo- menü formájában, akár grafikus módon felkínálja a kü- nyos ablakot újra fel szeretnénk használni, ugyanis ekkor lönbözõ munkafelületeket, s kattintással kapcsolhatjuk kezdõdhet az eltüntetett ablak utáni ádáz vadászat. be õket – természetesen az összes munkafelületen Hosszabb-rövidebb keresgélés után általában rájövünk, látszódik. Az egyes ablakok esetében lehetõségünk hogy a rendszermenü nyílik áthelyezni õket, néhol csak az ablak menüjének Blackbox/Workspace/Icons/ menüpontjának be- alkalmazásával, máshol azonban a már jól ismert fogd kapcsolásával hozhatjuk újra elõ. Csúnya hibának tartom, és húzd módszerrel. A haladók számára használata hogy ha az ikon állapotú ablak futása megszakad (például rendkívül hasznosnak bizonyult, de meg kell jegyezni, azt a terminált zárjuk be, amibõl indítottuk), akkor ebbõl hogy a csupán webezgetõ felhasználók e lehetõségtõl a bizonyos menübõl nem tûnik el az ablak neve, s rákattint- inkább csak eltévednek. Ilyen esetekben ki kell va a nagy semmi jõ’ elõ az ablak helyett, s ezeket egyszerû kapcsolni a lapozót, és csak az épp jelenlévõ felületen módszerekkel nem is lehet eltüntetni. Vigasztalódásul kell elhelyezni az összes ablakot. a sok-sok, változatosnál változatosabb látványtéma (theme) próbálgatását javaslom. Mindent összevetve elmondhatom, hogy ha nem lenne ott munkra annyi lehetõséget (például egy egyszerû teljes az ikonállapotban eltûnõ ablakok kínos kérdése, az egyik méretûvé alakítást), mint mondjuk a késõbbiek során be- legjobb ablakkezelõ lehetne, mert szegényes képességei kö- mutatandó egyéb megoldások. Ezenkívül túl nagy méretû vetkeztében veszett gyors (mintha Windows 3.1-et futtat- a keret, a fejléc, és amint nem talál elegendõ helyet egy nánk Pentium 4-sen). ablaknak az asztalon (mert már sok egyéb ablak van meg- nyitva), akkor egy keretet ragaszt az egérmutatóra, és ne- Afterstep künk kell megmondani, hová teheti le az ablakot. Monda- Ez is meglehetõsen régi ablakkezelõ, amely az elõzõ kettõ- nom sem kell, hogy ez hosszú távon az agyára megy min- nél megismert sajátosságokat magában hordozza, ám mind- den kulturált ablakkezelõn felnõtt embernek. ezt fejlettebb formában teszi. Azt is mondhatnám, az elõzõ Összességében elmondható róla, hogy az akkori kor színvo- két ablakkezelõ elõnyös tulajdonságait olyan módon ötvözi, nalán egy igen értékes program volt, amely azonban mára hogy eközben a hibáikat nem veszi át. megöregedett, s inkább csak megszállott szerelmesei hasz- Ebben az ablakkezelõben is létezik egy különleges „ablak”, nálják, komoly munkára nem való. egy gombpanel (button bar) az asztalon, amely minden

www.linuxvilag.hu 2004. június 47 Szaktekintély

4. kép A WindowMaker mûködés közben 5. kép Az IceWM ablakkezelõ © Kiskapu Kft. Minden jog fenntartva

munkafelületen feltûnik, s szerepét tekintve ez is azt a bizo- Xmms-vezérlõ, hangerõszabályzó, hálózati forgalom kijelzõ, nyos Start menüt valósítja meg. A grafikus felületen keresz- processzor-terheltség (system load) jelzõ stb. Linux alatt tül sajnos nem lehet testreszabni, ehhez szövegszerkesztõ- egyébként minden ilyen kis programocskát, amely arra hi- vel kell hozzányúlni a beállításfájlokhoz. Egészében el- vatott, hogy folyamatosan tájékoztassa a felhasználót, vagy mondható róla, hogy nehezen és szegényesen szabható éppen beavatkozási felületet nyújtson minden helyzetben, testre, de mentségére legyen mondva, hogy ezt úgyis csak kisalkalmazásoknak vagy appleteknek nevezzük. egyszer kell megtennie a felhasználóknak. S ha ezzel meg- Végkövetkeztetésként elmondhatjuk, hogy ez valóban volnánk, egy az elõzõhöz hasonló fürgeségû ablakkezelõt igazán használható ablakkezelõ. Egyetlen hiányossága kapunk. talán, hogy nem kaphatunk állandó adatot arra nézve, Természetesen szintén megtalálható benne az asztalról bal hogy mely programjaink vannak elindítva, ugyanis nincs kattintással elõhozható rendszermenü, amelyben az After- tálca, amelyen megjelennének az egyes programokat jel- step saját lehetõségein kívül rendszerünk egyéb alkalmazá- képezõ gombok. sait is elindíthatjuk. Az ablakkal természetesen minden megszokott mûvelet elvégezhetõ. Ikonállapot alkalmazása IceWM esetén az ablak úgy jelenik meg, mintha egy ikon lenne az Ez az elsõ olyan ablakkezelõ a sorban, amely kísértetiesen asztalon. Az Afterstepnél már megjelenik az a beállítási le- hasonlít a Windowsra. Van benne Start gomb, van Start hetõség is, hogy az egeret a képernyõ széléhez tolva átevic- menü, van tálca és van hely az ikonoknak a tálca jobb szé- kélhetünk a szomszédos munkafelületre, így gyakorlatilag lén. Az asztalra történõ ikonrakosgatás még e programban szabadon járhatjuk be a rendelkezésre álló teljes felületet, s is bajos, de nem is ez a lényeg. Felépítését tekintve sokkal az ablakok kényelmes áthúzogatásával tényleg úgy érez- egyszerûbb, mint például a WindowMaker, akár fapado- zük, mintha négyszer akkora monitorunk lenne. sabbnak is tûnhet (nemcsak tûnik, de így is van), viszont Bár elsõre rendszertelennek tûnhet ez a kiváló ablakkezelõ, azok számára rendkívül hatékony lehet, akik már jól meg- de aki az elején képes átvészelni a bajos testreszabási mizé- szokták a redmondi operációs rendszer nyújtotta grafikus riát, az utána biztosan nem fog megválni tõle. szolgáltatásokat. Mivel maga az ablakkezelõ is elég egysze- rû, ezért ne lepõdjünk meg, ha minden apró kis jellemzõt WindowMaker be tudunk állítani grafikus felületrõl. Egyetlen ablakba lett Ezt az ablakkezelõt közelebbrõl szemügyre véve tapasztal- minden bezsúfolva, amelyben a jobb oldalon lévõ listából hatjuk, hogy ez igazából az Afterstep civilizáltabb változata, választhatjuk ki a beállítandó elemek körét, s a jobb oldalon ami a gyakorlatban annyit tesz, hogy meg lett fejelve egy megjelenõ panelen végezhetjük a testreszabást. Sebességé- grafikus beállítási modullal. Ennek segítségével már szinte ben nem tudtam különbséget tenni az elõzõekhez képest, gyerekjáték a beüzemelése. Egyedül a gombpanel kezelése mindegyik egyformán gyors. érdekes. Ez ugyanis úgy mûködik, hogy ha egy grafikus programot futtatunk, „ikonja” egy gomb formájában jelenik Xfce4 meg az asztalon, amit azután az egérrel „odaragasztha- Következzék egy kicsit nagyobb ugrás az elõzõekhez ké- tunk” a gombsorhoz. A legtöbb elem módosítható a meg- pest, ugyanis ez egy sokkal fejlettebb grafikus környezet, szokott gyorsmenükön keresztül (jobb egér kattintás). Az mint az elõzõek. Azért nem mondom, hogy ablakkezelõ, eddigiekhez képest új szolgáltatás, hogy kis programocská- mert annál kicsit több. Megjegyzem, minden eddig tárgyalt kat, úgynevezett kisalkalmazásokat (appleteket) ragasztha- „ablakkezelõ” túlmutatott az egyszerû ablakkezelésen, tunk az asztalra, ezek ugyanolyan megjelenési tulajdonsá- ugyanis nemcsak az alkalmazásokat helyezte ablakba, ha- gokkal bírnak, mint a gombpanel, de attól külön is elhe- nem a hátteret is adta, azon egy menüt, és szinte mind- lyezkedhetnek. Ilyen kis appletek lehetnek például az egyik tartalmazott gombpanelt is. Ezek mind az ablakkezelõ

48 Linuxvilág Szaktekintély

a legigényesebb „fapados”, ám ezért az igényességért némi fizetség jár, méghozzá processzoridõ formájában. De ne ijed- jünk meg, sokkal-sokkal gyorsabb, mint mondjuk a Gnome2, vagy a KDE, s a mindennapokban sem nyújt kevesebbet. Magam részérõl csak dicsérni tudom ezt az alkalmazást.

Xpde Érdekes ablakkezelõ, amely fõ céljának azt tekinti, hogy a Windows XP munkafelületének tökéletes mása legyen mind külcsín, mind mûködés tekintetében. Mûködés közben még nem próbáltam ki, mivel jelenleg a kevésbé üzembiztos állapotáról tanúskodó 0.5-ös változatszá- mot viseli. Ilyenkor még nem érdemes szenvedni vele, ugyanis a sok programhiba elveheti a kedvünket az egésztõl. Ennek ellenére alaposan szétnéztem a honlap- jukon ( http://www.xpde.com), amelyen egész ígéretes 5. kép Xfce4 – visszafogott elegancia képernyõképek találhatók. © Kiskapu Kft. Minden jog fenntartva Több ablakkezelõ egyetlen rendszeren? szolgáltatási színvonalát emelik. Számos esetben azonban Bizonyára sokakban megfogalmazódott a kérdés: vajon még ezen is túlmutató szolgáltatások jelennek meg, s ezál- megoldható-e az, hogy valaki több ablakkezelõt is használ- tal a hagyományos ablakkezelõkhöz képest többletet nyújtó jon? A válasz természetesen: igen, elõbb azonban nézzük alkalmazásokat szokták munkakörnyezetnek nevezni. Ilyen meg, hogy ez miért lehet fontos. Egyrészt az átállást végzõ különleges szolgáltatás általában a munkamenet kezelése felhasználó gyakran szeret visszatérni a régi grafikus kör- (a használat elejétõl végéig vezérelve vagyunk, kilépéskor nyezetbe még ezt-azt beállítani, vagy valamit lelesni, más- sorban bezáródnak a megnyitott programok), asztalkezelés részt elõfordulhat, hogy a sok-sok beállítási lehetõséget kí- (ikonok, menük), tálca használata, egységes keretrendszer, náló, ámde igen lassú KDE-t használjuk arra, ha valami kü- egyéb hozzátartozó programok (pl.: fájlböngészõ), azt is lönlegeset szeretnénk átállítani, ugyanakkor az a célunk, mondhatnánk, hogy valójában egy feladat köré csoportosí- hogy a mindennapi munkánkban egy egyszerûbb, gyor- tott programok gyûjteményei. sabb ablakkezelõt vehessünk igénybe. Ilyen, több grafikus Nos, e munkakörnyezetek közé sorolja magát a GTK2-re felületet támogató rendszert akár kézzel is karbantartha- épülõ Xfce4 is. Megjelenését tekintve inkább a nagyokra ha- tunk, de a legegyszerûbb megoldás mégis az, ha segítségül sonlít, de elég sok vonást örökölt a klasszikus ablakkezelõk- hívunk valamilyen munkafelület-vezérlõt (desktop tõl. Például, hogy a gombpanel (button bar) külön áll a tál- manager), amely arra hivatott, hogy az X-kiszolgáló elindí- cától és az ikondoboztól. Ez azonban kellõen intelligens tása után ablakkezelõ helyett elindulva csatlakozzon a ki- módon megoldott, ugyanis a gombpanelre egyedül a tálcát szolgálóhoz. Ezekkel szokás megoldani a grafikus bejelent- nem lehet ráültetni, ezenkívül minden kényelmes szolgálta- kezést. Ha tehát a gépet elindítva alapértelmezetten indul tást igénybe vehetünk. Rátehetjük a munkafelületek közötti a grafikus felület, s mi lehetõséget kapunk a bejelentkezés- tájékozódást segítõ lapozót, appleteket aggathatunk rá, egy- re, akkor épp egy ilyen munkafelület-vezérlõt látunk ma- szóval igen kényelmessé alakíthatjuk. Itt is igaz, hogy min- gunk elõtt. Némelyikük további szolgáltatásként támogatja den beállítható grafikus felületrõl, és a GTK 2.0-snak kö- a különbözõ ablakkezelõk használatát. Ez a gyakorlatban szönhetõen egy rendkívül igényes, végletekig testreszab- annyit jelent, hogy a bejelentkezés után az általunk kért ható grafikus elemkészlettel gazdálkodhatunk. Az asztalon munkafelületet indítja. Mi tehát a bejelentkezéskor kérhet- egy gyorsmenü is elérhetõ, amely azonban alapértelmezet- jük tõle, hogy az épp használni kívánt környezetet indítsa ten nem bukkan elõ. Ehhez meg kell keresnünk a leírásban el, ezáltal máris megoldódott a különbözõ munkakörnyeze- található XML példafájlt, s ezt kell a saját könyvtárunkba tek kezelésének gondja. másolni, esetleg kedvünk szerint átalakítani. (Ikonokat itt Most aztán valóban semmi sem állhatja olvasóink útját, sza- sem rakhatunk az asztalra.) A gombpanelen nincs ugyan badon kipróbálhatják az összes fapados ablakkezelõt anél- Start menü, de gyakorlatilag öt perc alatt legyárthatunk kül, hogy közben „tönkretennék” a rendszerüket. Javaslom egyet – hozzáadva a leggyakrabban használt programokat. is mindenkinek, hogy próbálja ki mindegyik neki tetszõ ab- Azokat, amelyeket nem adtunk hozzá, könnyedén elindít- lakkezelõt, hogy utána a saját meggyõzõdése alapján vá- hatjuk a futtatás panelen, amely az ALT+F2 billentyûkombi- laszthasson, és szegény édesanyámat ne gyötörje csuklás, nációval csalogatható elõ. Ezzel nem ér véget a szolgáltatá- ha netán valaki csalódik valamelyik ablakkezelõben. sok sora, melyek nagy része feltérképezhetõ az Xfce4 beállítópaneljén, amin az egyes rendszerelemeket külön- Komáromi Zoltán külön testreszabhatjuk. ([email protected]) Bátran állíthatom, hogy ez a munkakörnyezet nagyon haté- 23 éves, a BME hallgatója, mellette kony eszköz a mindennapok során: kellõen egyszerû, ugyan- PHP-programozóként dolgozik. akkor minden megszokott lehetõség fejlett formában érhetõ Kedvenc területe a multimédia. el rajta keresztül. Ezenkívül igényes, sõt grafikáját tekintve

www.linuxvilag.hu 2004. június 49 Szaktekintély

A színek és a Gimp (2. rész) Folytatódjék Gimprõl szóló sorozatunk, melyben elmondom azt is, hogyan tehetjük gyorsabbá egy-egy képen a mozgást, ha görgõs egérrel rendelkezünk.

© Kiskapu Kft. Minden jog fenntartva eltételezem, hogy X-kiszolgálónk tud a görgõ létezé- sérõl és a kezelése is be van állítva (ZAxisMapping be- jegyzés az X-kiszolgáló beállításaiban). Amennyiben Fe feltétel adott, a kép nagyítása a SHIFT billentyû nyomva tar- tása közben az egérgörgõ mozgatásával változtatható meg. A függõleges görgetés a görgõ használatával billentyûlenyo- más nélkül is megvalósítható, míg a kép vízszintes görgetése aCTRL billentyû és az egérgörgõ segítségével oldható meg. Meg kell említenem, hogy sorozatunk elõzõ részében a kije- lölések terén kissé megtréfálta olvasóimat a nyomda ördöge és meglepõdve tapasztalhatták, hogy ha a kijelölt területbõl 1. kép A fakó kiinduló kép 2. kép Levél élénk színekkel szeretnének elvenni, a SHIFT billentyût lenyomva kell tarta- ni. Egyrészt ez minden Gimpben így mûködik, tehát a to- ektõl. Ennél a szolgáltatásnál a színeket közvetlenül a HSV vábbiakban javaslom e tapasztalat gyakorlati alkalmazását. térben megszokott értékekkel módosíthatjuk. A szokásos Másrészt viszont az ember játszva tanul. világosság–kontraszt módosítás az Image-/Colors-/ Brightness-Contrast menüpontok kiválasztásával lehetséges. Színkezelés Kicsit érdekesebb hatásokat érhetünk el a Küszöbszint Most azt szeretném bemutatni, hogy mire képes a Gimp (Threshold) szolgáltatással, ugyanis itt alakíthatjuk fekete-fe- a színkezelés területén, vagyis milyen mûveleteket tudunk hérré a képeket. Érdemes az ismerkedés során kicsit kísérle- végezni a színekkel egy adott képen. Például megtudhatjuk, tezgetni a beállításokkal, ehhez kezdetben elegendõ annyit hogyan lehet túlexponált fényképeinket kicsit sötétebbé va- tudnunk, hogy az egérrel kijelölt világosságszinteket a prog- rázsolni, miként lehet kicsit élénkebbé tenni a fényképek szí- ram fehérnek fogja venni, míg az ezen a tartományon kívül neit, és az így elkészített képeinket hogyan tudjuk felhasz- esõ színek feketévé változnak a beállítás hatására. nálni leendõ játékunkban is. Az alábbiakban fõként a jobb A Szintek (Levels...) mûvelettel olyan, a gyakorlatban is egérgombbal megjeleníthetõ menü Kép (Image) menüpont- gyakran elõforduló feladatokat oldhatunk meg, mint az jával és a Színek (Colors) almenüjével fogunk foglalkozni. 1. képen látható fénykép „feljavítása”. A kép egy olyan leve- A jobb egérgomb hatására elõbukkanó menübõl válasszuk let ábrázol, aminek szinte csak világos színei vannak, vagyis ki az Kép/Színek (Image/Colors) menüpontokat, és ebben a kép fakónak tûnik. Az eredeti kép hisztogramját ábrázol- a menüben kezdjük is el az ismerkedést a Színegyensúly va láthatjuk, hogy körülbelül a 61-es világosságérték alatt (Color Balance) ponttal. Itt tudjuk beállítani, hogy az adott nincsenek képpontok. Ezzel a beállítóablakkal elérhetjük, képen egy-egy meghatározott alapszín mennyire legyen hogy a 61–255 értékeket a program képezze le a teljes vilá- túlsúlyban. A három vízszintes csúszkával adhatjuk meg gosságtartományra, ezzel a 2. képen látható, élénk színû ké- a színek arányát, míg az alattuk található választómezõkkel pet sikerül elõállítani. Természetesen a meghatározott tarto- adhatjuk a Gimp tudtára, mely színárnyalatokkal szeret- mányok nemcsak a példánkban szereplõk lehetnek, hanem nénk foglalkozni. Azt, hogy mely színek tartoznak egy-egy mindig a kiindulási képhez kell igazítani õket, és a kívánt kategóriába, a program a HSV színtérben a V(alue) érték eredményképpel szemben támasztott igények határozzák alapján határozza meg. Ha a csúszkák beállítása közben meg, milyen kimeneti tartományt kell beállítanunk. A beál- a Preview kapcsoló be van kapcsolva, rögtön láthatjuk is lításokra szolgáló párbeszédablakban a hisztogram alatti a módosítások eredményét. Megjegyzem, hogy ez a kap- tartománybeállító csúszka adja a bemeneti tartományt, míg csoló más beállításoknál is elõbukkan, így az itt leírtakat az az alsó a kimenetet határozza meg. adott helyzetben is érvényesnek kell tekinteni. A Görbék (Curves) menüpont kiválasztásával szintén a be- Szintén a színegyensúlyra vonatkozik az Kép-/Színek-/ meneti szinteket rendelhetjük adott kimeneti tartományok- Szinezet-telítettség, de a beállításmódja kicsit eltér az elõzõ- hoz, és meghatározhatjuk, hogy a megrajzolt görbék mely

50 Linuxvilág Szaktekintély

A Normalizálás (Normalize) önmûködõ mûvelet hatására a képek részletei jobban elõtûnnek a „semmibõl”, hiszen ez a szûrõ a normális Gauss-eloszlású görbéhez próbálja köze- líteni a kép hisztogramját. Sokat beszélek itt a hisztogram- ról, azonban lehet, hogy szükséges megvilágítanom, mirõl is van szó. Lássuk meghatározásszerûen: „hisztogramnak nevezzük egy kép világosságértékei eloszlásának grafikus ábrázolását.” Érthetõbben fogalmazva, a vízszintes tenge- lyen találjuk a világosságértékeket, melyekhez a függõleges tengelyen egy gyakorisági érték tartozik. Kiszámítását oly módon végezhetjük el, hogy összeszámoljuk a képen talál- ható különbözõ értékeket, majd e számokat elosztjuk az összes képpontok számával. Így egy grafikont készíthe- tünk, ez mutatja meg, hogy az egyes értékek milyen arány- ban szerepelnek a képen. Hátramaradt még két önmûködõ mûvelet a színekkel kap- 3. kép Elcsúfított színek – Stretch Contrast csolatban: az egyik a Kontraszt nyújtása (Stretch Contrast), amellyel a világosságértékeket húzhatjuk szét a teljes értel- © Kiskapu Kft. Minden jog fenntartva színcsatornához tartozzanak. A párbeszédablak tetején lát- mezési tartományra (például 24-bites képnél 0...255-re), ható lenyíló listában választhatjuk ki a megfelelõ csatornát, ennek segítségével kontrasztosabb képet állíthatunk elõ. ez alapértelmezetten a világosságérték lesz. A kétdimenziós A másik pedig e mûvelet olyan változata, amely a HSV szín- koordinátarendszer függõleges tengelyén találjuk a beme- térben dolgozik s hatásában lényeges különbséget látha- neti szinteket, ezekhez a vízszintes tengelyen lévõ értékek tunk. Szemléltetésül lássuk a (3. képet), ami eredetileg sötét fognak tartozni a beállítás alkalmazása után. Természetesen volt és a rajta lévõ test szürke színárnyalatokban „pompá- a beállításokat el is menthetjük, késõbb pedig a megfelelõ zott”. A képen a Stretch Contrast mûvelet eredményét lát- gomb használatával betölthetjük. hatjuk, melyen jól megfigyelhetõ, hogy bár jobban kivehetõ Az eddig tárgyalt menüben a következõ pontok egészen az alakzat a kontraszt változásának köszönhetõen, de elve- egyértelmûen mutatják hatásukat. A Telítettlen (Desaturate) szítette eredeti színét. Ugyanezen a kiinduló képen a HSV a színtelítettséget csökkenti, vagyis képünk szürke árnyala- feszítés (Stretch HSV) mûveletet végrehajtva a tárgy megõr- tossá válik, míg az Invertálás (Invert) menüpont kiválasztá- zi eredeti színét, és úgyszintén jobban megkülönböztethetõ sával a kép színeit invertálhatjuk. Például ezzel a hatással lesz a környezetétõl. elérhetjük, hogy a régebben készült és elõhívott fényképe- Érdekes és kísérletezésre csábító lehetõség a Colormap inket, megfelelõ színekkel jelenítsük meg. A negatívokat Rotation menüpont hatására elõkerülõ párbeszédablak. képbeolvasó eszközzel (megfelelõ feltét alkalmazásával) di- A lehetõségek elég sokrétûek, röviden összefoglalva annyit gitalizáljuk, majd a színeket ellentétükre változtatva a pozi- tudnék mondani róla, hogy egy képen található adott szín- tív képhez jutunk. tartományt egy másik, meghatározott tartománnyá alakít- A Poszter (Posterize) szûrõ sem igényel túl sok magyaráza- hatunk át. A színeket tehát felcserélhetjük, megadva, hogy tot, ugyanis azzal érünk el poszterszerû hatást, hogy a ha- mely színek milyenné változzanak. A párbeszédablak Misc sonló színû képpontokat azonos színûre cseréljük. A szûrõ lapján pedig meghatározhatjuk, hogy a program mit kezd- beállításainál adható meg, hogy a program mennyi színnel jen a szürke színekkel, és mely színeket tekintse szürkének. próbálja közelíteni az eredeti képet. Megjegyzem, hogy en- A mûveletek alkalmazásával például elérhetjük, hogy a kék nek az eljárásnak finomabb változatait (statisztikai számítá- égboltot akár sárgává változtassuk, ezen kívül még számos sokkal, intelligens területfelosztással) komoly alkalmazási különleges hatást valósíthatunk meg. területeken is viszontláthatjuk, például a gépi látás vagy az orvosi diagnosztika terén. Utolsó simítások Miután ezekkel a szolgáltatásokkal megismerkedtünk, szót Utoljára maradt az utolsó menüpont: a Filter Pack párbe- kell ejtenem néhány önmûködõ megoldásról is, amelyeket szédablakban felhasználóbarát módon tudjuk változtatni a képek minõségének javításakor használhatunk. A Gimp a képnek azokat a tulajdonságait, amelyeket már korábban önmûködõen képes kiegyenlíteni egy adott kép vagy terület megismertünk. A Hue-Saturation, a Brightness-Contrast és hisztogramját, ezzel elvileg elérhetjük, hogy egy alul- vagy a Color Balance mûveletek alkalmazása során élõben láthat- túlexponált képet kontrasztosabbá tegyünk. Én ugyan nem juk az egyes változtatások után felmerülõ lehetõségeket. sok képen alkalmaztam a kiegyenlítést, de az általam kivá- Nagyon alkalmas gyakorlásra, ha ugyanis egy-egy kép ese- lasztott képeken (akár természetes fényképrõl készült, akár tében nem vagyunk teljesen biztosak a mûveletek megfele- számítógéppel elõállított képrõl volt szó) sokkal jobb ered- lõ sorrendjében, ezekkel a párbeszédablakokkal közvetlen ményt értem el a Színjavítás (Color Enhance) mûvelettel, mint visszacsatolást kaphatunk, és segítségükkel könnyebben el- a Kiegyenlítés (Equalize) menüpont alkalmazásával. A Color igazodhatunk a sok érték, illetve módosítás útvesztõjében. Enhance oly módon változtatja a színeket, hogy a kép átlagos Kellemes ismerkedést és hasznos idõtöltést kívánok olvasó- világossága nem változik, a hisztogram ugyanolyan marad, imnak, és a következõ számban folytatom e nagy tudású vagyis ugyanolyan arányban sötétíti a világos színeket, mint program bemutatását. amilyen arányban a sötétebbeket világosabbá teszi. Fábián Zoltán

www.linuxvilag.hu 2004. június 51 Szaktekintély

LinuxBIOS négy év alatt A LinuxBIOS több mint egy egyszerû megoldás, ami linuxos számítógépek néhány másodperc alatti elindítására szolgál. A Linux-telepek új programjai szintén kínálnak tartalék üzemmódot, amellyel megmenthetõ a rendszer, ha BIOS-frissítés közben megy el az áram. © Kiskapu Kft. Minden jog fenntartva

LinuxBIOS egy olyan GPL alá tartozó program, amely helyettesíti a legtöbb számítógép BIOS-át, beleértve az AMD64, x86, Alpha és PowerPC rend- processzor processzor szerekAet. A LinuxBIOS gyártófüggetlen, kiépítés-semleges BIOS, amelynek több mint 95 százaléka C-ben íródott. A LinuxBIOS négy éves. A világ legnagyobb telepei közül DRAM busz néhány LinuxBIOS-t használ, hasonlóképpen a világ legki- északi híd DRAM sebb beágyazott rendszereihez. Mind a World Trade Center romjai közt túlélõk után kutató, mind az Afganisztánban és Irakban használt robotokban LinuxBIOS-t alkalmaztak. déli híd A LinuxBIOS-t sok gyártó támogatja, például az AMD és a Tyan is. Ma már lehet LinuxBIOS-szal is ellátott alaplapot BIOS flash rendelni a Tyantõl. Írásunkban bemutatjuk a LinuxBIOS alapvetõ felépítését, az eredetét és azt, hogy miként érte el jelenlegi fejlettségi szintjét. Szót ejtünk még az õt támogató felületekrõl és azokról a tapasztalatokról, amelyeket akkor szereztünk, amikor megpróbáltuk társítani a GPL projektet PCI busz Örökölt busz és a gyártók legféltettebb titkait. 1. ábra Az alap-PC felépítésének egyszerûsített képe. A hidak, lapkák, A LinuxBIOS szerkezete amelyek a buszokat egymáshoz kapcsolják Mielõtt belemerülnénk a LinuxBIOS szerkezetének taglalá- sába, vessünk egy gyors pillantást a korszerû PC-k felépíté- A sorban a déli híd a következõ, amely szinte mindig a 0-dik sére. A PC egy halom lapkából áll – beleértve a processzort, PCI buszon ül. A déli híd feladata a PCI busz és a PC 1981-es a grafikus és a billentyûzetvezérlõt –, amelyek buszokkal megjelenése óta meglévõ, úgynevezett örökölt eszközök vannak egymáshoz kapcsolva. A busz egy vagy több veze- (például soros kapu) közötti kapcsolat megteremtése. Szin- ték, amellyel két vagy több lapka van összekötve. Néhány tén a déli híd hajtja a BIOS flash részét. busznak két vezetéke létezik, egy jel és egy föld, míg más Mikor a PC-t bekapcsoljuk vagy újraindítjuk, a CPU olvasni buszoknak tíz vagy akár több száz is lehet. Az 1. ábrán egy kezd egy ismert címrõl, ami hagyományosan a memória te- nagyon egyszerûsített diagram látható. A különbözõ típusú teje (Top of Memory – TOM) mínusz 16 bájt. Az eredeti 8086 buszok nem kapcsolhatók közvetlenül egymáshoz, ezért hi- esetében ez a cím a 0xffff0, újabb PC-ken pedig 0xfffffff0. daknak nevezett lapkák látják el ezt a feladatot. Az elsõ busz Ezt az olvasási utasítást támogatnia kell az eszközöknek még az elõoldali busz (Front-Side Bus, FSB) és a legtöbb PC-n ez a beállítások elvégzése elõtt, ugyanis egy csomó eszköznek köti össze a processzorokat egymással (amennyiben több is hadrendbe kell állnia az elsõ utasítás beolvasásához. van), illetve az északi híddal. Az északi híd köti össze a CPU- Mindazonáltal bekapcsolása után a PC még nincs felkészül- (ka)t a memóriabusszal és a PCI busszal. Az ábránkon csak ve a C-kódra, pusztán assemblyt tud futtatni. Az alaplapot egyetlen északi hidat jelöltünk, de ezeknek számos variációja több lépésben kell feléleszteni. Ennek folyományaként létezik. Például az AMD Opteron minden processzorhoz egy a LinuxBIOS-nak egy sorozat behúzója (bootstrap) van, északi hidat használ, és az FSB minden Opteron processzort ezek akkor kerülnek sorra, amikor újabb CPU-erõforrások csak a saját északi hídjával köt össze. Más szóval, az Opteron lépnek mûködésbe. Minden behúzó feltételezi, hogy bizo- rendszerben nincsen megosztott FSB. Mindazonáltal az észa- nyos erõforrások engedélyezettek és a gépnek egy jól meg- ki híd azonosítható eszköz az Opteron lapkakészletben. határozott erõforráskészlet áll rendelkezésre.

52 Linuxvilág Szaktekintély

Ezek a LinuxBIOS szakaszok a következõk: Egy magáncég azonban nem a megfelelõ helyszín az ilyen • Az elsõ 10 vagy 15 utasítás, amely engedélyezi a pro- jellegû munkához, ezért ott soha nem jutottunk tovább az cesszort, minimális virtuális memóriakapacitást (32 bites álmodozásnál. címekkel), valamint egyéb erõforrásokat, amelyek a me- Miután a LANL-hoz kerültem, lehetõségem nyílt tovább- mória bekapcsolásához szükségesek (mint pl.: az I2C dolgozni ezen az ötleten. Számos technológiai irányvonal busz). Ezenkívül beállítja a processzor belsõ állapotát, fejlõdése sokkal jobb évvé tette az 1999-et (a ’97-esnél). eközben egy csomó dolgot kitakarít, például az utasítás- Ekkor jelentek meg az elsõ 1 MB flashmemóriával szerelt csõvezetéket. alaplapok, s a PCI busz teljesen felváltotta a régebbi EISA és • Memóriaindító kód, amelyhez egy tiszta és egészséges ISA buszokat. Szintén lényeges, hogy ekkorra a Linux sok- processzor, valamint egy mûködõ I2C busz szükséges kal több beállítást volt képes elvégezni, amit jól példáz az a memória jellemzõinek lekérdezéséhez. SGI Visual , aminek egyáltalán nincs is BIOS-a. • Programkód, amely az eredetileg C-ben írt objektumkó- Tisztán látszott, hogy ha a Linuxot be tudnánk tenni dot (object code) a flashbõl a memóriába tölti. Az objek- a BIOS-ba, azzal elérnénk célunkat. A Linux sokkal jobban tum kód igény szerint lehet tömörített is. el tudná végezni az eszközök üzemeltetését, mint bárme- • Programkód, amely akkor fut, ha a memória már mûkö- lyik BIOS, amit eddig láttunk. Egyedül egy hardveres behú- dik. Ez a kód végigpásztázza a gép erõforrásait és elin- zóra volt szükségünk, ami a Linuxot a flashbõl a memóriába dítja õket. tölti, a többit már maga a Linux végzi el. Innentõl kezdve • Egy vagy több olyan „rakomány”, amely elvégzi a végsõ a mottónk: „Bízzuk a Linuxra!” lett. © Kiskapu Kft. Minden jog fenntartva beállítás feladatát és elindít egy operációs rendszert. Mielõtt a LinuxBIOS projekt teljes gõzzel beindult volna, meg kellett gyõzõdnünk arról, hogy a Linux használható Mindezek a szakaszok a 2. ábrán láthatók. behúzóként, vagyis a Linux képes Linuxot indítani. 1999 A LinuxBIOS támogat egy választható tartalék BIOS-t, decemberére a LOBOS-szal (Linux OS Boots OS) bemutat- arra az esetre, ha az eredeti BIOS-szal valami baj történne. tunk egy Linux-rendszert indító Linuxot. A tartalék támogatása a BIOS-ba fordításakor kerül bele. Bármely munka elvégzésének legkönnyebb módja a nyílt A kiegészítõ kód ellenõrzi a CMOS jelzõt is és felismeri, ha forrás (Open Source) világban, ha megengedjük, hogy más a CMOS sérült, akár azért, mert az elõzõ BIOS nem tudott végezze el helyettünk, ezért a LinuxBIOS következõ lépése rendesen elindulni, akár azért, mert a felhasználó a tartalék az volt, hogy kerestünk egy kész programot. James Hendricks BIOS-szal akarja a rendszert indítani. A tartalék BIOS egy és Dale Webster már készített ilyen rendszert az OpenBIOS teljes LinuxBIOS-lenyomat (image), melynek képességei projekt keretében. Az OpenBIOS forrás felhasználásával öt egyáltalán nincsenek korlátozva. szabadnap alatt írtak és építettek egy próbarendszert az Intel A tartalék fõleg felügyelet nélküli BIOS frissítésekkor hasz- L330GX+ alaplapjainkra, amely újraindítás – nem bekapcso- nos. Képzeljünk el egy olyan esetet, amikor 1024 vagy még lás – után képes volt elindítani a rendszert. Egy kikapcsolt több csomóponton (node) BIOS-t kell frissíteni – mi történik, gép indításának megoldása újabb öt hónapba tellett volna, ha félúton elakadunk vele? A legtöbb rendszernél ilyenkor de eddig ez nem rossz teljesítmény az öt naphoz képest. lesz egy nagyon drága papírnehezékünk. A LinuxBIOS-szal Korán felismertük, hogy nem az assembly a LinuxBIOS viszont egy egyszerû újraindítás után önmûködõen tartalék- jövõje. Az OpenBIOS-ban rengeteg assembly volt, egy bo- módban indul a rendszer. nyolult építõi (build) szerkezettel. Kis közösségünk nekilá- tott jobb alapot keresni a LinuxBIOS-hoz. Feff Garzik talált A LinuxBIOS eredete és fejlõdése egy új BIOS-t és megtudta, hogy a készítõ STPC hajlandó A LinuxBIOS projektet a Los Alamos National Labben nyílt forrásúvá tenni. Az STPC BIOS lett az alapkódja az új (LANL) kezdtem el, 1999 szeptemberében. Az ezt megelõ- LinuxBIOS-nak. Az STPC-kód alapvetõ átszervezést igé- zõ nyolc évben mindenféle telepet építettem, majd 1994- nyelt, hogy többféle alaplapot és lapkakészletet támogas- ben befejeztem az elsõ PC-telepet. A BIOS mindvégig aka- son, de jó kiindulási pontot nyújtott. dályozta a nagyobb telepek építését. A következõ hat hónapot azzal töltöttük, hogy néhány felü- 1997-ben egy 144 csomópontos Cyclone-telepet raktam leten futtathatóvá tettük a LinuxBIOS-t. Az elsõ nem grafi- össze a Sarnoff Corporationnél. Kísérletképpen csak kus felület egy Intel L440GX+ alaplap volt, amit egy SiS630 16 csomópontban volt videokártya. A kísérlet nem sike- alaplap követett. A SiS esetében maga a gyártó is segédke- rült, mert a hagyományos BIOS-szal felszerelt PC-k egy- zet nyújtott, mûszaki leírást, tervrajzokat, programkódot, szerûen túl megbízhatatlanok ahhoz, hogy csak úgy kive- technikai támogatást adott és célul tûzte ki, hogy a Linux- gyük a videokártyát, mivel a feladat megoldásához fel- BIOS fusson a felületén. használói beavatkozás szükséges. Világossá vált, hogy ha Megtanultuk, hogy a Linux mit képes és mit nem képes nagyobb telepeket szeretnénk létrehozni, meg kell oldani megtenni. Ebben az idõben a 2.2-es rendszermaggal dol- a BIOS nehézségeit. goztunk. Rájöttünk, hogy a Linux képtelen egy PCI buszt Meghatároztuk, hogy egy eszményi PC telepcsomópont- a semmibõl beállítani, viszont a LinuxBIOS-nak képesnek nak a következõket kell tudnia: az operációs rendszert köz- kell lennie erre is. Sikerült kiemelnünk a PCI-kódot a Linux- vetlenül indítja valamilyen nem felejtõ RAM-ból, beállítja ból és módosítások után közvetlenül felhasználni a Linux- az összes hálózati csatolót, de nem állít be más eszközt, BIOS-ban, miközben a valódi PCI-beállításhoz szükséges kapcsolódik egy vezérlõ csomóponthoz – bármelyik mû- kiegészítéseket hozzáadtuk. Azt tapasztaltuk, hogy a Linux- ködõ hálózati csatolóját használva –, s csak vele együtt BIOS olyan gyorsan jött fel, hogy az IDE-meghajtók nem végez mûveleteket. pörögtek fel addig. Folytatjuk egy Linux-folt támogatását,

www.linuxvilag.hu 2004. június 53 Szaktekintély

BIOS-ként vagy 32 bites BIOS-ként egyaránt jól mûködött. Ugrás a startra 2001-re növeltük a fejlesztõk számát (most 11-en dolgoz- CPU rendben nak) és folytattuk az átültetést még több felületre, ezek kö- zül a legutolsó az AMD Opteron volt. Mi a LinuxBIOS-t ki- Választható ellenõrzés zárólag telepekhez képzeltük el, de a nem telepként való A CMOS ellenõrzése tartalék tartalék BIOS-hoz felhasználás maga mögé szorítja a telepalkalmazások szá- vagy normál induláshoz mát. Úgy gondoltuk, hogy a Linux végez majd minden ne- Választható tartalék héz feladatot, mostanra a LinuxBIOS egy csomó dolgot el- BIOS-kód lát, beleértve az SMP-indítást is. Szerettük volna a „Linuxra A DRAM engedélyezése A DRAM engedélyezése bízni”, de az AMD K7 SMP eszköz kialakítása szükségessé A DRAM beállítása A DRAM beállítása tette, hogy az SMP indítás a BIOS-ban menjen végbe. A C-kód másolása a DRAM-ba A C-kód másolása a DRAM-ba Úgy gondoltuk, a gyártók be fognak szállni a munkába. Négy évig tartott, de most, a LinuxBIOS fejlesztésének ötö- A C-kódra ugrás A C-kódra ugrás dik évében a világ legnagyobb számítógépgyártói közül né- A C-kód beállítja a felületet A C-kód beállítja a felületet hánynak felkeltettük az érdeklõdését. Egy kicsit derûlátób- A C-kód betölti a hasznos kódot A C-kód betölti a hasznos kódot bak voltunk a szükséges idõ megbecsülésében. Amint egy A hasznos kódra ugrás A hasznos kódra ugrás gyártó látja a dolog üzleti oldalát, elkezd érdeklõdni iránta. © Kiskapu Kft. Minden jog fenntartva 2003-ban legalább harmincmillió dollár értékben adtak el 2. ábra A LinuxBIOS szakaszai LinuxBIOS alapú rendszereket, míg ez a szám 2000-ben egymillió alatt maradt. ami ezt a gondot oldja meg. Mindezek és sok más feladat, néhány váratlan változtatást igényeltek a „Bízzuk a Linuxra!” Felületek szemléletben. A LinuxBIOS a felületek széles választékán fut. Ötven tá- A kilencedik hónapra volt egy LinuxBIOS-unk, mely két mogatott alaplap van a forrásfában, de úgy találjuk, sok felületen is jól mûködött, jobbára C-ben készült, továbbá alaplap annyira egyforma, hogy az egyiken mûködõ néhány vállalat érdeklõdését sikerült felkeltenünk vele. LinuxBIOS a másikon is menni fog. A cégek gyakran csak A Via és az Acer leírást adott, ennek felhasználásával támo- egy kódot készítenek, azt futtatják több alaplapon, csak ép- gatni tudtuk az új lapkakészleteiket is. Azon a nyáron pen nem mondják el nekünk. James Hendrick elkezdett dolgozni az SMP-támogatáson, A LinuxBIOS 64 bites és 32 bites processzorral egyaránt mû- „Bízzuk a Linuxra!” módban, így ez a támogatás Linux ködik. A processzor-támogatás magában foglalja az Alpa, rendszermag-folt formájában és nem LinuxBIOS kiegészí- K8, K7, PowerPC, P4, PIII, PII, Cyrix(VIA), Geode (AMD), tésként jött létre. Egy ponton, a mi foltjaink segítségével, SC520 (AMD) processzorokat. A lapkakészleteket fel sem a Linux-mag egyprocesszorosként áll fel és a semmibõl lehet sorolni, annyian vannak, az alaplapokat pedig a legki- tudja engedélyezni a többi processzort – ez olyasmi, amit sebb PC/104-estõl a legnagyobb K8-as méretig támogatja. eddig csak a BIOS-ok tudtak megtenni. Az IBM PPC 970-re való átültetés pedig éppen zajlik. Azon a nyáron a Linux NetworX, és nagy szerencsénkre, Eric Biederman is csatlakozott hozzánk, hogy kivegye részét Lapkakészlet-titkok az erõfeszítésekbõl. Eric legfontosabb korai munkája az Az elsõ néhány évben a lapkakészlet-gyártóktól leggyak- Alphára átültetés volt, emellett jelentõsen megtisztította rabban hallott mondat az volt: „Azt soha nem fogjuk el- a memóriaindító kódot. Együttmûködésünk mind a mai na- mondani”. Az „azt” a processzorra, lapkakészletre, alaplap- pig tart, a Linux NetworX a LinuxBIOS alapú rendszerek ra vonatkozó adatokat és kombinációikat takarja. E három legnagyobb viszonteladója, Eric pedig besegít a LinuxBIOS rendszerösszetevõ tervei, felépítésének adatai szigorúan õr- 2-es változatának tervezésébe és létrehozásába. zött titkok. Még ma is hihetetlennek tûnik, hogy akadnak Õsszel elõadásokat tartottunk az Atlanta Linux Showcase olyan gyártók, akik lehetõvé tették számunkra, hogy az ál- 2000-en, ahol találkoztunk Steve James-szel a Linux Labstõl. taluk rendelkezésre bocsátott titkos adatok segítségével lét- Ez a kapcsolat hozzásegített bennünket, hogy kevesebb rehozzunk egy GPL alá tartozó BIOS-t. mint egy hónap alatt megvalósítsuk álmunkat: építettünk Hogyan sikerült ezeket az adatokat megszerezni? Egyszerû, egy 13 csomópontos, LinuxBIOS alapú telepet a Super- a cégek nem karitatív intézmények, ha nem látnak benne computing 2000-re. A telep teljes üzemi állapotát kb. 13 má- üzletet, hogy megosszák velünk ezeket az adatokat, akkor sodperc alatt volt képes elérni. nem fogják. Ha viszont látnak benne üzletet, akkor hajlan- 2001-re a Linux NetworX befejezte az Alpha átültetést dóak erre, gyakran meglepõen gyorsan. a DS10-re. Ekkor telepet építettünk 104 DS10-bõl, és mind- Ahogyan mi látjuk, a sikerünknek két kulcseleme a verseny egyiken LinuxBIOS futott. A DS10 sokkal lassabban indult, és a piac létrehozása volt. A versenynek köszönhetjük az mint egy Pentium rendszer, ezért ennek a telepnek ötven alaplapok, lapkakészletek és processzorok széles választé- vagy még több másodpercre volt szüksége az üzemkész ál- kát. Amint számottevõ piac alakult ki, a gyártók igyekeztek lapot elérésre, de ez a sebesség még mindig jócskán elvisel- bekerülni oda. hetõ volt. Találkoztunk olyan BIOS-okkal, amelyeknek csak A LANL-nál szerzett tapasztalatok tanulságosak. A LANL a memóriapróbája tartott ennyi ideig. két utolsó nagy telep pályázati kiírása a LinuxBIOS alkal- Az Alphára átültetés bebizonyította, hogy a LinuxBIOS hor- mazását feltételként szabta. Ugyanitt a költségeket több dozható. Nagyon kevés kódot kellett módosítani, és 64 bites mint 19 millió dollárban állapították meg. Azok a cégek,

54 Linuxvilág Szaktekintély

akik nem akartak részt vállalni a LinuxBIOS projektben, lomás-felületek mûködjenek. Steve James és a Linux Labs ve- nem vehettek részt ezen a pályázaton, azoknak viszont, lünk együtt dolgoztak, és 2000-ben bonyolították le az elsõ akik elég korán beszálltak a játékba, most minden lehetõsé- LinuxBIOS-os telep szállítását. Greg Watson végezte a Power- gük megvolt a részvételre. Az elõrelátás ebben az esetben PC átültetését, és Eric Biederman sokat tett azért, hogy az versenyelõnyhöz juttatta õket. igazán nehéz felületeken is felálljanak és üzembiztosan mû- ködjenek, valamint a 2. változat munkálataiból is kivette Összegzés a részét, mindkettejüket köszönet illeti ezért. A LinuxBIOS négy év alatt hosszú utat tett meg az ötlettõl Ez az írás a LAUR 03-8165 alatt lett kiadva. Ezt a kutatást a gyártásig. LinuxBIOS-t használnak mindenféle eszközben a DOE Tudományos irodájának és a Los Alamos Computer a legnagyobb telepektõl kezdve a kis próbaeszközökig, Science Institute (ASCI – Számítástudományi Intézet) MP3-lejátszókig és hordozható telepekig. A LinuxBIOS lehe- Mathematical Information and Computer Sciences (MICS – tõvé teszi, hogy ne PC eszközraktárként szolgáló rendszere- Matematikai Információ és Számítástudományok Program- ket építsünk. A rendszereket hatékonnyá lehet tenni ja) alapította. A Los Alamos National Laboratoryt (Los Linuxon, ennek következtében jóval egyszerûbbek lehetnek. Alamos Nemzeti Laboratórium) a University of California A négy éves LinuxBIOS most a második változatnál tart, (kaliforniai egyetem) üzemelteti, a National Nuclear legalább hatféle processzorral, és több mint ötven alaplap- Security Administration of the United States Department of pal gyûjtött tapasztalat áll mögötte. Egyes esetekben akár Energyvel kötött W-7404-ENG-36 számú szerzõdés alapján. napok alatt egy új rendszerhez lehet igazítani, ezt megelõ- © Kiskapu Kft. Minden jog fenntartva zõen ez eredetileg hónapokig is eltartott. A LinuxBIOS ha- Linux Journal 2004. február, 118. szám tása a számítástechnika világára csak most kezdõdik. Ronald G. Minnich 15 éve dolgozik a nagytelje- Köszönetnyilvánítás sítményû számítástechnika és telepek terüle- Sokan vettek részt a LinuxBIOS körüli munkákban, szinte le- tén. Nemrég jött rá, hogy elsõ telepeinek egyi- hetetlen mindnyájukat felsorolni. Mindazonáltal néhány ke, egy 16 csomópontos SPARC-telep éppen munkatársnak komoly szerepe volt abban, hogy a Linux- egynegyed teljesítményét nyújtja egyik leg- BIOS létrejött. Szeretném megemlíteni Stefan Reinauer-t és újabb, 2048 processzoros telepének egyetlen Jeff Garzik-ot, akik az STPC BIOS projektet a SourceForge-on processzoráénak. Az új telepének teljesítménye tízezerszere- FreeBIOS-ként felállították. Nem maradhat ki a sorból Ollie se az elsõ telepének. Ron 1976 óta dolgozik Unixszal, 1993 Lho sem, aki sokat tett azért, hogy 2000-ben az elsõ munkaál- óta Linuxszal, elsõ PC telepét pedig 1994-ben építette.

www.linuxvilag.hu 2004. június 55 Szaktekintély

Az XWindow távoli elérése (2. rész)

A Unix világában szokványos feladat egy távoli gépet karakteres felületen keresztül elérni. Most az XDMCP-vel folytatjuk.

© Kiskapu Kft. Minden jog fenntartva ddig csak egy-egy ablakot rajzoltattunk a helyi kép- módon egy késõbbi idõpontban ugyanonnan folytathatjuk E ernyõre, viszont az X Display Manager Control a munkánkat, ahol abbahagytuk. A harmadik különbség, Protocollal (XDMCP) teljes X-folyamatot (session) hogy akár többen is nézhetik, dolgozhatnak ugyanazon tudunk futtatni a távoli gépen, és a helyi képernyõn megje- a munkameneten. Ennek az eddigi kapcsolatokhoz képest az leníteni. Ehhez engedélyeznünk kell a munkafelület-keze- a hátránya, hogy nagyon magas szintû kapcsolatot hoz létre lõnkben. Ha gdm-et használunk a /etc/gdm/gdm.conf-ban (bitmap tömörítés elvén mûködik), ezért nagyon leterheli a következõknek kell szerepelnie: a hálózatot. A TightVNC a VNC egy hatékonyabb változata, ... és együttmûködik az egyszerû VNC-vel is, igaz ekkor [xdmcp] lemondunk a gyorsításokról. Sajnos az eredeti VNC-vel Unix Enable=true alatt csak egy újonnan indított X-kiszolgálót lehet kiajánlani, ... azaz a már elindított X-et nem. Ezen segít a x0rfbserver és Port=177 a KDE-s krfb, velük menet közben is ki lehet ajánlani Willing=/etc/gdm/Xwilling a munkamenetet. Alkalmazásunk a következõképpen fest a távoli gépen: a vncserver vagy tightvncserver az új X- Az Xwilling egy parancsfájl, amivel ha közvetett (indirect) kiszolgálók indítására szolgál, az x0rfbserver vagy a krfb módon kapcsolódunk, akkor a géprõl adatokat írathatunk pedig a már futó X-ek kiajánlására használatos. ki a tényleges csatlakozás elõtt, például bejelentkezett fel- A helyi gépen pedig így néz ki: xtightvncviewer vagy használókról, a kiszolgáló terheltségérõl. xvncviewer vagy bármi más, ami képes VNC-kiszolgálóhoz Az otthoni gdm.conf fájlunk így nézzen ki: kapcsolódni, számtalan ilyen létezik Gnome és KDE alatt, [servers] sõt létezik X nélküli változat is (directvnc). A VNC világá- 0=Terminal -query munkagep.hu ban hasonlóan lehet hivatkozni egy képernyõre, mint az X- nél (:), de nem ugyanaz Ha nem használunk az otthoni gépen gdm-et, akkor így a kettõ, mivel nem is biztos, hogy X rejlik a VNC-kiszolgáló indítsuk az X-kiszolgálót: X -indirect munkagep.hu mögött. Mielõtt VNC-t használnánk, nézzük át a beállításait Esetleg a következõképpen: X -query munkagep.hu a /etc/vnc.conf-ban. A helyi hálózatban pedig ilyen módon: X -broadcast Ha az indirect kapcsoló hatására egy X-kiszolgálót választó Egyéb hasznos programok képernyõ jelenik meg, amelyben eldönthetjük, hogy melyik A WiredX egy Java nyelven írt ingyenes X-kiszolgáló. Így akár géphez csatlakozunk ténylegesen (például a willing parancs- nem Unix-környezetben is kihasználhatjuk az X protokoll fájl adatai alapján), közvetlenül a query kapcsoló segítségével továbbításának lehetõségét. Támogatja a XDMCP-t is, és akár kapcsolódhatunk, a broadcast-tal pedig az elérhetõ leggyor- rootwindow nélkül is futtatható, azaz csak a megnyitott alkal- sabb X-kiszolgálóhoz csatlakozhatunk. Biztonsági megfonto- mazások látszanak, nincs „asztal”. Sajnos a magyar billentyû- lásokból az XDMCP-t csak megbízható hálózaton használjuk, zetkiosztást még nem támogatja. Az xtv alkalmazással pedig mert mindent titkosítás nélkül küld át a vezetéken. tévészerûen nézhetünk egy távoli X-et.

A VNC Összegzés A VNC-vel (Virtal Network Computer) is lehetõségünk nyí- Az elõzõ számban és a most bemutatásra kerülõ progra- lik grafikus felület megjelenítésére a távoli gépen. Azonban mokkal széles skálán használhatjuk a világ egyik legjobb és ez az XDMCP-tõl néhány fontos dologban eltér: az egyik, legátlátszóbb grafikus kiszolgálóját az Xwindow rendszert, hogy akár Windowsról és Windowsra is mûködik, sõt mi remélem mindenki megtalálta a számára megfelelõ kapcso- több, böngészõn keresztül Java-ügyféllel is hozzá lehet kap- lódási módot a munkájához. csolódni. A másik fontos eltérés, hogy ha megszakítjuk a kapcsolatot, a munkafolyamatunk továbbra is fut, ilyen Radics László ([email protected])

56 Linuxvilág Dobbantó

A magyar Linux: UHU – Irodai felhasználás (4.rész) Az „ismert erdei körökben általánosan elterjedt nézet” szerint, a Linux alkalmatlan üzleti felhasználásra. Nos, ez az állítás valamikor talán igaz is volt, mára azonban cégek tízezrei cáfolnak rá. © Kiskapu Kft. Minden jog fenntartva

ára az irodai felhasználásnak gyakorlatilag nin- csen programbeli akadálya, az egyetlen nehézsé- get esetleg az integráció okozhatja. Az UHU erre Ma célra is megfelel, hiszen fejlesztõi nemcsak az otthoni fel- használók számára akartak adni „kulcsrakész” rendszert, hanem a vállalkozásokra is gondoltak.

Szövegszerkesztés és iroda A Sun által fejlesztett StarOffice forráskódjának fel- használásával indult, és azóta is töretlenül fejlõdik az OpenOffice.org. Népszerûségéhez kétség sem férhet, hi- szen több felmérés szerint az OpenOffice.org (a további- akban OO.o) Windows alá készült változata még a nagy cégek vezetõit is elgondolkodtatta alkalmazásának szüksé- gességérõl. Az OpenOffice.org igen jó példája annak, hogy a nyílt forrás közössége igenis képes olyan programot létre- igen jó minõségû címkéket, kártyákat tud létrehozni. Ter- hozni, amely komoly vállalati felhasználásra is megfelel, mészetesen mindkettõnek megvan a maga „tündére”, akire sõt a költséghatékonyság elõnyeivel is felruházták. Termé- rábízhatjuk elképzeléseink megvalósításának fõbb vonalait, szetesen – az összes Linux-változattal együtt – az UHU is a finomításokat úgyis kézzel fogjuk elvégezni. tartalmazza az OO.o 1.1-es változatát. Ez az irodai csomag (ugyanis teljes értékû programcsomag- Sok vád éri, hogy tudása nem akkora, mint a versenytárs ról van szó) szövegszerkesztõt, képletszerkesztõt, kereskedelmi termékeké. Azt azonban ne feledjük el, hogy bemutatókészítõt, rajzprogramot, valamint HTML-tervezõt a mindennapi irodai feladatok a nagy tudású termékek ké- is tartalmaz. Természetesen mindegyikhez léteznek sablo- pességeinek mindössze pár százalékát igénylik. Személyes nok, képek és hangok is. Kezdõ felhasználók valószínûleg tapasztalatom szerint, az OO.o is többet tud, mint amit az örömmel veszik igénybe a beépített „varázslók” segítségét, átlagos irodai felhasználásmód megkövetel és igényel. (Ez egyébként az OO.o-ban „tündérnek” nevezik õket. Rendkí- a megállapítás azonban nem keverendõ össze a szolgáltatá- vül hatékony segédeszközök, hiszen gyakorlatilag minden sok eltérõ nevébõl és a menüpontok különbözõ elhelyezke- általános feladatra fel tudjuk használni õket, ráadásul désébõl adódó átállási kényelmetlenséggel. A kívánt felada- üzembiztos és kényelmes környezetben. Természetesen tot valószínûleg el tudjuk végezni az OO.o-gal, mindössze mindezt honosítva kapjuk kézhez. Mint minden korszerû még nem áll rendelkezésünkre az a tapasztalat, hogy tud- program, az OO.o is teljesen XML-megfelelõ, valamint juk miként.) Mindezt természetesen anyanyelvünkön, hi- „szót ért” több, akár kereskedelmi forgalomban kapható iro- szen a rendszer honosítva került az UHU-Linuxba, és dai csomag formátumaival is. Személyes tapasztalatom az, a Myispellnek köszönhetõen a helyesírás-ellenõrzõ is hogy a „külsõ” formátumokkal való együttmûködés (az „tud magyarul”. OO.o alapformátuma a .sxw) igen jó hatásfokú, még a zárt Ennél azonban sokkal többet tud a csomag, de ezt csak ak- formátumok esetén is. Ez az állítás különösen akkor állja kor tudjuk értékelni igazán, ha szükségünk van rá. Gondo- meg a helyét, ha a hétköznapi dokumentumok átjárhatósá- lok itt az OO.o rajzoló programjára, ami nem egy Gimp, de gáról beszélünk. Régi motorosok tudják, hogy minél egy- kellemes kis program, ráadásul azonnal „kézre áll” az Oo.o szerûbb a dokumentum, annál kisebb az esély a megfelelõ- használata során. Továbbá kiválóan összedolgozik a prog- ségi gondok felbukkanására. Ez továbbra is igaz. Azt ne fe- ramcsomag többi részével is. De figyelemre méltó a név- ledjük el, hogy az OpenOffice.org semmivel sem ad többet, jegykártya- és címkekészítõ programja is, amely viszont mint a kereskedelmi forgalomban kapható csomagok, a kü-

www.linuxvilag.hu 2004. június 57 Dobbantó

lönlegessége nem is ebben, hanem a nyílt forráskódjában, szabad felhasználásában, és a mindebbõl következõ fejlõ- dés ütemében nyilvánul meg. Mindez természetesen an- nak is köszönhetõ, hogy a Microsoft nem adta ki termékét Linuxra is. Bátran mondhatjuk tehát, hogy az OO.o remek programcsomag mind otthoni, mind általános irodai fel- használásra.

A kicsik is jelen vannak... Habár a legteljesebb megoldásnak az OO.o ígérkezik, azért ne feledkezzünk meg a kisebb méretû szövegszerkesztõkrõl sem. A KWord, a KDE rendszerhez készített KOffice irodai programcsomag része. Igaz ugyan, hogy a KOffice jóval ki- sebb tudású, mint az OO.o, azonban feladataink megoldá- sában ez is sokat segíthet, kiváltképp, ha nem túl összetett a feladat. Igazán kicsi, „lényegre törõ” alkalmazásról van szó, amit mi sem bizonyít jobban, minthogy a KOffice cso- © Kiskapu Kft. Minden jog fenntartva mag mérete mindössze 12 MB. (Ez azonban senkit ne té- vesszen meg. Ne feledjük, hogy az Opera böngészõ mérete is 3–5 MB között mozog, attól függõen melyik csomagot töltjük le, ugyanakkor nagyon nagy tudású program.) Ebbe a 12 MB-ba belefért egy táblázatkezelõ, szövegszerkesztõ, bemutatókészítõ, grafikonkészítõ, képletszerkesztõt és jó néhány apró, ám annál hasznosabb alkalmazás is. Mint említettem egyszerûbb feladatokra, mondhatnám álta- lánosabb felhasználású vagy egyszerûbb irodai munkákra kiválóan használható. Meglepetést csak a grafikontervezõ hozott, ami méretéhez képest igencsak hasznos és kezes társnak bizonyult. Mint ismeretes (és ez a vád éri a legtöbb- ször az Oo.o-t, nem alaptalanul, mert sajnos így igaz) rend- kívül lassan töltõdik be. Igaz, hogy utána remekül használ- ható, de bizony egy percig is eltarthat, mire teljesen betöltõ- dik. Kisebb gépeken, amelyek kevesebb memóriával van- nak megáldva (128 MB vagy az alatt) jól jöhet egy használ- ható, de kisebb erõforrás-igényû irodai csomag. Erre a célra bevették a hazai fejlesztésû Jdictionary programot. Ehhez a KOffice kiválóan alkalmas. egyébként az UHU-Linux második lemezén találhatunk Ha ennél „könnyedebb” szövegszerkesztõre vágynánk, ak- nyelvi bõvítményeket, így a program közel húsz nyelven kor jó választás lehet az AbiWord is. Az „öreg motorosok” tud oda-vissza fordítani. Természetesen nem teljes szöve- biztosan jól ismerik, hiszen fejlesztése hosszú ideje folya- gek fordításáról van szó, hanem kizárólag szótárról, annak matos, és több változatot is megért, valamint számos felü- viszont kiváló. leten érhetõ el (például Windowson, Linuxon, BSD-n, Sebessége egészen emberi, tehát egy kicsit sem lassú. Bárki BEOS-on stb.). könnyedén elsajátíthatja a kezelését, tehát az sem ördön- Rendkívül barátságos és kulturált program, azonnal belopta gösség. Többször használtam már munkáim során, és ki- magát a szívembe, amint legalább 10 percet dolgoztam vele. jelenthetõ, hogy a szókincse is megfelelõ a napi használat- Mindössze egyetlen gondom akadt, hogy a magyar nyelv- hoz. Igaz, hogy mindössze az angol és a német nyelvek vel nincsen kibékülve. Ugyanis nagy meglepetésemre nem esetében próbálhattam ki, mivel a többi nyelv elõfordulása hajlandó kezelni a hosszú ékezetes magyar betûket. Arra elég csekély. pedig még nem sikerült ráakadnom, milyen beállítást hasz- A másik nagy sikernek örvendõ (és egy irodában szinte nál, és hol tartja, amennyiben meglelném tehetnék valamit nélkülözhetetlen) eszköz a Komplex CD-jogtár. a dolog érdekében. Ennek hiányában sajnos komolyabb A KJK-Kerszöv jóvoltából az UHU-Linux tulajdonosai térí- munkára még nem alkalmas, apróbb feladatokra viszont tésmentesen, és szabadon használhatják a programot. Maga tökéletes, mondhatnám kihagyhatatlan jószág. az alkalmazás meglepõen gyors, fõleg, ha azt is tekintetbe vesszük, hogy (a törvénykönyvek méretébõl kiindulva) Az iroda más területei nem kis adatbázist kell kezelnie. Ennek ellenére akárhány- Egy irodában azonban nemcsak szövegszerkesztésre és táb- szor használtam, szinte mindig megtaláltam benne, amit lázatok kezelésére lehet szükségünk. Több olyan apró fel- kerestem, és nem is sokat kellett várnom a keresés eredmé- adat is adódik, amelyhez szintén programháttér szükséges. nyére. Igazán remek kis program, amely szintén megállja Nos, az UHU e feladatok jelentõs részében tud segíteni. a helyét a napi használatban. A szótárhasználat bevett gyakorlat az irodai munkában. Kiskereskedelmi felhasználáshoz a LafiSoft számlázó és rak- Szerencsére erre is gondoltak a fejlesztõk, és az UHU-ba tárkezelõ programja lehet még érdekes számunkra. Ez is

58 Linuxvilág Dobbantó

velet a már megszokott módon és teljesen zökkenõmente- sen zajlott. Mindössze az idõvel nem voltam kibékülve, amíg lefordult, mert ez bizony fél órába is beletelt, de cse- rébe egy remek programot kaptam ezért a küzdelmes fél óráért. Mindenki figyelmébe tudom ajánlani, mert páratlan élmény saját kiadványt készíteni, még akkor is, ha csak a saját szórakoztatásunkra tesszük.

Ami kihagyhatatlan Az elkészült dokumentumokat ki is kell tudnunk nyomtatni. Az UHU-Linux nyomtató-kezelése igen barátságos, tehát va- lószínûleg ez nem jelent majd gondot. Mindenképpen java- solt az UHU vezérlõpult használata, amelyben a nyomtatók részben könnyedén állíthatjuk be a nyomtatóinkat. Lehetõségünk nyílik, hogy kiválasszuk milyen kapura is csatlakozzon a nyomtató, megadhatjuk a típusát és a gyár- tót is. Sõt a nyomtató protokollt is, tehát azt a programból megvalósított csatolófelületet, amely az adott gyártó által © Kiskapu Kft. Minden jog fenntartva készített nyomtatónál a feladat végrehajtásáért felel. Érde- mes egyébként ez ügyben hallgatnunk a rendszerre, igen ritkán ad meg hibás értéket (Nekem még sosem tett ilyet). Ha azonban úgy gondoljuk, hogy finomabb beállításokat is szeretnénk, akkor jó választás lehet a KDE vezérlõpult is. Itt „finomhangolni” tudjuk az UHU vezérlõpultban már beállí- tott nyomtatót. Érdemes a sorrendet úgy megtartani, hogy elõször az UHU-ra bízzuk a feladatot, és csak azután kez- dünk kézzel hangolni a KDE-ben. Így nem hibázhatunk. Tipp: a KDE vezérlõpultja képes megkeresni a hálózati nyomtatót, tehát elég csupán a tartományt megadni neki (IP-tartományt) és máris szétnéz a hálózaton, van-e ott a tartományon belül nyomtató. Kényelmes módja ez a beál- magyar fejlesztésû, és hatóságok által elfogadott számlázó lításoknak, hiszen nem szükséges mindent fejbõl tudnunk. program. Az UHU-Linuxban lévõ változat száz bizonylatig A nyomtatási mûvelet igazán gyerekjáték az UHU-val: szé- vagy hárommillió forint forgalomig szabad felhasználású. pen nyomtat, remek minõségben és általában gond nélkül. Több szempontból igyekeztem megvizsgálni milyen is ez az A sikeres (vagy annak hitt) beállítások után azonban min- alkalmazás. Tettem mindezt azért, mert a számlázó kényes denképpen csináljunk próbaoldalt is, illetve ha a vezérlõ- pontja egy irodai rendszernek vagy vállalkozásnak. Nos, pult megkérdezi, hogy akarunk-e ilyesmit, akarjunk. erre szintén ráillik a fenti megállapítás: kellemes sebességû Ugyanis ez a legbiztosabb módja, hogy meggyõzõdjünk ar- és nem terheli meg a rendszert. Gyorsan „kipörgettem” ról, hogy valóban sikerült beállítani, jól jelenik-e meg min- a számlálóját, tehát nekiálltam elkészíteni a száz számlát. den, és rendben zajlott-e a folyamat. Egyetlen egyszer sem tapasztaltam fennakadást a program Én egyszer sem találkoztam olyannal, hogy „elmásztak” használata során. Mindvégig pontosan olyan módon, és azt volna a karakterek, rosszak lennének a színek vagy nem tette, amit kértem tõle. Ez elvárható egy ilyen feladatkörû megfelelõek a betûtípusok. programtól, de mint tudjuk, ez nem mindig valósul meg. Sajnálatos módon ismét csak dióhéjban sikerült átvennünk A DTP-s alkalmazásokból eddig igen nagy hiány volt az UHU-Linux irodai csomagját, hiszen olyan sok kisebb- Linuxon. Apróbb kezdeményezések történtek a helyzet or- nagyobb alkalmazás található benne, hogy terjedelmi okok- voslására, azonban ez nem jelenti azt, hogy sikerült is meg- ból képtelenség mindre kitérni. Mindössze csak felületes oldani a feladatot. Ilyen körülmények között, és ebben a ka- képet nyújthattunk ismét, kényszerûen kihagyva olyan tegóriában indult, és gyõzött a Scribus. Az elsõ olyan DTP-s fontos kérdéseket, mint például a faxoláshoz használt eFax alkalmazás Linuxra, amely képes lehet betölteni ezt az ûrt, vagy Kfax ismertetése. Azonban egy dologról ismét meg- és a helyzet az, hogy ettõl már tényleg nem sok választja el. gyõzõdhettünk, az UHU ezúttal is újabb oldalát mutatta Rendkívül ügyes program, amit semmi sem bizonyít job- meg, mindezt úgy, hogy a programok olyan tárházát vonul- ban, minthogy képes voltam létrehozni egy címlapot úgy, tatta fel, amely megvilágította, a bõség zavarával küzdünk. hogy életemben elõször ülök kiadványszerkesztõ elõtt. A következõ hónapban kissé visszalépünk az idõben, és új- A program részletesebb ismertetésébe ehelyütt nem fognék ból a multimédia lesz terítéken. Ezúttal azonban másként, bele, mivel a Linuxvilág januári száma több oldalon keresz- szigorúan zenérõl lesz szó, a lejátszásáról, feldolgozásáról, tül foglalkozott a Scribus képességeivel és szolgáltatásaival. és olyan programokról vagy megoldásokról, amelyek min- A program egyik érdekessége (ami a kiadványszerkesztõk den felhasználó számára elõsegítik kedvenceinek mentését között biztosan egyedülálló), hogy nyílt forrású. Elsõ talál- tárolását és tömörítését. kozásom alkalmával forráskódból kellett fordítanom. A mû- Dancsok Zoltán

www.linuxvilag.hu 2004. június 59 Dobbantó

Debian Otthonra – Szövegfájlok vagy debconf? (7. rész) Avagy a kényelmes rendszergazda esete a frissítésekkel...

gy röpke kitérõt szeretnék tenni, kedves rendszerépítõ szítõknek, ezzel a karbantartó program megírásának gond- társaim! Eddigi cikkeimbõl bizonyára kitûnt, hogy ját is levéve a vállukról, továbbra sem kötelezõ, hogy mind- © Kiskapu Kft. Minden jog fenntartva a Debian alatt rendkívül gyorsan jönnek ki az újabb és egyik programot ezen keresztül állítsunk be. A debconf tit- Eújabb csomagok, ezek frissítése közben a rendszer gyakran ka, hogy saját adatbázisában is tárol minden beállítást (leg- megkérdezi tõlünk, hogy az új beállításfájlt felülírja-e, vagy alábbis azokat, amelyeket megért), valamint kipreparált be- pedig hagyja a rendszeren az általunk már preparált pél- állításfájlokkal dolgozhatunk. Például, ha belenézünk egy, dányt. A legtöbb esetben ilyenkor megnézzük a két beállítás- a debconf által karbantartott /etc/X11/XF86Config-4 fájlba, fájl közötti különbséget, majd tudomásul vesszük, hogy leg- a legelején találunk egy hosszú megjegyzésrészt, mely a kö- többször nincsenek nagy különbségek. Többnyire új meg- vetkezõket írja le: jegyzések kerültek a fájlba, de mivel saját beállításaink is ben- a) ez egy debconf-adatokkal dolgozó fájl, ne vannak, ezért két lehetõség közül kell választanunk: vagy b) a fájl csak akkor frissül a hozzá tartozó csomag frissíté- nem törõdünk az új beállításfájllal és ezzel értékes adatokat sekor, ha megegyezik a debconf adatbázisában lévõ (vagy új lehetõségeket) veszíthetünk el, vagy magunknak kell fájllal, valamint átírogatnunk a beállításokat a régi fájlból (ehhez egyrészt meg c) ha a fájl más úton változott, akkor az ott feltüntetett kell jegyezni a telepítés közben e fájlok nevét, másrészt a fris- parancsokkal „fogadtathatjuk el” a rendszerrel. sítés után gyakorolni kell kedvenc szerkesztõprogramunk kivágás–másolás szolgáltatásait). Szerencsére a telepítõ a régi A rendszer tehát tárolja a beállítási adatokat is, valamint beállításfájlt is a rendszeren hagyja, egy .dpkg-old kiterjesz- egy MD5 ellenõrzõ kódot, ennek alapján dönti el, hogy az téssel. De nincs erre egyszerûbb megoldás? adott beállításfájl valóban megegyezik-e azzal a fájllal, amit A rendszereken általában háromféle megközelítéssel találko- õ maga hozott létre. Frissítéskor így nincs más dolga, mint zunk. Az egyik, hogy a felhasználónak nem adunk lehetõsé- az MD5-kódot ellenõrzi, és ha az megegyezik, nagy lelki get közvetlenül a szöveges beállításfájl kezelésére, ekkor bár- nyugalommal kidobja a régi beállításfájlt, majd helyette újat milyen beállítást a rendszerhez készített karbantartó progra- hoz létre az általa tárolt adatok alapján. Tehát, ha például az mon keresztül kell végezzünk. Másik lehetõség, hogy a beál- X11 angol billentyûzettel jelentkezik be, de már bosszant, lításfájlokkal egyszerre dolgozik a karbantartó rendszer és hogy mindig ki kell adni a setxkbmap hu parancsot, a fent mi is. Komoly kihívás, honnan állapíthatja meg a rendszer, említett XF86Config-4 fájlban megkereshetjük az alábbi mit írhat felül és mit nem, hogy egy adott részt mi töröl- részt, és kézzel átírhatjuk az értéket hu-ra. tünk, vagy még nem szerepel stb. Ennél a változatnál fordul elõ gyakran az „ezt meg ki a csuda állította át megint” típu- Section "InputDevice" sú életérzés. Végül pedig a harmadik hozzáállás a leg- ... könnyebb és legelegánsabb úton közelíti meg a kérdést: ha Option "XkbLayout" "hu" a csomagot karbantartani szükséges, akkor a csomag készí- EndSection tõje majd megírja hozzá a megfelelõ programokat. Természetesen mindegyiknek van elõnye és hátránya is. Ezek után viszont bajban leszünk, hiszen a rendszer a to- A fejlesztõk célul tûzték ki, hogy Debian alatt egy olyan vábbiakban nem kezeli ezt a fájlt. Ha elhitetjük a rendszer- rendszert hozzanak létre, amelyik igyekszik mindhárom rel, hogy ez az õ beállításfájlja (kiadjuk a fájl elején lévõ megközelítés lehetõségét felkínálni, mégis egységes és kezel- md5sum parancsot, akkor viszont a következõ frissítéskor (il- hetõ. Legyen egy központi adatbázis is, amiben a beállításo- letve a dpkg-reconfigure következõ futásakor)) a rendszer kat tárolja a rendszer, valamint a szövegfájlokban is tudjunk úgy csapja nyakon a beállításunkat, hogy még csak nem is dolgozni. A rendszer magától frissítse a beállításokat, de a sa- szól. De akkor mit tegyünk? A legjobb, ha megbarátkozunk ját beállításainkat se is törölje. Legyen lehetõsége a csomag a karbantartó felülettel, amit az elõbb említett dpkg- írójának saját karbantartót készíteni, mégis legyen egységes. reconfigre ad, s beállításainkat ezen keresztül hozzuk lét- Ehh, elvégre miért élünk, ha nincsenek céljaink, nem igaz? re. Akkor most feleslegesen futottunk egy kört a kertben? Eme nemes célok érdekében jött létre a debconf. Lényegé- Korántsem, hiszen egyrészt a szöveges beállításfájlok to- ben amellett, hogy egy szabványos felületet ad a csomagké- vábbra is megtalálhatók a rendszeren (legalább tudjuk,

60 Linuxvilág Dobbantó

hogy hol, mit kell keresnünk), másrészt, ha valamit nagyon rakteres terminálokon használt billentyûzetkiosztást (dpkg- elkontárkodunk, a rendszer további eszközöket kínál reconfigure console-common), még egy érdekes felhaszná- a rendrakáshoz. Például, ha a már említett XF86Config-4 lási területet emelek ki, ez pedig a /etc/alternatives könyvtár. fájlt sikerült használhatatlanná tennünk, majd az élet igaz- Debian alatt sokszor találkozunk a bõség zavarával: elõfor- ságtalanságai fölött érzett kétségbeesett dühünk kifejezése- dulhat, hogy öt-hat terminálprogram is csücsül a gépen ként töröltük, a dexconf (a parancs nevében lévõ x utal (xterm, rxvt, konsole, mlterm stb.), a felhasználó viszont a grafikus felületre) kiolvassa az adatokat a rendszer adat- csak „egy terminálprogramot” szeretne indítani. Ekkor jön bázisából, majd létrehoz egy új XF86Config-4 fájlt. a képbe, hogy jó volna beállítani alapértelmezett programo- Arra is lehetõség nyílik, hogy a beállításfájl csak egy adott kat ilyen-olyan feladatra. Régen ezt egy-egy környezeti részét kezelje a debconf rendszer, sõt hivatalosan csupán változóval oldották meg, ennek az a hátulütõje, hogy nem az alábbi két sor közötti részt kezeli: rendszerszintû, valamint minden egyes felhasználónak meg kell találnia (például) a .bashrc fájlt. A Debianban, ha ### BEGIN DEBCONF SECTION egy program „egy szerkesztõt” akar indítani, akkor a /etc/ ... alternatives/editor-t indítja, ezzel leegyszerûsíti az életet. ### END DEBCONF SECTION Ha például be akarod állítani, hogy melyik grafikus be- jelentkezéskezelõ induljon a gépen, akkor az itt lévõ Mindegyik csomag egyedi, más-más múlt áll mögötte, sõt x-session-manager hivatkozást kell a megfelelõ értékre ál- © Kiskapu Kft. Minden jog fenntartva nagyon sok nem is Debian alatt készül, így lassú folyamat, lítani. De lehetõleg ne kézzel állítsd át, hanem az update- hogy a csomagok mindegyike teljes mértékben megfeleljen alternatives --config x-session-manager paranccsal. a debconf igényeinek. A rendszergazdák életét viszont Na igen, a rendszergazdáknak elõbb-utóbb jól jön, ha rendkívül megkönnyíti, feltéve, hogy az ember veszi a fá- gyorsan tudnak gépelni. (Gondolom, nem meglepõ, hogy radtságot és végigjátssza az összes párbeszédablakot. Sze- hasonló eredményt érünk el azzal is, ha például a dpkg- rencsére a kezelõfelületet mi magunk választhatjuk meg. reconfigure xdm parancsot adjuk ki). Ezekbõl a felületekbõl egyre többet találunk. És hogy a hó- Elõre tehát az egységes és használható beállításfájlok útján! hért is akasszuk, a dpkg-reconfigure debconf paranccsal Bár a Debian által választott út néha valóban nehezebb, beállíthatjuk az alapértelmezettként használni kívánt beállí- mint egyszerûen beleírni egy szövegfájlba, de hosszú távon tási környezetet. mindenképp megéri a fáradalmakat. Így könnyedén beállíthatjuk, például a különbözõ kódla- pok támogatását (dpkg-reconfigure locales), vagy a ka- Szy György

www.linuxvilag.hu 2004. június 61 Dobbantó

Hogyan térjünk át Linuxra lépésrõl lépésre (8. rész) Mozgóképek lejátszása Linux alatt.

efejezõ részéhez érkezett az áttérésrõl szóló kezdõ felhasználóinknak szánt sorozatunk. Mivel az elõzõ © Kiskapu Kft. Minden jog fenntartva részében megismerkedhettünk rendszerünk képke- Bzelõ megoldásaival, innen valóban csak egyetlen lépés a mozgóképek világa, így végezetül elérkezettnek láttam, hogy megnézzük mire képes a Linux a digitálisan tárolt képanyagok megjelenítése terén. Írásaimban megszokhat- ták tõlem, hogy ilyenkor az elején mindig fényezem egy ki- csit a Linuxot, s megpróbálom elmagyarázni, hogy mennyi- vel jobb, mint bármi más. Ezzel természetesen soha nem az a célom, hogy elfogultsággal szóljak, és megpróbáljam „ráe- rõszakolni” az emberekre a linuxos megoldásokat – a Linux- nak, úgy érzem, nincs is erre szüksége. Arra viszont igenis szüksége van, hogy a figyelmet az egyébként könnyedén elérhetõ megoldások felé irányítsuk, s egyben feloldjuk azokat a feszültségeket, amelyek az egyes felhasználókban A Xine – indítás után egy-egy kudarcélmény után kialakulhattak. E régi szoká- somhoz most is hû maradok, és gyorsan vázolom is, milyen semmi dolgunk nem akad, de a tudásuk rendszerint erõ- jó kis eszközök közül válogathatunk a linuxos videóleját- sen elmarad akár a Windows Media Player nyújtotta szol- szás területén. Bár a válogatás szó jelen esetben kicsit túl- gáltatásokhoz képest is. (Ennek fõ oka egyébként a fizetõs zás, ugyanis egyetlen olyan, SuSE alatt is könnyedén elér- szabványokban és a különbözõ jogi fenyegetésekben hetõ lejátszó létezik, amely teljes értékû, de a mindennapok keresendõ.) A kínálat másik felén találhatók a fordítandó során a többivel is elboldogulunk. A hatékony és igazán jól vagy SuSE alatt nehezen telepíthetõ lejátszók, ezek már használható linuxos mozgóképkezelés mindössze egy-két mindent tudnak, de meg kell értük szenvedni – ezt sokan évre nyúlik vissza, ugyanis akkor készültek el az elsõ ver- nem szeretik. Vigasztalásul elmondom, hogy ez csak a SuSE senyképes lejátszók. Azóta három fõ vonal alakult ki (ezek esetében van így, ugyanis más terjesztések (Red Hat, vagy azért egy irányba haladnak), s létezik a mai napig is. Az Debian) alatt egyszerûen elfelejthetjük akár a teljes értékû egyik a Xine lejátszó által nyújtott megoldás, a másik az Xine-t vagy a VLC-t, s a nehézség át is van hidalva. Meg- MPlayer vonal, a harmadik pedig a nem is oly régi, ám an- jegyzendõ, hogy a SuSE is tartalmaz egy Xine-t, azonban nál tetszetõsebb VLC, amely a VideoLAN mûsorszóró pro- ez csökkentett képességû, például nem lehet vele DVD-t jekt ügyfélprogramjának indult, de mellékesen egy igen jól lejátszani – bizonyos szerzõi jogi és szabványügyi gondok használható médialejátszó kerekedett belõle. Jelenleg az miatt. MPlayer javára látszik eldõlni a verseny, de személyes ta- Bár az eddig bemutatott terjesztésnek ez a terület az egyet- pasztalatom, hogy a kezdõk számára a VLC kínálja a vá- len komoly gyenge pontja, azért nem kell megijednünk, lasztható megoldást. Ugyan gyengébbek a képességei, de azonnal megtanuljuk, hogyan is kell videókat lejátszani, nincs fordítás, semmi fejlesztõicsomag-telepítés, csak meg könnyen és gyorsan. kell etetni a rendszer csomagkezelõjével és máris használ- ható. Ez így szépen és jól is hangzik, ám a telepítés során Elméleti alapok SuSE 9.0-s alatt rettenetesen meggyûlt vele a bajom (más Hely hiányában természetesen nem kezdhetek bele a digi- terjesztések alatt a telepítés gyerekjátéknak bizonyult). tálisan tárolt videók teljes elméletének ismertetésébe, de Ha ügyesek vagyunk, akkor itt is be tudunk húzni a na- szeretném összefoglalni nagyon röviden az alapvetõ dolgo- gyoknak a rendkívül hatékony MPLayerrel, de talán még- kat, amelyeket mindenkinek célszerû ismernie. sem olyan egyszerû és teljes a kép, mint a mindennapi fel- A digitális videók közös tulajdonsága a hatalmas méret. használás többi területén. Léteznek alapértelmezetten tele- Nem csoda ez, hiszen másodpercenként 25–30 nagyfelbon- pített vagy könnyen telepíthetõ lejátszók, ezekkel ugyan tású képet kell tárolnunk. Ez hagyományos formában kivi-

62 Linuxvilág Dobbantó

dialejátszójának használata. A könnyed kezelésért azonban fizetni kell: a Xine mind tudásban, mind a grafikus felület sebességében alulmarad a versenytársakhoz képest. Néz- zük meg, hogyan telepíthetõ, s eközben ismerkedjünk meg a lejátszó képességeivel is. Ami a telepítést illeti, sok dolgunk nincs, ugyanis a Xine jó néhány változat óta része a SuSE-terjesztéseknek, nekünk csak annyi a dolgunk, hogy a YaST csomagkezelõ moduljá- val megkeressünk a xine-ui nevû csomagot, majd hozzá- adjuk rendszerünkhöz. A program a xine parancs kiadásá- val indul. Ekkor egy tetszetõs logó után egy ablakot ka- punk, melyben a rendszer rögtön kiírja, hogy a lejátszó csak korlátozott képességekkel bír bizonyos jogviták elkerü- lése érdekében. Ennek egyik részén egyszerûen segíthe- tünk, ugyanis könnyedén hozzáadhatjuk a Windows alatt használatos kodekeket. A másik tiltott szolgáltatáson – ne- A Xine (forrás:  http://xine.sf.net) vezetesen, hogy nem játszhatunk le DVD-t – azonban már csak úgy segíthetünk, hogy kézzel telepítjük a Xine honlap- © Kiskapu Kft. Minden jog fenntartva telezhetetlen, ezért az ilyen módon tárolt képanyagot bo- járól ( http://xinehq.de/) letöltött változatot. Mi kezdetnek nyolult eljárásokkal tömörítik, a képek egyes elemeit pedig maradjunk csak az alapértelmezetten elérhetõ változatnál. egyenesen veszni hagyják. A cél az, hogy az átalakítás után A program vezérlõfelületét úgy hozhatjuk elõ, hogy jobb élvezhetõ minõségû, ugyanakkor kevés tárhelyet igénylõ, s gombbal kattintva a megjelenõ gyorsmenübõl kiválasztjuk viszonylag kis számítási kapacitás igénybevételével lejátsz- a GUI menüpontot. Ha ezt megtettük, máris láthatjuk mire ható adatfolyamot kapjunk. Ezt többnyire úgy érik el, hogy képes a lejátszó: megnyithatjuk a lemezen tárolt videókat, a mozgóképek egyik fontos tulajdonságát aknázzák ki, ne- VCD-t vagy SVCD-t játszhatunk le, ha DVB (Digital Video vezetesen az egymást követõ képkockák csak kis mértékben Broadcasting) kártyánk is van, akkor digitális tévéadást néz- különböznek egymástól. Így egy jelenet elején tárolnak egy hetünk, s elvileg DVD-t ugyancsak lejátszhatunk, de mint képet, s a továbbiakban már csak az szerepel, hogy a követ- már említettem, a jogviták elkerülése végett ezt a lehetõsé- kezõ képkockák a megelõzõ képkockáktól miben térnek el. get kivették a SuSE-terjesztésben lévõ lejátszóból. Ha már Ez egészen addig megy, amíg a különbség leírása kevesebb a csonkított képességeknél tartunk: az alapfelállás szerint helyet igényel, mint egy új, úgynevezett kulcsképkocka be- a lemezen tárolt videóinkkal, amennyiben nem MPEG for- szúrása. Ezek a bizonyos kulcsképkockák olyan, az adott mátumúak, igencsak meggyûlhet a bajunk, ugyanis a Xine jelenetre jellemzõ képek, amelyek valóban tárolva vannak, e változata mindezt nem kezeli. Ennek az az oka, hogy nem és a késõbbiekben ezekhez viszonyítva írják le az õt követõ rendelkezik a videók kicsomagolásához szükséges képkockák különbözõségét. Ezeket a számításokat, és ma- kodekekkel. Ne keseredjünk el, inkább lássuk a megoldást! gát a tömörítést kódolóprogramok végzik. Hasonlóan a le- Az interneten kering egy Linux alatt használható, DLL-eket játszás során a tömörítés fordítottját is ilyen eljárások vég- tartalmazó kodekcsomag. Nekünk csupán ezt kell letölteni, zik, amelyeket dekódolóprogramoknak nevezünk. A kettõt s a benne lévõ állományokat kicsomagolni a /usr/lib/win32 általában össze szokták vonni, így kapják meg az adott for- könyvtárba. Ha ez megvolna, indítsuk újra a lejátszót. Most mátumra jellemzõ kodeket (kóder – dekóder). A legtöbb le- már mindenféle DivX-es vagy más formátumú filmet megte- játszó ezeket a kodekeket (és egyéb eljárásokat) hívja segít- kinthetünk a lejátszó segítségével, ugyanis a Xine felismeri ségül, és velük végezteti a mozgóképtartalom visszafejtését, az ebben a könyvtárban elhelyezett, eme különleges kode- s ezek után adja át a képanyagot a rendszernek (általában keket, s ha szükség van rájuk, alkalmazza is õket. Ilyen ko- X-felület), hogy jelenítse meg. A lejátszó tehát „csak” a fájlok, dekcsomag, amit egyébként win32 csomagnak is neveznek, médium kezeléséért, az adatok kinyeréséért, a kép–hang a  http://www.mplayerhq.hu/releases/codecs/ tölthetõ le. összehangolásáért és a vezérlésért felelõs. Mindez természe- A használhatóságot tekintve a program a mindennapi élet- tesen iszonyatos feladat. Ennyit dióhéjban, most pedig néz- ben tökéletesen megállja a helyét: szinte mindent lejátszik, zük a rendelkezésünkre álló eszközöket. amit odaadunk neki, sõt menet közben több hangsáv és fel- irat közül tudunk választani, képet menthetünk a filmbõl, Mindenekelõtt a nagy öreg: a Xine testreszabhatjuk a beállításokat, s mindezt grafikus felüle- Ez a legelsõ „komoly” linuxos lejátszóprogram, melynek ten keresztül tehetjük meg. Ezenkívül a Xine parancssorból a kezdetekben számtalan hibája mellett az is akadályozta is nagyszerûen használható, a fortélyok elsajátításához az elterjedését, hogy rendkívül nehéz volt mûködésre bírni. a Xine kézikönyv tanulmányozását javaslom, ezt a man xine Szerencsére ez az állapot hamar változott, s a késõbbi ki- parancs kiadásával nézhetjük meg parancssorból. adások már egészen egyszerûen telepíthetõk voltak. Mára ezen a téren vezeti a mezõnyt, vagyis ez a legegyszerûbben Egy Xine elõlap: Kaffeine használatba vehetõ lejátszó az összes közül. Ezen túlmenõ- Ez a KDE munkakörnyezethez tartozó médialejátszó való- en alapértelmezetten rendelkezik grafikus felülettel, ennek jában nem más, mint egy Xine elõlap (frontend). Ez azt je- következtében a kezelése is gyerekjáték: semmivel sem ne- lenti, hogy az elõttünk lévõ felület nem „igazi” programot hezebb, mint bármely operációs rendszer valamelyik mé- takar, hanem minden kiadott utasításkor a Xine-t hívja se-

www.linuxvilag.hu 2004. június 63 Dobbantó

gítségül a háttérben, s az õ képességeit kihasználva jeleníti meg a videót. Miért jó ez nekünk? Igazából az lehetett a cél, hogy a KDE grafikus munkakörnyezetet többnek lássuk, mint ami valójában. Továbbá egyéb haszna is akad a dolog- nak, míg a Xine mutatós, cifra felülete nehézkesen lassú, addig a Kaffieine igen fürgén mozog, a KDE fájlpaneljét használva pedig sokkal egyszerûbben nyithatunk meg állo- mányokat. Képességeit tekintve pontosan ugyanazt tudja, mint a Xine, sõt a beállítópanelje a Xine hasonló feladatú ablakának tökéletes mása, azaz mindent testre tudunk szab- ni a segítségével. Ezen felül a program a szokásos területi beállítások használatával magyarul beszél, tehát mindenki könnyebben igazodhat el rajta. Ez a lejátszó SuSE 9-es alatt alapértelmezetten része a rendszerünknek, így a telepítésé- vel nem is kell bajlódnunk. Sajnos a program a korlátait is megõrizte, tehát DVD-t továbbra sem tudunk lejátszani, s a változatos formátumú videofájllal is csak akkor boldogu- © Kiskapu Kft. Minden jog fenntartva lunk, ha telepítjük a win32 kodekeket.

VLC – a rendszeridegen A VLC-t azért illettem e jelzõvel, mert SuSE alá telepíteni nem is olyan egyszerû feladat. Ennek az oka, hogy a 9.0-s A Kaffeine médialejátszó változathoz nem létezik hivatalos csomag, így aki bajlódni akar vele, annak a Red Hathez kiadott változatot kell meg- próbálnia mûködésre bírnia, ami már csak azért sem egy- Büszkeségünk: az MPlayer szerû, mert körülbelül 18 csomagból áll, s ezek mindenféle Immáron több éve ül trónján a magyar fejlesztésû médiale- rendszercsomagokat igényelnek. Mivel a telepítési útmuta- játszó, az MPlayer. Igazi erejét az adja, hogy szinte az tó meghaladja e cikk méretét, ezért ez esetben kihagyom, összes létezõ fájlformátummal megbirkózik. Ezenkívül viszont néhány szót mégis ejtenék róla, mivel más terjeszté- a kezdetek óta rengeteget egyszerûsödött a telepítése, szol- sek alatt egyszerûen hozzáadható a rendszerhez, s mind- gáltatásai a csillagos égig érnek, bármit megoldhatunk vele, emellett rendkívül kedvezõ tulajdonságokkal bír. Személyes s mindezt profi módon. Régebbi SuSE-terjesztésekben volt véleményem szerint messze jobb, mint a Xine, arról már elõre fordított MPlayer, ám nem megfelelõen mûködött. nem is beszélve, hogy egy teljes mûsorszóró megoldást le- Talán ezért is hagyták ki a 9-es változatból. Egyéb gondot het ráépíteni. (Linuxvilág 39. szám „Mûsorszórás a helyi há- jelenthetett az is, hogy ez a lejátszóprogram nem igazán lózaton”; 40. szám „Mûsorszórás: nem csak helyi hálóza- terjed elõre fordított formájában, ezt bizony fordítani kell. ton”). Maga a program eredetileg e mûsorszóró megoldás Szerencsénkre a kezdetben sokat szidott bonyolult fordítási, ügyfélprogramjaként lépett a fejlõdés útjára, de mellékesen telepítési folyamat mára jelentõsen leegyszerûsödött, oly- remek médialejátszó lett belõle, hiszen helyi környezetben annyira, hogy mi, kezdõ linuxos mazsolák elsõ fordítási is pontosan ugyanazt kell tudnia a képek megjelenítéséhez. gyakorlat gyanánt most meg is próbálkozunk vele. Célom A program rendelkezik grafikus felülettel, de erre is igaz, egy olyan telepítési útmutató leírása, amit pontosan követ- hogy parancssorból is kényelmesen vezérelhetõ. Ezzel ve bárki akadálytalanul hozzájuthat a világ jelenleg legnép- a programmal számos fájlformátum megtekinthetõ, ugyan- szerûbb linuxos médialejátszójához. Kezdjük is el mindjárt! is alapértelmezetten tartalmazza a híres, nyílt forrású Mint tudjuk, a linuxosok életében elég gyakori a mumus- libavcodec nevû kodekcsaládot, amellyel MPEG2 adatfo- ként emlegetett „fordítás”, amely nem takar mást, mint lyamtól kezdve az XVID AVI fájlokig bármit lejátszhatunk, egy alkalmazás programnyelvrõl binárissá történõ átalakí- méghozzá nem is akármilyen hatékonysággal. A DVD ko- tását. Hacsak nem vagyunk fejlesztõk, Windows alatt rongok lejátszása is gyerekjáték, ugyanis a lemez behelye- ilyesmivel nem találkozhattunk, ugyanis a kereskedelmi zése után a Fájl menü Megnyitás panelének kiválasztása programok kódja szigorúan õrzött titok (pestiesen talán után akár a DVD-n található menü igénybevételével is a disznósajt lehetne), ezért mindig a lefordított változattal használhatjuk a korongot, sõt mi több, az általam kipróbált találkozhattunk. A nyílt forrás világában azonban – mint lemeznél hibátlanul mûködött. (Természetesen a menüt a neve is mutatja – a program kódja szabadon elérhetõ, mellõzhetjük is, így kihagyhatjuk az unalmas reklámokat, terjeszthetõ és változtatható stb. Ezért idõnként elõfordul, illetve a jogi figyelmeztetéseket.) hogy az alkalmazás nem a végleges formájában kerül Felületét tekintve leginkább a Windows alatt elérhetõ elénk, hanem azt elõször át kell alakítani, azaz le kell for- Xing MPEG-lejátszóra hasonlít, egész kényelmesen hasz- dítani a processzorunk által emészthetõ formára. Ez sok nálható, s figyelemreméltó az is, hogy szinte mindent be- esetben azért elõnyös, mert így pontosan a gépünkre il- állíthatunk a grafikus felületrõl is. A program egyébként leszkedõ program keletkezik, éppen úgy, mintha egy öl- a legtöbb operációs rendszerhez rendelkezésre áll, bát- tönyt nem a boltban veszünk meg, hanem a szabó szabja ran javaslom mindenkinek, hogy alkalmazza más felü- ránk. Az MPlayerrel is ez a helyzet, s régen a gyengébb leten (platform) is. képességû gépek esetében bizony jelentõs processzoridõt

64 Linuxvilág Dobbantó

A VLC DVD-lejátszás közben Az MPlayer mûködés közben © Kiskapu Kft. Minden jog fenntartva lehetett megtakarítani, ha az elõrefordított változat helyett meglepõ módon, ezt az mplayer http://URL parancs mi magunk készítettünk binárist a forrásból. kiadásával tehetjük meg. Az MPlayer igazi erõssége azon- Járjunk el most is ekként, és mindenekelõtt ban az, hogy számtalan kapcsolójával tökéletesen beállít- a  http://www.mplayerhq.hu/homepage/design6/dload.html hatjuk a lejátszási jellemzõket. Ami a felhasználói beavat- címrõl töltsük le az MPlayer forrását, a feliratok használatá- kozást illeti: gyakorlatilag verhetetlen. Ez egyébként lehe- hoz szükséges betûtípusokat (ISO8859-2 kódolással), és eset- tõvé teszi számunkra, hogy a lejátszó képességeit a vég- legesen a fentebb már említett win32 kodekcsomagot. Ez telenségig kihegyezzük, de ez még nem minden. utóbbit a /usr/lib/win32 könyvárba bontsuk ki alkönyvtárak A program ennél sokkal-sokkal többet tud, szinte mindent, nélkül, az MPlayer forrását pedig csomagoljuk ki egy tetszõ- ami csak az eszünkbe jut. A forrás könyvtárában a DOCS/ leges könyvtárba a Midnight Commander segítségével Hungarian alkönyvtárban teljes körû, magyar nyelvû a Windows alatt megszokott módon, természetesen mindezt használati utasítás található. Az MPlayer részletes bemu- rendszergazdaként kell megtennünk. Ezután a YaST csomag- tatására hamarosan ismét sort kerítünk egy önálló cikk kezelõjével telepítsük a gcc, Xfree86-devel, illetve a make keretében. Addig is javaslom mindenkinek, hogyha ked- nevû csomagokat. Ha ez megvolna, indítsunk újra parancs- vet érez, kezdje el az ismerkedést ezzel a nagyszerû sort, s lépjünk be abba a könyvtárba, ahová az MPlayer for- alkalmazással. rását kicsomagoltuk. Adjuk ki a ./configure parancsot, amely a környezet önmûködõ felismerését, s a fordításhoz Búcsúzóul szükséges beállításokat egyaránt elvégzi. Ha ez hiba nélkül Ezzel befejezõdött a SuSE Linuxon keresztül történõ bemu- lefutott (erre minden esélyünk megvan), adjuk ki a make pa- tatkozása, ez egyúttal a cikksorozat végét is jelenti. A dolog rancsot, amely az úgynevezett makefájlban megadott kap- természetesen nem fog elhalni, hanem áttér egy általáno- csolók, jellemzõk alapján a gcc (GNU C Compiler) segítségé- sabb, terjesztésfüggetlen környezetbe. Ez azt jelenti, hogy vel megkezdi a fordítást. Pár perc múltán végezni is szokott, a továbbiakban is szeretném megtartani azt a vonalat, hogy ilyenkor némi felhasználói tájékoztatást ír ki a képernyõre, egy-egy felhasználási területet kiragadva megvizsgáljuk például hogyan telepítsük a már lefordított programot, illet- milyen megoldások léteznek az adott feladatra, de mindezt ve hova másoljuk a betûtípusokat. Foglalkozzunk most az általánosan, s nem is az áttérés, hanem a további használat elsõvel, s adjuk ki a make install parancsot, amely az elõre jegyében, így keltre életre egy újabb cikksorozatot. megadott utasítássorozat lefuttatásával a megfelelõ helyekre Ha már így a végére értünk, szeretném megragadni az al- másolja a program összetevõit. Ezzel gyakorlatilag a program kalmat, hogy megköszönjem minden olvasónknak a soro- már mûködõképes, de mielõtt birtokba vennénk, a letöltött zattal kapcsolatban érkezett számtalan levelet: kérdést, vé- betûtípusokat csomagoljuk ki egy átmeneti könyvtárba, majd leményt, észrevételt – ezeket továbbra is várom. Örömmel annak az alkönyvtárnak a tartalmát, amely a számunkra ked- vettem minden hozzászólást, jólesett minden dicsérõ szó, vezõ méretû betûtípust tartalmazza, másoljuk a /usr/local/ igyekeztem válaszolni minden kérdésre, s mindent össze- share/mplayer/font könyvtárba. Ezennel készen is vagyunk. vetve jó volt átélni, hogy mindaz, amit eddig tapasztaltam, Ha most szeretnénk megnézni egy videót, adjuk ki az s most megpróbáltam átadni, az olvasói oldalon gazdag mplayer parancsot, s a dolog máris mûködik. táptalajra talált. Köszönöm! A program a DVD-k lejátszását is alapértelmezetten támo- gatja. Ehhez nem kell más tennünk, mint a korong behelye- Komáromi Zoltán zése után kiadni az mplayer dvd://1 parancsot. Hasonlóan ([email protected]) járjunk el VCD/SVCD esetében is, de ott dvd helyett a vcd 23 éves, a BME hallgatója, mellette eszközt címezzük. PHP-programozóként dolgozik. Ezen túlmenõen természetesen lehetõségünk nyílik távoli Kedvenc területe a multimédia. fájlok HTTP protokollon történõ lejátszására is. Nem túl

www.linuxvilag.hu 2004. június 65 Dobbantó

Linuxos kiszolgálót mindenkinek! (7. rész) A SuSE Linux mint kiszolgáló – kisvállalati és otthoni környezetben.

ikksorozatunk elõzõ részeiben népszerû internetes és hálózati szolgáltatások kiszolgálását tettük lehe-

© Kiskapu Kft. Minden jog fenntartva alkalmazás tõvé rendszerünkön. Most az egyik leggyakrabban, pl. böngészõ Cbár kétség kívül nem a leglátványosabban használt szolgál- Saját gépünk tatást fogjuk megismerni, nevezetesen a DNS-t, azaz a tarto- www.tartomany.hu mánynév szolgáltatást (DNS – Domain Name Service). Szolgáltató DNS Root DNS kiszolgálója Az elméletrõl dióhéjban névfeloldás Mint azt bizonyára mindenki tudja, az internetre kapcsolt Felhasználó gépek mindegyike rendelkezik egy IP-címmel, amelyen ke- resztül az adott gép megszólítható bármelyik másik háló- Cache Adatbázis Cache zatba kapcsolt géprõl. Mivel az IP-címek 32 bites számok, ezért e számokból akár csak a kedvenc weboldalaink címét megjegyezni is felér egy fél telefonkönyv megtanulásával, nem beszélve az egyéb felmerülõ nehézségekrõl. let egy hierarchikus rendszeren alapul, amelyben a tarto- Az elõbbiekbõl kiindulva már a TCP/IP-hálózatok megjele- mányneveket faszerkezetbe rendezetten szeretnénk tárolni. nésekor felmerült az igény, hogy az egyes gépeket ne csak A faszerkezetbe rendezés több elõnnyel is bír: jól átlátható IP-cím szerint, hanem egy választott név alapján is meg le- az általa leírt szervezeti szerkezet, valamint megfelelõ fa- hessen találni. Ehhez egy olyan adatbázis szükséges, amely- szerkezet esetében a keresés nagyságrendekkel hatéko- ben név és cím párok szerepelnek. nyabb, mint a hagyományos listában való keresés. A Unix-rendszerekben kezdetben ez az adatbázis A fa gyökere az úgynevezett fõ gyökér (root). Ezt az eredeti a hosts.txt állomány volt. Ebbe az állományba gyûjtötték DNS-rendszerben egy ponttal jelölték. A gyökér alatt talál- a név és cím párokat, és ha egy gépre a neve alapján hi- ható elsõ szint az úgynevezett legfelsõ szint (top level). Ez vatkoztak, akkor a rendszer ebbõl az állományból kereste alatt pedig a másodszintû tartománynevek (second level) ki a névhez tartozó IP-címet. Ezt az adatbázist a Stanford találhatóak. Research Institute-nál (SRI) mûködõ Network Information Center („the NIC”) tartotta karban. Amikor új gép je- A Top Level Domain lent meg a hálózatban, a választott névvel bejegyezték A legfelsõ szintû tartománynevek (Top Level Domain, TLD) a hosts.txt állományba, majd hetente egyszer vagy két- egyedi nevek, ezeket a nemzetközi szervezetek osztják ki, szer közzétették a legújabb frissítést, hogy az új név–cím- illetve a használatuk körét is õk határozzák meg. A legfelsõ párokat elérhetõvé tegyék. szintû tartománynevek közé tartoznak a következõ három- Ez a rendszer tökéletesen mûködött néhány tucat vagy pár betûs nevek: com, org, net, edu, int, mil, gov. Ezek közül száz név tárolására, ellenben a jelenlegi címigények kielégí- a mil és a gov különlegesek, mivel elõbbit csak az Egyesült tésére használhatatlan. Államok hadserege használhatja, míg utóbbit csak az Egye- További gondot jelentett, hogy a hosts.txt adatbázisába bár- sült Államok kormányzati szervei. A többi legfelsõ szintû ki megkötés nélkül helyezhetett el bejegyzéseket, így meg- tartománynév alá gyakorlatilag szabadon lehet neveket be- volt annak a lehetõsége, hogy kellõ szabályozás híján egy- jegyezni, legfeljebb mûködési, tevékenységi köri megköté- mással ütközõ neveket helyezzenek el az állományban, ez- sek vonatkoznak rájuk. zel téve használhatatlanná. A legfelsõ szintû tartománynevek másik nagy csoportja A hosts.txt utóda a mai napig megtalálható mind a Unix- és a kétbetûs országkódok csoportja. Ezeket a kétbetûs kódo- Linux-, mind a Windows-rendszerekben. Elõbbieknél a /etc/ kat az ISO (International Organization for Standardization hosts állományt kell keresni, utóbbinál a %SystemRoot%/ – Nemzetközi Szabványosító Szervezet) osztotta ki az or- system32/drivers/etc/hosts állományt. szágoknak. Paul Mockapetris 1983-ban megalkotta a Domain Name Az elõbb említett legfelsõ szintû tartományneveken kívül az System (DNS) nevû név és cím párosítási rendszert. Az öt- elmúlt években újabb tartományok jelentek meg a legfelsõ

66 Linuxvilág Dobbantó

szinten, ilyen a .biz vagy a .info. Az összes jelenleg elérhetõ Protocol) keresztül futnak. Az UDP protokoll elõnye a TCP- nem országokat jelölõ legfelsõ szintû tartománynév és a ko- hez képest, hogy mivel nincs kapcsolatfelépítés, valamint ordináló szervezeteik elérhetõsége a  http://www.iana.org/ nem megbízható kapcsolaton zajlik a kapcsolattartás, ezért gtld/gtld.htm címen található meg. a TCP-hez képest lényegesen kisebb adatfolyamot hoz lét- re, valamint sokkal rövidebb idõ alatt megy végbe a lekér- Másodszintû tartományok dezés. Természetesen hátrányként jelenik meg a csomag- A másodszintû nevek kiosztása mindig az adott legfelsõ vesztés, de ez nem gond, legfeljebb mind a kérést, mind szintû tartománynév fenntartójának a feladata, így a .hu a választ újraküldjük. alá tartozó címeket a magyarországi NIC szervezet osztja ki, mely a  http://www.nic.hu címen érhetõ el. A gyakorlat Amennyiben valaki a .hu tartománynév alá szeretne nevet Jelenleg a Linux alatt a legelterjedtebb DNS-kiszolgáló bejegyeztetni, akkor ennek feltételeirõl és a választható, va- a BIND, azaz a Berkeley Internet Name Domain, annak is lamint a már foglalt nevekrõl a  http://www.domain.hu a 8-as, illetve újabban a 9-es kiadása. SuSE alatt a YaST-tal címen tájékozódhat. természetesen mindkét kiszolgáló telepíthetõ, elõbbi Másodszintû tartománynevet bárki szabadon bejegyezhet, a bind8, utóbbi a bind9 csomag telepítésével. Én az utóbbi viszont szerencsés lenne, ha a nemrég beindult „jegyez- telepítését javaslom, tekintettel arra, hogy frissebb változat- zünk be minden értelmes szót” mozgalom visszaszorulna ról van szó. kicsit, ugyanis – amellett, hogy lassan nem lehet értelmes, Ha végeztünk a telepítéssel, akkor a következõ könyvtárak- © Kiskapu Kft. Minden jog fenntartva még be nem jegyzett szavakat találni – azzal, hogy lassan nak, illetve állományoknak kell megjelenniük. minden internetre kapcsolt gép saját másodszintû névvel rendelkezik, elvesznek a DNS felépítésébõl származó olyan • A /etc/init.d könyvtárban kell megjelennie a named nevû elõnyök, mint a kiegyensúlyozott fában való keresés vagy futtatható állománynak. E program meghívásával tud- a szervezeti felépítések leírása. juk a DNS-kiszolgálót indítani, leállítani vagy éppen új- ratölteni a beállításfájlokat. A DNS mûködésérõl • A /etc könyvtárba kerül a named.conf állomány, amely A DNS mûködése egy elosztott adatbázison alapul, ez je- a DNS-kiszolgáló alapvetõ beállításait tartalmazza. Erre lenleg a világ legnagyobb ilyen típusú rendszere. A DNS- az állományra nagy szükségünk lesz a továbbiak folya- rendszer jelenleg 13 úgynevezett fõ (root) kiszolgálóból és mán is. számtalan kisebb-nagyobb DNS-kiszolgálóból áll. A 13 fõ • A további beállításokat, valamint a különbözõ zónaleíró- DNS különleges feladatot lát el, nevezetesen az õ feladatuk, kat a /var/lib/named könyvtár alatt találjuk, illetve az álta- hogy minden egyes tartományhoz ismerjék a kiszolgálógé- lunk létrehozott állományokat is ide célszerû elhelyezni. pet vagy az oda vezetõ utat. Amikor egy felhasználó egy weboldal letöltését kezdemé- A named.conf nyezi a böngészõjébõl, a gépe megnézi a saját DNS-gyorstá- A named.conf állományban tudunk beállítani minden fonto- rát (cache), hogy az adott címhez tartozó IP megtalálható-e sabb jellemzõt, amely DNS-kiszolgálónk futása során felme- benne. Amennyiben nem találta meg az IP-t, akkor megszó- rül. Ebben lehet beállítani az úgynevezett Master és Slave lítja a rendszernek megadott egyik DNS-kiszolgálót. Ez zónákat és a kiszolgáló jellemzõit, például a használt a DNS-kiszolgáló szintén megpróbálja a névhez tartozó cí- könyvtárakat, naplózási beállításokat és az elérhetõségi met megtalálni, ehhez átnézi a saját adatbázisát, valamint beállításokat. a saját gyorstárát. Minden DNS-kiszolgáló szintén rendel- Kezdjük az options résszel. Az elsõ bejegyzés a directory, kezik gyorstárral, amelybe a legutóbb használt név–cím- itt adhatjuk meg, hogy a rendszer melyik könyvtárat hasz- párokat raktározza el. Amennyiben a megszólított DNS-ki- nálja a futása során. Alapértelmezettként a /var/lib/named szolgáló sem találja meg a név feloldását, akkor a hozzá van beállítva. földrajzilag legközelebb esõ fõ DNS-hez fordul. A fõ DNS A következõ bejegyzés forwarders kapcsoló. Ezzel adhat- visszakeresi a névhez tartozó kiszolgálót és elküldi a címet juk meg azoknak a DNS-kiszolgálóknak az IP-címét vagy a DNS-kiszolgálónknak, aki ezt a címet egyfelõl eljuttatja csoportját (lásd késõbb), amelyeket a hozzánk beérkezõ ké- hozzánk, másfelõl elhelyezi a saját memóriájában késõbbi rések kiszolgálására használni szeretnénk. Amennyiben egy hasznosítás céljából. Felmerülhet a kérdés, mi szükség van kérés érkezik hozzánk, és nem tudjuk a címet visszafejteni, a ritkán használt címek tárolására. A válasz roppant egysze- alapesetben a fõ névkiszolgálók valamelyikéhez fogunk for- rû: a ritkán használt címet sem csak egyetlen egyszer hasz- dulni. Ha ebben a bejegyzésben egy vagy több névkiszolgá- náljuk, hanem az adott weboldal megtekintése során is lót adunk meg, elõször õket kérdezzük le, mielõtt magasabb többször szükségünk lehet rá. szinthez fordulnánk. Egy DNS-kiszolgáló több tartomány, zóna kiszolgálását A forward first kapcsoló beállításával azt érjük el, hogy is lehetõvé teszi. Ilyenkor minden egyes zónához tarto- a beérkezõ kéréseket elõször külsõ kiszolgálóval próbáljuk zik egy állomány, amely leírja az adott zónába tartozó meg feloldani, mielõtt a saját adatbázisunkhoz fordulnánk. név–cím-párokat. Ha egy gép adott zónához kéréssel for- A listen-on kapcsolóval be lehet állítani, hogy melyik dul, a kiszolgáló megkeresi a zónaállományban a kérdéses helyi hálózati csatoló melyik kapuján nyújtsunk DNS-szol- bejegyzést, és amennyiben eredményes volt a kérés, akkor gáltatást. visszajuttatja az õt megszólító géphez. Ezek a kérések és A listen-on-ipv6 bekapcsolásával értelemszerûen a meg- válaszok minden esetben UDP-n (User Datagramm adott hálózati csatolón fogadjuk el az IPv6-os kéréseket.

www.linuxvilag.hu 2004. június 67 Dobbantó

Az allow-query kapcsolónál be tudjuk állítani, hogy mely ügyfelek futtathassanak lekérdezéseket a rendszerben. Alapértelmezésként bárhonnan elfogadunk kéréseket. root A notify kapcsolóval be tudjuk állítani, hogy a naplóban megjelenjenek-e a kiszolgáló állapotáról szóló üzenetek. Sok tartomány esetén javasolt a naplózás tartományonkénti com org net edu int mil gov hu at de Top Level beállítása, ugyanis a túl sûrû naplózás nagyon leterhelheti Domain a kiszolgálót. jegyzet debian xfree86 linuxvilag bme Second Az allow-transfer kapcsolóval korlátozhatjuk azt, Level hogy mely kiszolgálók kérhessék le DNS-kiszolgálónk Domain zónaállományait. Ezt érdemes beállítani, hogy csak www iit hszk a szükséges kiszolgálók kapjanak ilyen jogosultságot, mivel ezen a felületen keresztül akár szolgáltatásmegtaga- www ural2 dásos (Denial of Service, DoS) támadást is lehet indítani a gép ellen, arról nem is beszélve, hogy nem feltétlenül szeretnénk a hálózatunk felépítését mindenki számára láthatóvá tenni. (Tartománynév bejegyzésekor a bejegyzõ Még egy fontos csoport létezik, amit a named.conf állomá- © Kiskapu Kft. Minden jog fenntartva szervezet ellenõrzi, hogy a bejegyzendõ zóna megfelel-e nyon belül létre tudunk hozni. Amennyiben több IP-címet a szabályoknak, ehhez viszont transfer jogosultságot szeretnénk egy csoportban kezelni, például az allow- kell biztosítani.) transfer kapcsolónál, úgynevezett gyûjtõket (access A logging résznél beállíthatóak a rendszer naplózással control statement, acl) hozhatunk létre. Egy ilyen acl alá kapcsolatos jellemzõi. Ezeket hagyhatjuk alapértéken. több IP-t is megnevezhetünk, így a gyûjtõnévre való hivat- Amennyiben mégis hozzányúlunk, figyeljünk oda, hogy kozás során az összes gyûjtõben lévõ gépre hivatkozunk. egy rossz naplózási beállítás felhizlalhatja a napló mértét, Az alábbi példával a Budapesti Mûszaki Egyetem DNS- vagyis felesleges adatokkal töltheti fel. kiszolgálóit tettük egy csoportba. Elérkeztünk a zónarészhez. Ebben tudjuk beállítani a kü- lönbözõ kiszolgált zónák leíróinak helyét, típusát, illetve acl BME-DNS { egyéb jellemzõket is megadhatunk, például naplózással 152.66.115.1; kapcsolatos beálltásokat. Gyakorlatilag minden zónához 152.66.116.1; külön-külön megadhatjuk az elõbb látott options részben }; beállított értékeket. Egy zóna bejegyzéséhez legalább az alábbi értékek megadá- Ezután egy zóna beállításain belül nyugodtan használhat- sa szükséges: juk a következõ beállítást:

zone "zóna_neve" { allow-transfer { BME-DNS; }; type zóna_típusa; file zóna_állomány; Ezzel a BME DNS-kiszolgálóit jogosítjuk fel zónaátvitelre. }; Zónaleírók szerkesztése Típusnak meg kell adnunk, hogy az adott zóna a kiszolgáló Ha végeztünk a named.conf beállításával, akkor itt az ideje szempontjából milyen típusú. A forward zóna minden ké- létrehozni a megfelelõ zónaleírókat. Ezeket az állományo- rést egy adott kiszolgálóhoz továbbít. A hint egy különle- kat célszerû a /var/lib/named könyvtárban alkönyvtárakba ges zóna, amely egy fõ névkiszolgálóra mutat, arra az eset- elhelyezni. re, ha olyan névvel találkoznánk, amit nem tudunk felolda- A zónaállományok legfontosabb bejegyzéseit, úgynevezett ni. A master – amúgy a leggyakrabban használt típus – egy Resource Recordjait (RR) a következõkben foglalhatjuk olyan zóna, amelynek a leírófájlja a kiszolgálón található. össze. A slave egy olyan típus, amit ugyan ismerünk, de a zóna Az elsõ Resource Record a SOA (Start of Authority). A SOA leírójának szerkesztése nem a mi feladatunk, készen kapjuk olyan fontos adatokat tartalmaz a zónáról, mint a zóna sor- õket a zóna elsõdleges (master) kiszolgálójától. száma, frissítési ideje, lejárati ideje, DNS-címe, illetve a kar- Az állomány változó értékének azt a fájlt kell megadnunk bantartó elektronikus levélcíme. a named munkakönyvtárán belül, amelyik az adott zóna le- Lássunk egy példát! írását tartalmazza. Ennek a fenti két kapcsolón kívül további korlátozó kapcso- example.com. 800 IN SOA ns.example.com. lók állíthatók be, mint például az allow-query és az allow- info.example.com. 1234 3600 900 604800 1800 transfer, ezekrõl már esett szó, valamint az allow-update. Ez utóbbinál megadott gépek vagy gépek csoportja jogosult Példánkban az example.com a SOA rekordja, amit a DNS- dinamikus bejegyzéseket elhelyezni a zónaleíró állomány- kiszolgálók 800 másodpercig tartanak a gyorstárban. Az ban. Erre a dinamikus frissítésre szükségünk lehet, ns.example.com a DNS-kiszolgálója, az [email protected] amennyiben például egy windowsos Active Directory DNS lehet a tartománnyal kapcsolatban levelet írni. Az 1234 kiszolgálását szeretnénk ellátni. a sorszáma, 3600 másodpercenként frissít, 900 másodpercen-

68 Linuxvilág Dobbantó

ftp IN CNAME www

Ugyanakkor azt is megtehetjük, hogy az ftp.pelda.hu kiszol- gálóhoz létesítünk egy bejegyzést ftp.examle.com néven:

ftp IN CNAME ftp.pelda.hu.

Itt hívnám fel a figyelmet arra, hogy amennyiben teljes tar- tományneveket használunk, ne felejtsük le a cím végérõl a pontot. Az utolsó pont ugyanis a fõ (root) szintet jelöli a bejegyzésben. A CNAME-bejegyzéssel lehetõségünk van rá, hogy dina- mikus IP-címmel rendelkezõ géphez saját magunk által bejegyzett tartománynevet regisztráljunk. Mindössze valamelyik dinamikus DNS-szolgáltatónál – pél- dául a  http://www.dyndns.org – szükséges készíteni egy bejegyzést, majd az így kapott tartománynévre kell egy ként történik újrapróbálkozás, ha nem sikerül a mûvelet, CNAME-bejegyzést csinálni a saját DNS-kiszolgálónkban. © Kiskapu Kft. Minden jog fenntartva 604 800 másodperc után jár le a bejegyzés érvényessége, va- lamit legkevesebb 1800 másodpercig érvényes a bejegyzés. AAAA (Address for IPv6) Miután létrehoztuk a SOA-t, lehetõségünk nyílik a többi re- Ugyanazt a feladatot tölti be, mint az IPv4 esetén az kordot meghatározni. Általában a következõ rekordok szok- A, azzal a különbséggel, hogy itt IPv6-os IP-címet kell tak szerepelni egy zónaleírásban. megadni. Egy zóna leírásához használhatók további rekordok is, NS (Name Server) ezekkel további adatokat közölhetünk a rendszerrõl, pél- Ezzel lehet meghatározni a névkiszolgálót. Egy ilyen re- dául a kiszolgálógép felépítését, a használt operációs rend- kordra mindenképpen szükség van. Például: szert vagy akár a földrajzi elhelyezkedést. Utóbbi jópofa dolog, ha grafikus traceroute programok számára fellel- example.com IN NS ns.example.com hetõvé szeretnénk tenni a kiszolgálót. Paranoiás rendszer- gazdák ne töltsék ki ezeket a rekordokat. MX (Mail Exchanger) Ezzel a bejegyzéssel tudunk a tartományhoz levélkiszolgá- A DNS frissítése lót rendelni. Amennyiben rendelkezünk az example.com Amennyiben változás áll be zónában, akkor módosítani tartománnyal, és benne a mail.example.com nevû kiszol- kell a megfelelõ zónaállományt is. De nem elég, ha módo- gálóval, akkor egyfelõl küldhetünk levelet az sítjuk a megváltozott bejegyzést, hanem az adott zónához [email protected] címre, hiszen pontosan megadtuk, tartozó sorszámot is meg kell növelnünk legalább eggyel. melyik gép melyik felhasználójáról van szó. Ha viszont az Miután a zóna leíróját mentettük, a /etc/init.d/named [email protected] címre szeretnénk levelet küldeni, szük- reload paranccsal frissíthetjük a kiszolgálót. Innentõl fog- ségünk lesz az MX bejegyzésre, mert ez mondja meg, me- va pár percen, órán belül elterjed a világban a módosított lyik az alapértelmezett levélkiszolgáló a tartományban. bejegyzés. Létre kell hozunk a következõ bejegyzést: Összegzés example.com IN MX 10 mail.example.com. A DNS-kiszolgálók felépítésérõl, beállításáról rengeteg út- mutatást találhatunk az interneten. Erre legjobb kiindulás Ebben a 10 a kiszolgáló súlyát jelöli, így lehetõségünk nyílik a Google, vagy valamelyik másik nagy keresõ. Maga elsõbbségi sorrendet felállítani a különbözõ kiszolgálók kö- a DNS-szolgáltatás többet is rejt magában puszta név- és zött, ezzel biztosítjuk a megfelelõ levelezési szolgáltatást címfeloldásnál, erre jó példa a grafikus útkeresõ programok üzemzavar esetére is. által nyújtott szolgáltatás, de DNS-en keresztül akár tanú- sítvány- vagy kulcskiosztást is készthetünk. A (Address) A lehetõség adott, mindenki nyugodtan ássa bele magát. Ez a rekord használatos egy adott névhez IP-cím hozzáren- Jelen cikk terjedelme sajnos nem tett lehetõvé bõvebb is- delésére. mertetést, de arra mindenképpen elég volt, hogy áttekintõ képet adjon a DNS elvi és gyakorlati mûködésérõl. www IN A 123.456.789.001 Illés Viktor ([email protected]) CNAME (Canonical Name) 23 éves, a BME mûszaki informatikus szakának Ezzel a bejegyzéssel egy adott A rekorddal társított névhez hallgatója, mellette weblapokkal, linuxos további neveket lehet rendelni. Megtehetjük, hogy az elõbb és windowsos rendszerekkel foglalkozik. létrehoz www.example.com kiszolgálóhoz hozzárendeljük Szabadidejét legszívesebben a szabadban tölti, az ftp.example.com nevet a következõ módon: teniszezik és kerékpározik.

www.linuxvilag.hu 2004. június 69 Dobbantó

Számítógép hálózatok (6. rész) A távbeszélõ rendszerek, modemek, az adatkapcsolati réteg és protokolljaik.

távbeszélõ rendszer hasznos dolog, fõként azért, 1. 1010011011001 mert jó a kiépítettsége. Ha azonban számítógépe- © Kiskapu Kft. Minden jog fenntartva inkkel ezen keresztül szeretnénk kapcsolatot tarta- Digitális jel niA egymással, modem is szükséges hozzá. Miután lerántottuk a leplet e misztikus szerkezetek mûködésérõl, befejezzük a fi- Amplitudó moduláció zikai réteggel való foglalkozást, és egy szinttel feljebb lépünk. A telefonhálózatot annak idején az emberi beszéd továbbí- Frekvencia tására találták ki. Mivel 1876-ban még nem hogy számító- moduláció gép, de digitális technika sem volt, ezért a telefonhálózatok analóg rendszerként mûködtek, azaz a hangot a feszültség Fázis moduláció (vagy egyéb más fizikai jellemzõ) idõbeli változtatásával to- vábbították. A számítógépek sajnos nem tudnak ilyen mó- don kapcsolatot tartani egymással, ugyanis az átviteli köze- jel amplitúdóját változtatgatták a digitális jelnek megfele- gek korántsem tökéletesek. Ez azt jelenti, hogy az analóg jel lõen. Ebben az adat az amplitúdó nagyságában rejlik. útközben megváltozik, azaz nem fog megegyezni azzal, Külön értéket rendeltek a 0-s, és külön értéket az 1-es amit a forrás küldött. Digitális adatátvitelkor csupán két jel- digitális jelhez. szintet használunk, amelyeket akkor is meg lehet különböz- A frekvencia-modulációnál a frekvenciát, a fázisszög-modu- tetni, ha a jelet viszonylag nagy torzulás éri. lációnál pedig értelemszerûen a fázisszöget változtatgatjuk. A digitális hálózatok sok szempontból elõnyösebbek az ana- A modemek többféle modulációs eljárást alkalmaznak, így lógokénál (lásd elõzõ rész), ezért a telefontársaságok is kezd- egyszerre több bitet képesek átküldeni. Például úgy, hogy tek áttérni a digitális átvitelre. Ma már a legtöbb helyen a 0, 90, 180, 270 fokos fázisokhoz két különbözõ amplitúdót a tönkök között digitális vonalakat építenek ki. rendelnek (amplitúdó alatt most az origótól vett távolságot A távbeszélõ hálózat gerince tehát hiába digitális, ha rajta ke- érjük). Ez azt jelenti, hogy 8 kombinációban modulálhatunk resztül két számítógép szeretne kapcsolatot tartani, szükség hullámokat, azaz egy jelváltással 3 bitet vihetünk át. lesz egy olyan szerkezetre, amely a számítógéprõl érkezõ di- A 2. ábrán egy kicsit jobb modulációs sémát vehetünk szem- gitális adatokat analóg jellé alakítja (és ugyanezt fordítva). ügyre. Itt 16 különbözõ amplitúdójú és fázisú értéket hasz- nálhatunk, azaz már 4 bitet is átvihetünk jelváltásonként. A modem Ezt kvadratúra amplitúdó-modulációnak nevezzük, és ezt Ez az eszköz a modulátor–demodulátor, vagy közismer- alkalmazták a 9600 bit/s-os sebességû modemek is. tebb nevén a modem. Fontos, hogy a modem nem egy A 2. ábrához hasonlóakat amplitúdófázis-diagramoknak analóg–digitális, illetve digitális–analóg átalakító. Valójában vagy csillagkép mintázatoknak nevezzük. Minden modem a bemenetre érkezõ digitális jelek alapján modulál egy az- rendelkezik egy ilyen mintázattal, és általában csak zal megfelelõ analóg jelet, illetve a beérkezõ analóg jeleket a megegyezõ mintázatú modemek képesek egymással demodulálja. kapcsolatba lépni. (Habár a gyorsabb modemek tudják Vajon mit is csinál a moduláló? Az analóg jeleket nehéz ke- emulálni a náluk lassabbakat). A 3. ábrán a V.32 bis-nek ne- zelni, mivel frekvenciájuk, amplitúdójuk és nem utolsó sor- vezett szabványt láthatjuk, ezt használják a 14 400 bit/s-os ban fázisszögeik is vannak, és mindezeket az adatok továb- modemek is. bítására is felhasználhatjuk. Digitális jelet úgy továbbítha- A 3. ábrán szemmel láthatóan sokkalta több pont helyezke- tunk, ha az adott digitális jel függvényében megváltoztat- dik el, mint a másodikon. Amikor ilyen sok pontot tartamaz juk az analóg jel valamelyik jellemzõjét. Ezt a tevékenysé- a csillagkép mintázat, akkor elég egy nagyon pici zaj, és get modulációnak nevezzük. máris fennáll az átviteli hiba veszélye. Ráadásul egyszerre 6 Az 1. ábrán példát láthatunk különbözõ modulációs eljárá- bitet kapunk hibásan, mivel ennyi bitet tudunk átvinni jel- sokra. A felsõ sorban a négyszöghullámot, azaz magát a di- váltásonként. A gyorsabb modemeknél a helyzet sokkal sú- gitális jelet látjuk. A második sorban láthatjuk, hogy a jel lyosabb lehet, ezért a zajszint csökkentése érdekében a ren- „átesett” egy amplitúdó-moduláción, ennek során az analóg delkezésre álló 3000 Hz-es sávszélességet felbontják 512

70 Linuxvilág Dobbantó

2. 3. Külsõ vagy belsõ? A modemeket két alapvetõ csoportba foglalhatjuk. Az elsõ a külsõ modemek családja, ezeket a szabványos soros ka- pun keresztül kapcsolhatjuk a számítógéphez. A modem és a számítógép között az átvitel digitális módon zajlik. Ennek módját az RS-232-C nevû szabvány rögzíti, mely egy 25 tûs csatlakozót ad meg. Az összes tûhöz tartozik egy szolgálta- tás, de valójában mindenhol csak 9 kerül megvalósításra. A legtöbb esetben a többi tût el is hagyják. A logikai 0-t a -3 V – -15 V tartományba esõ feszültségek, míg a logikai 1-et a +3 V és +15 V közötti feszültségek jelentik. Egy mode- met és egy számítógépet összekötõ RS-232-es kábel legna- keskeny csatornára. Ha egy csatorna túlságosan zajossá gyobb hossza 15 méter lehet, és nem igazán érhetünk el lesz, akkor egyszerûen ki kell iktatni. Az ilyen megoldások rajta 20 kb/s-nál nagyobb sebességet. azt feltételezik, hogy a modem maga is processzorral ren- Nézzük, miként is zajlik az adatátvitel az RS-232 szabvány delkezik, így nemcsak a sebességüket, de árukat tekintve is szerint. Mindegyik tû egy-egy feladatot lát el, például vala- magasabb kategóriába tartoznak. mit jelez. A 20-as tû azt jelzi, hogy a számítógép be van kap- A mai modemek már maguk is tartalmaznak hibajavító csolva. A modem készenlétét a 6-os tû jelzi. Például, ha © Kiskapu Kft. Minden jog fenntartva és tömörítõ szolgáltatásokat, ezáltal nem kell módosítani a számítógép adatot kíván küldeni a modemnek, akkor akti- a meglévõ programokat nagyobb sebesség elérése érdeké- válódik az adáskérés jel, erre a modem az adásra kész jellel ben. A tömörítés alapfeltétele a hibajavítás, ezért általá- válaszol. Ezután megkezdõdik a 2-es tûn az adatok vétele. ban ezt a két feladatot szokás foglalni. A legnépszerûbb Látható, hogy ez nem egy túlzottan bonyolult protokoll. ilyen szabványok a Microcom által kifejlesztett MNP és Két számítógépet összeköthetünk az RS-232-C csatolóján, a V42bis. azaz a soros kapujukon keresztül. Ilyenkor egy nullmodem- Érdekes, ám a modemek életét megkeserítõ jelenség a vissz- kábelre van szükség. hanghatás. Az elektromágneses hullámok is visszaverõd- A külsõ modemek külön lyukat igényelnek a konnektor- nek. Ilyesmi történik például akkor is, mikor telefonálás ban, ráadásul az asztalon is helyet foglalnak, ezért idõvel közben kis késleltetéssel saját hangukat halljuk vissza. megjelentek az úgynevezett belsõ modemek, amelyek ISA A hullámok ugyanis visszaverõdnek az elõfizetõi hurok le- vagy PCI csatlakozófelülettel bíró kártyák. Az ilyen mode- zárásánál. A visszhanghatás igazából csak akkor érzékelhe- mek vezérlõi sokkalta bonyolultabbak, mivel nemcsak a ha- tõ igazán, ha nagy távolságra van tõlünk, akivel beszélge- gyományos modemfeladatokat kell megvalósítaniuk, ha- tünk. Ha ugyanis kicsi a távolság, akkor a visszaverõdõ jel nem például a csatlakozófelület kezelését is. hamarabb visszaér hozzánk, mint észrevennénk. Az ilyen vezérlõ nagyon drága, a piacon pedig éles verseny A gond valójában nem a jelenséggel, hanem az õket csilla- folyt, így a gyártók arra törekedtek, hogy az õ termékük le- pítani próbáló visszhang-elnyomókkal van. Ugyanis sok gyen a legolcsóbb a piacon. A költségeket úgy lehetett csök- embert zavar, ha telefonálás közben saját hangját hallja kenteni, hogy a vezérlõkre csak a legalapvetõbb feladatokat vissza, ezért a telefontásaságok a 2000 km-nél hosszabb vo- bízták, a többit a processzorral, azaz programból megvaló- nalakra visszhang-elnyomókat telepítettek. Ez egy olyan sított módon valósították meg. Nagy hátránya az ilyen esz- szerkezet, amely képes érzékelni, ha az egyik irányból em- közöknek, hogy a megfelelõ kezelõprogram nélkül sem- beri hang érkezik. Ilyenkor nem engedi át a másik irányból mit sem érnek. Ráadásul ezeket a programokat elõször érkezõ jeleket, ezáltal megszûnik a visszhanghatás. Amikor csak Windowsra készítették el, így más rendszer (például az egyik fél befejezte a mondandóját, és a másik fél veszi át Linux) alatt használhatatlanok voltak. Ezért rájuk aggatták a szót, akkor a visszhang-elnyomó irányt vált. a WinModem nevet. Az lehet, hogy magunkat már nem halljuk a telefonban, de ezzel duplex átviteli kísérleteinket is keresztülhúzták. Adatkapcsolati réteg A duplex átvitel azt jelenti, hogy adatokat mindkét irányba Legyen most már elég a fizikai rétegbõl és a mûszaki egyszerre továbbíthatunk, például olyan módon, hogy a két nehézségek körbejárásából. Lépjünk egy szinttel feljebb irány különbözõ frekvenciatartományt használ. Ha vissz- és nézzük meg, miként is mûködik az adatkapcsolati ré- hang-elnyomót telepítettek a rendszerbe, akkor csak fél- teg, amelynek nincs más feladata, mint a megbízható és duplex átvitel oldható meg, ami olyan mint az egypályás hatékony kapcsolat létrehozása két szomszédos számító- vasúti sín: egy idõben csak az egyik irányba mehetnek rajta gép között. A „szomszédos” szó azt sejteti, hogy a két az adatok. masina egymáshoz elég közel, például egy közös szobá- Sok országban ezért úgy módosították a visszhang-elnyo- ban helyezekedik el és vezetékkel össze vannak kötve. mókat, hogyha tisztán 2100 Hz-es hangot hallanak, akkor Valójában nem az a fontos, hogy egy szobában vannak-e, maguktól kikapcsolnak. De jelenleg nagyon kevés helyen illetve hány vezetékkel kapcsolódnak egymáshoz. Az találunk ilyet, ugyanis a telefontársaságok attól félnek, hogy sem baj, ha két különbözõ földrészen találhatók és tele- a felhasználók így megzavarhatják a rendszer mûködését. fonhálózaton keresztül, modemek segítségével tartják A visszhang-elnyomók helyett inkább visszhangtörõket a kapcsolatot. A hangsúly azon van, hogy a kapcsolattar- használnak, amelyek megbecsülik a visszhang nagyságát, tás csatornája „vezetékszerû”, azaz minden bit a küldés és az átmenõ jelbõl „levonják”. sorrendjében érkezik meg.

www.linuxvilag.hu 2004. június 71 Dobbantó

Az egyik gép egymás után küldi a biteket, a másik fogadja a fajta összeköttetés csak nagyon jó minõségû csatorna ese- õket, és nem fordulhat elõ olyan eset, hogy egy bit meg- tén használható, amelyen viszonylag kevés a hibaarány. elõzzön egy másikat. Ez a világ legegyszerûbb protokollja. Ha kicsi a hibaarány, elegendõ a felsõ rétegekben elvégezni Vajon miért kell foglalkoznunk ezzel? Igazából nem lenne a hibakezelést. semmi gond, és egybõl ugorhatnánk is a hálózati rétegre, Ezt a fajta összeköttetést érdemes használnunk akkor is, ha minden tökéletes lenne: az adatok nem vesznének el, amikor inkább az a fontos, hogy az adatok ne késsenek, nem lenne az adatátviteli sebességnek korlátja, minden bi- minthogy hibátlanul érkezzenek, például a beszéd- vagy tet késleltetés nélkül tudnánk küldeni, és végül de nem videoátvitelnél. Ha akadozik az átvitel, a mûsor élvezhetet- utolsó sorban minden számítógép megegyezõ sebességgel lenebb, mintha egy-egy képkocka hibásan érkezik át. dolgozna. De sajnos a dogok nem ilyen egyszerûek. Ennél kicsit megbízhatóbb szolgálat a nyugtázott összeköt- Mivel az adatokat csak véges sebességgel tudjuk továbbíta- tetés nélküli szolgálat. Itt már a megérkezett kereteket ni, és nem nulla késleltetéssel lehet küldeni biteket, komoly nyugtázni lehet, így a forrás értesülhet róla, hogy sikeresen meggondolásra kényszerít bennünket, ha valóban hatékony célba értek-e az általa küldött adatok. Ha egy nyugta nem hálózatot szeretnénk létrehozni. Arról nem is beszélve, érkezik meg adott idõn belül, akkor a kérdéses keretet újra hogy rendkívül kellemetlen, ha a forrás gyorsabban küldi el kell küldeni. az adatokat, mint ahogy azt a vevõ gép feldolgoni képes. Nagyon-nagyon fontos, hogy az adatkapcsolati rétegnek Az átviteli hibák is gondot okozhatnak, fõleg, ha nem tud- valójában nem lenne feladata a nyugtázás. Igazából nem © Kiskapu Kft. Minden jog fenntartva juk felismerni és kijavítani õket. Ezeket a felsõbb rétegekre követeli meg tõle sem az OSI, sem egyéb más szabvány. is bízhatjuk, de ha túl sok van belõlük (mert mondjuk, Az egész csak a hatékonyság szempontjából hasznos. rendkívül zajos a csatorna), teljesen használhatatlanná vál- A helyi hálózatokon a gépek üvegszálas vagy koaxiális ká- na hálózatunk, hiszen lehet, hogy csupán egy bájtot kellene belekkel vannak összekötve egymással, ezért nagyrészt újra küldeni, és nem az egész 1 KB-os csomagot. a nyugtázatlan összeköttetés nélküli szolgálatot választják. Ha viszont vezeték nélküli eszközöket használunk, a nyug- Az adatkapcsolati réteg szolgáltatásai tázott összeköttetés nélküli szolgálatot érdemes alkalmazni. Sorozatunk legeslegelsõ részében már volt róla szó, hogy Létezik egy harmadik szolgálat is, mégpedig az összekötte- minden réteg a felette levõnek végez el bizonyos feladato- tés alapú. Az összeköttetés alapú azt jelenti, hogy a forrás- kat. Ezért minden réteg rendelkezik egy jól meghatározott és célgép az adatcsere megkezdésekor felépítenek egy kap- csatolófelülettel, a felsõbb réteg ezen keresztül tartja a kap- csolatot. Amikor ez a kapcsolat létrejön, az adatkapcsolati csolatot vele. réteg felelõsséget vállal azért, hogy minden elküldött keret Sok hálózati megvalósítás nem tesz különbséget bizonyos megérkezik, de pontosan csak egyszer. A nyugtázatlan rétegek között, például az elsõ három réteg gyakran egy összeköttetés nélküli szolgálatnál elképzelhetõ, hogy egy- helyen, a gép belsejében található. Mi azonban azt mond- egy keret elvész. A nyugtázott, ám összeköttetés nélküli tuk, olyan módon képzeljük el a dolgokat, hogy minden szolgálatnál az elveszett keret ugyan pótlódik, de a nyugta réteg egy teljesen különálló részt alkot, például mindegyik nem, így ha az vész el, akkor egy keret akár kétszer vagy egy-egy folyamat, amelyek egymással párhuzamosan fut- többször is megérkezhet. Az összeköttetés alapú szolgálat nak. Ez a szemlélet sokkal könnyebben átlálthatóvá teszi esetében minden keret számot kap, és az összes keret a kül- a hálózatok mûködését. dés sorrendjében fog megérkezni. Azt se felejtsük el, hogy minden réteg csak egymással áll Látni fogjuk, hogy az összeköttetés alapú kapcsolat megvaló- kapcsolatban, vagyis az A gépen futó adatkapcsolatiréteg- sítása nem egyszerû. Az ilyen átvitelek mindig három részre folyamat nem fog soha kapcsolatba lépni a B gép hálózati bonthatók: a kapcsolat felépítése, a tényleges adattovábbítás rétegével. Másik fontos dolog, hogy a rétegek sosem foglal- és a kapcsolat lebontása. Az elsõben a kezdõ értékek iniciali- koznak azzal, hogy az alattuk levõ réteg mit csinál. Az adat- zálódnak, ezek szükségesek hozzá, hogy a fent leírtakat be- kapcsolati protokoll tehát nem fog azzal törõdni, hogy az tarthassuk. Ehhez viszonylag sok változót és számlálót szük- adatok milyen csatornán is jutnak át a másik géphez. Õ séges alkalmaznunk, amelyek erõforrásokat igényelnek, és csak annyit tud, hogy az általa elküldött bitsorozat a másik a kapcsolat lebontásakor fel kell szabadítanunk õket. gépen – a küldés sorrendjében – meg fog jelenni. Ezt a szolgálatot gyakran használják a forgalomirányításért Ennek fényében nézzük meg, milyen szolgálatásokat is felelõs kódok, ha nem akarnak foglalkozni azzal a lehetõség- nyújt a hálózati rétegnek. Az, hogy melyek ezek, rendszer- gel, hogy esetleg az általuk küldött csomag valahol elveszhet. rõl rendszerre változik, de három általános szolgáltatást Írásomban röviden összefoglaltam, milyen szolgáltatásokat mindenhol megtalálhatunk: nyugtázatlan összeköttetés nél- kell nyújtania az adatkapcsolati rétegnek a hálózati réteg fe- küli szolgálat, nyugtázott összeköttetés nélküli szolgálat, lé. A következõ részben a megvalósítás kérdéseit taglaljuk, nyugtázott összeköttetés alapú szolgálat. valamint szót ejtünk a keretezésrõl, a hibajavításról, illetve Ezek közül az elsõ a legegyszerûbb szolgáltatás. Itt tulaj- a forgalomszabályozásról is. donképpen nincs másról szó, mint két gép úgy küld egy- másnak kereteket, hogy nem vár semmiféle visszajelzést. Garzó András ([email protected]) Nem foglalkoznak így sem a kapcsolat felállításával, sem Körülbelül három éve foglalkozik Linux- és más Unix-rendsze- annak lebontásával. Ennek egyszerû a következménye, rekkel. Legjobban az operációs rendszerek lelkivilága érdekli, hogyha egy keret a vonalon fellépõ zaj miatt megsérül, de nyitott egyéniség. Kedvenc étele a palacsinta, és van egy esetleg el is vész, a forrás errõl sosem fog értesülni, és a sé- Richard nevû macskája. Minden észrevételt, megjegyzést, rült rész ismételt küldésére sincs mód. Egyértelmû, hogy ez levelet szívesen fogad.

72 Linuxvilág Falatka

EZGallery The Gallery Aewan Itt egy választható megoldás arra az Nevébõl sem nehéz kitalálni, hogy Egy curses alapokra épülõ, szöve- esetre, ha olyan kiszolgálón szeret- ezúttal mi akadt az utunkba: egy ges módú ASCII art szerkesztõrõl van nénk elhelyezni a galériánkat, ahol képgaléria program, amely arra szó, amely nagyjából ugyanazt tudja, nincs PHP-támogatás. Az EZGallery hivatott, hogy számítógépen tárolt mint egy XPaint, csak épp mindezt egy olyan alkalmazás, amelynek segít- képeink elérhetõk legyenek a weben. szövegesen, karakterekbõl összera- ségével elõre összeállíthatunk egy A programhoz tehát szükség van egy kott képekkel. A felhasználó a kur- galériát: nagyjából ugyanazokat a webkiszolgálóra. A telepítés után a zormozgató nyilakkal mozoghat a mûveleteket végezhetjük el vele, mint galéria feltöltése is ezen a webfelü- képen, és közben a billentyûk lenyo- a The Gallery nevû program segítsé- leten lehetséges. Az alkalmazás önmû- másával „rajzolhat” egy karaktert. gével, de mindebbõl semmit nem ködõen hozza létre az indexképeket, Párbeszédablakok állnak a felhaszná- veszünk addig észre, amíg azt nem és támogatja a képek átméretezését, lók rendelkezésére, amelyekkel meg- mondjuk a programnak, hogy hozzon forgatását, sorba rendezését, felcímké- adhatja az elõtér és a háttér színét, létre állandó (statikus) HTML-oldala- zését, és minden egyéb hasonló mû- de ez mind semmi. A program réte- kat, felépítve ezzel a galériát. Ha ez veletet. Ha készen vagyunk, felhasz- geket kezel, lehetõvé teszi az átlátszó megvolna, már csak el kell helyezni nálói szinteket meghatározva meg- rétegek alkalmazását, ezenkívül az egy kiszolgálón a kész weboldalt. adhatjuk, hogy ki szerkesztheti, s egyes rétegeket különbözõ képkoc-  http://friant.org/spigot milyen mértékben a galériát. Ezek kákként is felhasználhatjuk, így le- © Kiskapu Kft. Minden jog fenntartva után nincs más dolgunk, mint a nagy- hetõségünk van ASCII art animá- OSRAIDS – Online szolgáltatás- érdemû elé tárni webgalériánkat. ciók készítésére is. A program fájlfor- rögzítõ, számlázó és dokumentáló  http://gallery.sourceforge.net mátuma rendkívül egyszerûen ele- rendszer mezhetõ, így gyerekjáték megjelenítõt írni hozzá. Ha kisvállalkozásod elsõsorban szol-  http://aewan.sourceforge.net/ gáltatásokkal foglalkozik, és szeretnéd nyilvántartani, hogy egy-egy ügyféllel MoviX vagy tervezettel mennyit foglalkoztál, Egy olyan alkalmazásról van szó, majd a számlát ennek alapján szeret- amely multimédia-lejátszóvá alakítja néd megírni, akkor számodra az át a gépünket. Félreértés ne essék, ez OSRAIDS nagy segítséget jelenthet. nem túlzás: ha a MoviX programmal Neve megtévesztõ, nem számlázó- indítjuk a gépünket, egy felhasználó- programról van szó. Sokkal inkább rsnapshot barát menüt kapunk, amellyel lehe- idõnyilvántartó rendszerrõl beszél- Nem egy helyi, illetve távoli biztonsá- tõségünk nyílik mindenféle videókat, hetünk, amellyel számlázni is lehet az gi mentéseket készítõ csomagot láttam DVD-ket, VideoCD-ket lejátszani a ügyfeleknek, s amely a legtöbb kis- már, de messze ezt a legegyszerûbb gépünkön az MPlayer segítségével. vállalkozásnál biztosan kiváló meg- beállítani és használni. A tárolást Egyszóval egy önálló operációs oldásnak bizonyul. Az FPDF csomag közvetlen hivatkozások segítségével rendszerrel van dolgunk, amely telepítését követõen PDF állományok végzi, vagyis ugyanazt a fájlt nem ugyan semmi komolyat nem tud a készítésére is mód nyílik. Futtatásához menti kétszer, amivel rengeteg helyet videolejátszáson kívül, de azt olyan szükséges: PHP támogatással ellátott takaríthatunk meg. A mentések egyszerûen teszi, hogy akár a nagy- webkiszolgáló, PHP MySQL-támoga- tetszõleges gyakorisággal elkészít- papát is megtaníthatjuk a kezelésére. tással, MySQL, FPDF (elhagyható) és hetõk, a távoli mentésekhez SSH-t Az operációs rendszer egyébként webböngészõ. használ. Futtatásához szükséges: Perl, teljes mértékben a memóriába töltõ-  http://lathama.org/osraids rsync és SSH (elhagyható). dik, ezért még merevlemezre sincs  http://www.rsnapshot.org szükségünk. SMB Web Client  http://movix.sourceforge.net Eme kis program segítségével grafiku- UMLet 3 san böngészhetünk a helyi hálózato- Egy egyszerû Java alapú UML-diagra- David A. Bandel kon elérhetõ windowsos (SMB) meg- mokat rajzoló alkalmazásról van szó, ([email protected]) osztások között. Az alkalmazás igazá- melynek fontosságát csak az ismeri, Jelenleg Panamában él, ból egyetlen PHP parancsfájlból áll, aki fejlesztett már, vagy akinek sür- Linux- és Unix-tanács- amely a helyi gépen található gõsen le kellett adnia valamilyen UML adással foglalkozik. smbclient csomag részeként elérhetõ témájú házi feladatot. Lehetõvé teszi programokat használja, s a kimene- a diagramvázlatok gyors elkészítését, tükbõl weboldalt készít. Nekünk nincs majd könnyedén menthetjük õket Komáromi Zoltán más dolgunk, mint a letöltött PHP SVG, JPEG és PDF formátumokba. ([email protected]) parancsfájlt a webkiszolgálónkkal Mindezen felül még egy igen gyors 23 éves, a BME hallgatója, megjeleníteni, s máris kezdõdhet szövegalapú felületet is kínál a fel- mellette PHP-programozó- a fájlböngészés. használók számára. ként dolgozik. Kedvenc  http://www.nivel0.net/SmbWebClient  http://www.umlet.com területe a multimédia.

www.linuxvilag.hu 2004. június 73 Fogadó a Linuxhoz

Csillogó mütyürök rendszergazdáknak? Ne egyszerûen csak figyeljük rendszernaplóinkat, hanem néhány grafikus eszközzel tegyük látványossá is kimutatásainkat!

© Kiskapu Kft. Minden jog fenntartva udod, François, a Linux-rendszer felügyelete igazá- ból arról szól, hogy mennyi adattal bírunk a fel- ügyelt rendszerrõl. Ha csak arról van szó, hogy mi isT történik a kiszolgálónkon, a túl sok adat az éppen megfe- lelõ mennyiség. Igen, mon ami, viccelek, de rejlik némi igazság e kijelentésben. Minden Linux-rendszer – akár ki- szolgálón, akár asztali gépen fut – rendelkezik egy folyama- tos adatforrással, amely szünet nélkül ontja a statisztikai adatokat a processzor-terheltségrõl, a memória- és lemez- helyfoglalásról, és a rendszernaplók folyamatosan rögzítik õket. Emlékszel ugye azokra a naplófájlokra, François, ame- lyek naplózzák a levélforgalmat, az FTP- és webátviteleket, a szolgáltatások indítását és leállítását. Sok eseménnyel kell lépést tartani, ezért alapvetõ fontosságú, hogy ehhez meg- felelõ eszközökkel rendelkezzünk. Quoi? Úgy néz ki, mint egy tetszetõs mütyürke? Nos az is, François. Senki nem mondta, hogy a rendszerünkön zajló 1. kép A SuperKaramba-motívumok hasznos információkkal szolgálnak folyamatok nyomon követése ne lehetne szórakoztató, az és még jól is mutatnak ízlésességrõl nem is beszélve. De hagyjuk most ezt abba, a vendégeink bármelyik percben itt lehetnek, addigra ké- ról. Ha ez felkeltette az érdeklõdésünket, szerezzük be szen kell állnunk. Mon Dieu, már meg is érkeztek! Foglalja- Adam Geitgey SuperKaramba nevû programját. A Karamba tok helyet, mindjárt küldöm François-t a borért. Hozd fel elõtt álló super jelzõ esetleg olyan gondolatot ébreszthet va- a 2000-es Chablis Les Clos-t! Vite! lakiben, hogy a csomagnak létezett korábban elõdje, és va- Helyezzétek magatokat kényelembe, mes amis! Mostani írá- lóban. Az eredeti Karamba szerzõje Hans Karlsson. Ha látni som témája a rendszerfelügyelet, és tudjuk, hogy aki bármi- szeretnénk egy csodásan elfoglalt SuperKaramba-asztalt, lyen számítógépet használ – legyen az akár csak egy ottho- vessünk egy pillantást az 1. képre. ni rendszer – a saját gépének a rendszergazdája. Ti vagytok A legfrissebb forráskódot a SuperKaramba honlapjáról a fõnökök, mes amis. Olykor sokak fõnöke, máskor csak (http://netdragon.sourceforge.net) tölthetjük le. A csomag a magatok urai. Mindnyájan tudjátok, hogy mit szoktak lefordítása a sokak által jól ismert ötlépéses kicsomagoló– a rendszergazdákról mondani, non? Egy jó rendszergazda fordító eljárással ekképpen fest: mindenrõl tud, és ezt folytatva azt is tudjuk, hogy minden tudás segítõ kezet nyújt a rendszergazdai teendõk elvégzé- tar -xzvf superkaramba-0.33.tar.gz séhez. Habár furcsán nézne ki egy százkezû rendszergazda, cd superkaramba-0.33 mégis biztos vagyok benne, hogy sokan látnák ennek elõ- ./configure --prefix=/usr nyeit. Ennek oka a mai menü furcsasága, amelyben olyan make grafikus eszközöket fogok bemutatni nektek, melyek su -c "make install" a rendszerünkhöz adott mütyürkék segítségével hivatottak minket adatokkal ellátni. A csomag forráskódjának fordításához szükségünk lesz Habár a munkaasztalunkon lévõ tapéta is érdekes lehet, de a Python fejlesztõi programkönyvtárakra. Azok, akik szeret- ugyanígy dinamikus alkalmazásokat is helyezhetünk a hát- nék magukat megkímélni ezektõl a fordítási lépésektõl, térbe. Például képzeljünk el az asztalon egy olyan kijelzõt, a SuperKaramba oldalon találhatnak számos rendszerválto- amely a háttérben folyamatosan tájékoztat a processzor ter- zathoz elõre fordított csomagokat. Ha a SuperKaramba for- heltségérõl, a szabad lemezhelyrõl és a hálózati forgalom- dítása mellett döntünk, és a KDE 3.2-es változatát használ-

74 Linuxvilág Fogadó a Linuxhoz © Kiskapu Kft. Minden jog fenntartva 2. kép A SuperKaramba indítóképernyõje 3. kép Éppen a Micromon rendszerstatisztikái lebegnek az asztalunkon juk, furcsa jelenséget tapasztalhatunk. Elõfordulhat, hogy hogy Kelly a 16-os asztalnál Flavio Gargiulo Micromon ne- mostanáig már javításra került a hiba a forráskódban, de vû motívumát (3. kép) szeretné betölteni, amely Simon Ask a motívumok mindig az elõtérben helyezkednek el, és ily Ulsnes Minimonjának egy továbbfejlesztett változata, és módon akadályozzák az egyéb aktív ablakokat. Ennek kija- tar és gzip tömörített csomag formájában érkezik. Kelly vításához az src könyvtárban lévõ karamba.cpp fájlt kell át- a következõt tenné: szerkesztenünk, miután a forráskódot kibontottuk. Keres- sük meg az alábbi sort: cd ~/Karamba_dir KWin::setType(winId(), NET::Dock); tar -xvf 8722-micromon-1.0.tar.gz

Majd tegyük hatástalanná a megjegyzést jelölõ kettõs perjel Ha pedig a 9-es asztalnál ülõ Jon elhatározása az, hogy segítségével az alábbi módon: Matti Liquid Weather motívumát (4. kép) telepítse, amely // KWin::setType(winId(), NET::Dock); bzip2-vel csomagolt tar-állományként érhetõ el, az alábbi parancsot használná: Meg is volnánk. Fordítsuk le a forráskódot, és máris mûködik. A SuperKarambát a parancssorból a superkaramba pa- cd ~/Karamba_dir ranccsal indíthatjuk. A program a rendszeremen a KDE tar -xjvf lwp-1.9.tar.bz2 Utilities menüjében is megjelenik. A program indulásakor egy ablakot láthatunk, amely három lehetõség közül enged Talán egy idõjárás motívum nem kapcsolódik szorosan választani (2. kép). Mon Dieu! François, gyorsan hozd ide a rendszergazdai teendõkhöz, de neked, Jon, tetszeni fog. azt a bort és töltsd tele a poharakat. Úgy tûnik, valamilyen Mindenesetre további telepítési vagy fordítási lépés szük- Python mégiscsak besettenkedett a kódba. ségtelen, csak ki kell csomagolni az állományokat és készen Az Open-re kattintva nyílik lehetõségünk a már telepített is vagyunk. Ezt követõen már csak a telepítési könyvtárra bõrök kiválasztására. Írásom idõpontjában a SuperKaramba kell ráállnunk és a .theme kiterjesztésû fájlt kell megkeres- honlapjának témákat kínáló oldala még nem készült el, nünk. Kattintsunk erre a fájlra majd az OK gombra. A mo- ehelyett a KDE-Look.org oldalra irányította az embert. A bal tívum elindul és megjelenik az asztalunkon. További mo- oldali menüben a „Karamba” szót kell keresnünk. Az egyes tívumok betöltéséhez sem szükséges újra kiadnunk motívumok (a Karamba alá írt eszközök – a ford.) különbö- a superkaramba parancsot, elegendõ, ha a jobb gombbal zõ tulajdonságok szerint rendezettek, ezeket a lista feletti a pillanatnyi motívumon kattintanunk és a megjelenõ me- fülekre kattintva választhatjuk ki. Böngészhetjük a leg- nübõl az Open new theme (új motívum megnyitása) menü- újabb, vagy a letöltések alapján legnépszerûbb, illetve legsi- pontot kiválasztjuk. A pillanatnyi motívumon végrehajtott kerültebb tételeket. jobb egérkattintással más lehetõségeket is elérhetünk, pél- Minden Karamba-motívumhoz találhatunk egy képernyõ- dául a jelenlegi motívum vagy beállítófájljának szerkesztése képet, ezeket le is tölthetjük. Válasszunk ki egy számunkra is közéjük tartozik (5. kép). A motívumfájlok rendszerint megfelelõt, majd töltsük le és csomagoljuk ki a tar-csomagot könnyen olvashatóak és egyszerû módosítási lehetõséget egy megfelelõ alkönyvtárba. A csomagok némelyike a tar kínálnak. Például a Micromon motívumot (1. kép) úgy mó- és gzip, egyesek pedig a tar és bzip segítségével lettek be- dosítottam, hogy a saját lemezfelosztásomat (partition) jele- csomagolva. Nincs szigorú szabály a motívumok helyére nítse meg, ne a szerzõ által meghatározottakat. A könnyebb vonatkozóan, a megnyitásukat végzõ párbeszédablak segít- olvashatóság érdekében a betûméretet is megnöveltem. ségével bárhol megtalálhatjuk õket. Én egy Karamba nevû Egy motívum asztalon történõ mozgatásához az ALT billen- alkönyvtárt hoztam létre a fájlok tárolására. Tegyük fel, tyû nyomva tartása mellett kattintsunk a motívumon az

www.linuxvilag.hu 2004. június 75 Fogadó a Linuxhoz

4. kép A Liquid Weather motívum módosítható, így bármilyen helyrõl 5. kép A SuperKaramba .theme fájljának szerkesztése © Kiskapu Kft. Minden jog fenntartva képes idõjárásjelentés készítésére

egér bal gombjával, majd húzzuk a motívumot az asztalon kat munkájuk elvégzésében, s itt számos zenekezelõ eszköz arra a helyre, ahova tenni szeretnénk. Az elhelyezkedés és multimédiás programocska közül válogathatunk. adatai a saját könyvtárunk .superkaramba alkönyvtárában Más motívumok pusztán a szórakoztatásunkat szolgálják, lévõ .rc fájlban tárolódnak. Például az enyém ezek közé tartozik a Reverant2501 másodperceket is mutató a /home/marcel/.superkaramba könyvtárban található. Mie- TubeClock órája, melynek láttán az idõsebb olvasók kelle- lõtt valaki úgy döntene, hogy megnézi az egyik futó motí- mes nosztalgiát érezhetnek, a fiatalabbak pedig vélhetõleg vumának .rc fájlját, szólnom kell egy érdekes jelenségrõl. dögösnek fogják találni. A hasznosabb csomagok, például Az .rc fájl mindaddig üres, amíg ki nem kapcsoltuk a motí- a Chip 2003 TDE (T Desktop Enhancements, azaz T asztali vumot vagy ki nem jelentkeztünk a rendszerbõl. A program továbbfejlesztések) programja, számos eszközt kínálnak, kikapcsolása nélküli kiíratás egyik módja, hogy a fájlban amelyek közt találhatunk jegyzettömböt, rendszernapló- jobb egérgombbal kattintunk az éppen futó témán és kivá- nézegetõt, lemez-, memória- és teljesítményfigyelõ eszközö- lasztjuk a Reload theme (a motívum ismételt betöltése) ket. A Chip 2003 a TMon nevû szép rendszerfigyelõ progra- menüpontot. mot is tartalmazza. Még jó néhány programot említhetnék, Íme egy részlet Ryan Nickell skSeti asztali programjából, de már csak egyet szeretnék bemutatni: a The Karamba ez egy olyan kis motívum, amely nyomon követi motívumot, melynek szerzõje artoo. Ez a SuperKarambá- a SETI@home elõrehaladását. hoz írt GkRellm-hez hasonló figyelõprogram, amely egy függõleges ellenõrzõablakban mutatja az összes számunkra [config menu] szükséges adatot. bgImage=false Ezek a SuperKaramba motívumok mind azt szolgálják, hogy a rendszerünkkel kapcsolatos összes szükséges adat- [internal] hoz hozzájussunk és eközben a látvánnyal a szemünket desktop=0 is kényeztessék. Ha egyszer belekóstolunk e motívumok fastTransforms=true használatába, nem lesz nálunk jobban tájékoztatott rend- lockedPosition=false szergazda – bár sajnos elõfordulhat, hogy ugyanezt a mun- kánk eredményességérõl nem lehet majd elmondani. [theme] Megint csak tréfálok, mes amis. Version=0.01 Úgy tûnik, hogy a záróra mindjárt utolér minket, Mon background=bg.png Dieu! De látom, hogy mindnyájan belefeledkeztetek a kü- firstTime=No lönbözõ motívumok telepítgetésébe. Talán François lesz seti_Directory=/home/marcel/setiathome/ olyan jó hozzánk, hogy amíg kísérletezgettek, utoljára tele- widgetHeight=100 tölti a poharainkat. widgetPosX=0 A votre santé! Bon appétit! widgetPosY=0 widgetWidth=100 Linux Journal 2004. május, 121. szám

Sok SuperKaramba motívum található a világhálón. Néhány Marcel Gagné ([email protected]) ezek közül a Kicker panelt helyettesíti, ezek közé tartozik az Ontario állambeli Mississaugában él. Sven Johannsen Glass Machine-ja (amit az 1. kép alján látha- Õ a szerzõje a Válts Linuxra! Búcsú a kékhaláltól tunk). A Glass Machine nemcsak a Kicker lehetõségeinek címû elõkészületben lévõ könyvnek. Elsõ könyve, gyors elérését teszi lehetõvé, hanem az XMMS vezérlését is a nagy tetszést aratott Linux-rendszerfelügyelet kényelmessé varázsolja. Egy kis zene segíti a rendszergazdá- (Kiskapu Kiadó).

76 Linuxvilág Kovácsmûhely

Blosxom

Modulok nélkül, SQL nélkül, gond nélkül. Készítsünk nagyteljesítményû blogot, akár a webkiszolgáló újraindítása nélkül!

weblogok, más néven blogok népszerûsége sokat • $blog_description: a blog leírása, ami az RSS listában nõtt az elmúlt néhány évben. Az 1990-es évek ele- fog megjelenni. © Kiskapu Kft. Minden jog fenntartva A • jén és közepén mindössze néhány ember írt blo- $datadir: a Blosxom weblog valamennyi bejegyzése gokat, mára a bloggolás mint jelenség, uralkodó irányzattá tulajdonképpen nem más, mint a lemezen valahol elhe- lett. Népszerûsége olyan nagymértékû, hogy a New York lyezett szöveges állomány; a $datadir változó mondja Times oldalain is jelent meg e témával foglalkozó írás, mely meg, hol találjuk meg õket. a saját blogokat készítõ fõiskolai hallgatókra összpontosított. E három elem beállítása után weblogom máris mûködõké- Mostanában, hogy a demokrata vezetõk a figyelem közép- pes volt. pontjában állnak, minden jelölt rendelkezik legalább egy hi- vatalos webloggal. A hivatásosok és a vezetõ politikai tudó- Bejegyzések felvitele sítók saját blogokat készítettek, amelyekben nyilvántartják A Blosxom kipróbálását egy introduction.txt nevû egyszerû a jelöltek naplóinak állításait és többnyire elemezik is õket. szöveges állománnyal kezdtem a $datadir könyvtárban. Múlt hónapban a Zope alapú COREBlogot vettük szem- ügyre, ami rendkívül megkönnyítheti saját weblogunk el- Ez egy tesztbejegyzés. készítését. Természetesen a COREBlog használatához ren-

Hello!

delkeznünk kell egy Zope-példánnyal, továbbá az sem árt, ha tudjuk telepíteni és módosítani is a termékeket. Nem Weblognak ugyan nem túl izgalmas bejegyzés, de annál ér- mindenkinek adatik meg az ilyen luxus, ugyanakkor a Perl dekesebb, ahogy mindez meg fog jelenni a weblogon, ki- nyelven írt CGI programok futtatását szinte minden egészítve egy dátum elõtaggal, a szöveg utáni idõbélyeggel, webszolgáltató engedélyezi. a maradandó hivatkozással, az elsõ sor vastagon szedve, Ebben a hónapban a Perl nyelven írt és CGI programként mintha fõcím vagy cím lenne. futtatható Blosxom ( http:/www.blosxom.com) rendszerrel Más szavakkal, a Blosxom weblog rendszerébe új bejegy- foglalkozunk. A Blosxomot Rael Dornfest, az O'Reilly egyik zéseket felvinni egyszerûen csak annyit jelent, hogy az programozója készítette. Elsõ ízben, mint bloggolásra aligha adatkönyvtárban fájlokat hozunk létre. Valamennyi, alkalmas eszközrõl írtam a Blosxomról, feltételezve, hogy a $file_extension változóban megadott kiterjesztésre vég- kis mérete arányban áll képességeivel. A Blosxom ereje zõdõ (azaz alapértelmezés szerint .txt) állomány weblogbe- azonban nemcsak komoly képességkészletében rejlik, ha- jegyzésnek számít. Ebbõl következik, hogy például az Emacs nem fõ vonzereje, hogy e képességek összeválogatását és ~ végzõdésû mentései nem számítanak bejegyzésnek. keverését egyaránt lehetõvé teszi. Ha hozzám hasonló módon gyakran szoktuk menteni, amit írunk, esetleg furcsának találjuk majd, hogy weblogunk írás Telepítés közben változik, és ezt az egész világ azonnal láthatja is. Webkiszolgálók terén kicsit is jártasak számára a Blosxom Amennyiben a háttérben szeretnénk dolgozni, mindaddig telepítése gyerekjáték. Egyetlen, Perl nyelven írt CGI prog- hagyjuk le a .txt kiterjesztést az állományainkról, amíg nem ramot tartalmaz. Például nekem nem kellett mást tennem, kívánjuk kiadni õket. mint a blosxom.cgi fájlt bemásolni a /usr/local/apache/cgi-bin Saját gépemen a Blosxomot a fõ /cgi-bin könyvtárba telepí- könyvtárba, és már mûködött is minden. tettem, így a Blosxom blogokat a http://localhost/cgi-bin/ Természetesen minden programnak szüksége van némi ál- blosxom.cgi címen tudom elérni. lítgatásra, ez alól a Blosxom sem kivétel. Az összes beállítási A Blosxom a bejegyzésekhez tartozó dátumot és idõt a fájl feladatot a program elején található Perl változókon keresz- létrehozási dátumából veszi. Minthogy az állományt febru- tül végezhetjük el. A megjegyzések az egyes változók célját ár 11-én, délután négy órakor készítettem, a weblogbejegy- viszonylag jól meghatározzák. Nálam a következõ Blosxom zés is ehhez az idõhöz tartozik. Ez egyben azt is jelenti, változók átírására volt szükség: hogy a touch parancs segítségével megváltoztathatjuk • $blog_title: a weblog címe, ezt láthatják a felhaszná- a bejegyzéshez tartozó dátumot: lók és az RSS hírügynökségek. touch -t 200401011500 testing.txt

www.linuxvilag.hu 2004. június 77 Kovácsmûhely

A fenti parancs a testing.txt állomány dátumát 2004. január 1-jén három órára változtatja. (Amennyiben a testing.txt ál- Az egotrip.pl lomány még nem létezne, létre is hozza.) Bár ez némiképp ellenkezik a weblogetikett szokásaival, nyilvánvalóan meg- #!/usr/bin/perl oldható feladat. Kicsit érdekesebb, hogy ugyanezzel a paranccsal a weblog- use strict; bejegyzés dátumát a jövõbe is állíthatjuk. Amennyiben use warnings; $show_future_entries változó értéke 1, az ilyen jövendõ- use diagnostics; beli dátummal rendelkezõ bejegyzések mindig láthatóak. Az alapértelmezett beállítás esetében azonban ezek a be- package egotrip; jegyzések csak akkor jelennek majd meg, amikor a valódi dátum megegyezik a hozzájuk rendelttel. Ez azt jelenti, # 1-et adunk vissza, jelezve, hogy a bõvítmény hogy bejegyzéseinket egy adott dátumra és idõpontra idõ- # aktív zíthetjük. sub start { Jellemzõk (flavours) return 1; Ha a Blosxom csak ennyit tudna nyújtani, nem lennék } © Kiskapu Kft. Minden jog fenntartva túlságosan lenyûgözve. De ha kicsit közelebbrõl szem- ügyre vesszük, kiderül, hogy rendkívüli képességekkel # Kiemeli a nevemet bír. Ezeket a képességeket a megjelenítõ sablonoknak sub story { köszönheti (amelyeket brit helyesírás szerinti „falvour”- my ($pkg, $path, $filename, $story_ref, nak, jellemzõkészletnek nevez), valamint annak, hogy $title_ref, $body_ref) = @_; tetszõleges számú bõvítmény (plugin) futtatására képes. A Blosxom rendszert e két képessége rendkívül jól bõvít- $$body_ref =~ s|Reuven|Reuven|g; hetõvé teszi. 1; A Blosxom rendszert két beépített jellemzõvel kapjuk: az alapértelmezett HTML jellemzõkészlettel és az RSS hírügy- } nökséghez szánt, választható RSS jellemzõkkel. Magunk is megtekinthetjük az RSS formátumot, ha a blog URL vé- 1; gére beszúrjuk a ?flav=rss kiegészítést. Ha tehát egyéb- ként a http://localhost/cgi-bin/blosxom.cgi címen érjük el webnaplónkat, az RSS alakot a http://localhost/cgi-bin/ blosxom.cgi?flav=rss kifejezéssel tekinthetjük meg. Egyéb- ként a kért dokumentum végzõdésének megváltoztatásával

is hozzáférhetünk a különféle jellemzõkészletekhez. Így

$title

például a http://localhost/cgi-bin/blosxom.cgi/index.rss címen
az RSS alakot találjuk. $body A Blosxom weboldalán teljes jellemzõkészlet-tárat találunk.

Az alapötlet nagyon egyszerû: az adatkönyvtárunkban, a weblogbejegyzéseink mellett készítünk egy HTML állo- A fenti „flavour” blogunk tartalmát változtatás nélkül he- mányt, amelyet a megváltoztatandó Blosxom-kimenet ne- lyettesíti be a $body változó helyére. Ez módszer egész vével azonos módon nevezünk el. használható, feltéve, hogy a blog szerzõje ismeri a HTML Az állomány utótagja a módosítandó jellemzõkészlet nevé- nyelvet és a bekezdéshatárokat hajlandó kézzel begépelni. vel azonos. A header.html tehát a weblog HTML jellemzõ- Ha viszont azt szeretnénk, hogy az emberek a bekezdés- készletének header elemét változtatja meg, míg a date.blah határokat üres sorokkal jelölhessék, írásukon végig kell a blah jellemzõkészlet dátummegjelenítését befolyásolja. futtatniunk valamilyen programot. Szerencsére a Blosxom A felhasználók az URL-ben megadhatják a kívánt jellemzõ- rugalmas bõvítménykezelõje megkönnyíti az ilyen progra- készlet név–érték-párosát (amint azt az imént is láthattuk), mok elkészítését. az alapértelmezett értéket pedig magában a blosxom.cgi fájl $default_flavour változójával állíthatják be. Minthogy Bõvítmények a blogbejegyzések „txt” utótagra végzõdnek, txt nevû jel- Valamennyi bõvítmény egy-egy Perl program, amelyet lemzõkészletünk nem lehet. a require függvény olvas be és hajt végre. Például Minden egyes jellemzõfájl apró HTML-részletet tartal- a require foo.pl a foo.pl állományt nyitja meg, majd maz, mely az adott állományban megjelenítendõ Perl- a benne lévõ kódot végrehajtja. Általában azt szoktam ja- változónevekkel van megtûzdelve. Például a story jel- vasolni, hogy kerüljük a require használatát, és inkább lemzõfájlok többek közt két értéket kapnak a $title az use kulcsszót alkalmazzuk, amely számos parancsot és a $body változókban. (A teljes listát a Blosxom web- képes végrehajtani, többek közt a require utasítást is. oldalán találjuk.) Ezzel a módszerrel a törzsszöveg elõtt Csakhogy a require futásidõben értékelõdik ki, míg a use álló fejléceket könnyedén nagyobb méretûre és jobbra a fordítás során hajtódik végre, jelen esetben tehát sokkal igazítottra lehet alakítani: egyszerûbb ezzel dolgoznunk.

78 Linuxvilág Kovácsmûhely

A Blosxom feltételezi, hogy minden állomány, amely a tet- nálatával. Ezt figyelembe véve, nem lesz nagy meglepetés, szõlegesen megadható $plugin_dir változó által megadott hogy a nevem elõfordulásait a következõ sorral állíthatjuk könyvtárban található, valóban bõvítmény. A bõvítménye- vastag betûsre: ket ábécérendben tölti be és hajtja végre, ha tehát valamely bõvítményt hamarabb vagy késõbb szeretnénk futtatni, elõ- $$body_ref =~ s|Reuven|Reuven|g; fordulhat, hogy át kell neveznünk. A bõvítmények nem többek egy egyszerû Perl program- Természetesen ezt a lépést kicsit kifinomultabbra is tervez- nál, amelyek egy vagy több alprogramot határoznak hetjük, például önmûködõ hiperhivatkozásokat illesztve meg. Minden bõvítménynek tartalmaznia kell egy start a különféle elemekhez: alprogramot, amely egyszerûen 1-et ad vissza. A Blosxom ennek segítségével tudja megállapítani, hogy a bõvítmény $$body_ref =~ s|(Reuven Lerner)| élõ-e, és készen áll-e a futásra. Számos egyéb bõvítmény $1|g; alprogram létezik, ezeket valamennyi bõvítményben $$body_ref =~ s|(Linux Journal)| megadhatjuk, kezdve a bejegyzésektõl (entries), amelyek $1|g; bejegyzések listáját adják vissza, egészen a történetig (story), ennek segítségével pedig történeteink tartalmát Valójában létezik is ilyen bõvítmény; ez a közösség által módosíthatjuk. A feladatok ilyesfajta lebontásával vezetett Wikipedia hivatkozásait kezeli. Bármely szöveg, a Blosxom hihetetlen mértékû kifinomult testreszabási amelyet [[szögletes zárójelek]] közé helyezünk önmûködõ- © Kiskapu Kft. Minden jog fenntartva lehetõséget kínál, miközben a magkód továbbra is tömör en hálózati referencia könyvre mutató hivatkozássá alakul. és hatékony marad. Figyeljük meg, hogy a jellemzõkészletek olyan HTML- Milyen képességeket nyújthatnak a bõvítmények? Úgy sablonok, amelyekbe Perl-változókat helyettesíthetünk mi- tûnik, tényleg csupán néhány kötöttség létezik. A web- közben a bõvítmények Perl programok. E kettõsség megér- logbejegyzések forrását, a módszert, ahogy e bejegyzéseket tése a megjelenítés és a mûveletek között némi idõt vehet szûrjük, a bejegyzések megjelenítéséhez használt sablono- igénybe, de nem túl bonyolult feladat. kat, a bejegyzéseket, illetve akár a bejegyzések tartalmát Mint azt a korábbi bekezdés-elválasztó példánk is mutatja, egyaránt megváltoztathatjuk. semmi szükség rá, hogy újra feltaláljuk a spanyolviaszt. A Blosxom weboldalán rengeteg bõvítményt találunk. Egyszerûen csak letöltjük a megfelelõ bõvítményt, neveze- Akadnak közöttük olyanok, amelyek más bõvítményektõl tesen a Bloxot, amely a bekezdéseket üres sorok alapján ké- függenek, míg mások, például a naptár (calendar) csak ak- pes elválasztani blogbejegyzéseinkben. A bõvítmény aztán kor jelennek meg, ha a bõvítményt támogató jellemzõkész- kívánság szerinti HTML-elemekkel választja el a bekezdése- letet használjuk. Más bõvítmények azonnal kifejtik hatásu- ket. A Blox szerepel a Blosxom bõvítménytárában is (lásd kat, egyszerûen csak be kell dobnunk õket a bõvítmény- a hálózati források részt). könyvtárunkba. Mint említettem a Blosxom valamennyi bejegyzést és jel- Egyszerû példa az önmagában is használható bõvítményre lemzõkészletet egyazon könyvtárban tárol. Ez számomra az atomfeed, amely az Atom hírügynökség-változatot támo- kicsit zavaró és méretezhetõségi kérdéseket is felvet. gatja. Az Atom az RSS vetélytársa, amit néhány nehézsúlyú Még ha a fájlrendszerem és Perl-csomagom gond nélkül bloggoló és programozó támogat, nem utolsósorban az RSS kezel is ennyi állományt, biztos, hogy mindig valamennyin világában mostanában megjelent egymással versengõ szab- keresztül szeretnék gázolni? Amikor ez valóban kezd gon- ványok miatt. Amennyiben Atom-kimenetet is szeretnénk, dot jelenteni, az entries bõvítmény siethet segítségünkre, nem kell mást tennünk, egyszerûen másoljuk az atomfeed amely külön könyvtárakból keresi vissza az állományokat, bõvítményt a bõvítmény-könyvtárunkba. Saját Atom-válto- s a megfelelõ hozzárendeléseket továbbítja a Blosxom- zatunkat a http://localhost/cgi-bin/blosxom.cgi?flav=atom magnak. vagy a http://localhost/cgi-bin/blosxom.cgi/index.atom URL-re hivatkozva kaphatjuk meg. Összegzés A Blosxom hatékony weblogkészítõ eszköz; sokkal többet Bõvítmények készítése nyújt, mint elsõ pillantásra látszik. A Blosxom tartalmaz egy Listánkon egy egotrip névre keresztelt egyszerû szûrõt talá- könnyen telepíthetõ, játszi módon beállítható, Perl nyelvû lunk, amely a nevemet annyiszor szedi ki vastagbetûvel, CGI programot, de igazi ereje mégis abban rejlik, hogy jel- ahányszor elõfordul a weblogbejegyzésben. Figyeljük meg, lemzõkészletek (flavours, megjelenítõ sablonok) és bõvít- hogy a bõvítménynek saját csomagot kell megadnia; ezzel ményeljárások megfelelõ kombinációjával a megjelenítés biztosítjuk, hogy valamennyi bõvítmény alprogramjai kü- tetszõleges részét lecserélhetjük. lön névtérben maradjanak, valamint a Blosxom el tudja dönteni, hogy a bõvítmény tartalmazza-e az adott modult. Linux Journal 2004. majus, 121. szám A tényleges munkát a story alprogramban végezzük, amit a Blosxom hat értékkel hív meg, a bejegyzésben felhasznál- Reuven M. Lerner ([email protected]) Veterán ható elemek számának megfelelõen. Esetünkben kizárólag web, illetve adatbázis programozási tanácsadó, a bejegyzés törzsének módosítására összpontosítunk, amit jelenleg végzõs tanárhallgató az evanstoni az utolsó, $body_ref nevû változóban találunk. Mint a neve Northwestern University Egyetemen, Illinois is mutatja, a változó skalár mutató, azaz tartalmát visszahi- államban. vatkozással érhetjük el, a kettõs $$ (dollárjel) karakter hasz-

www.linuxvilag.hu 2004. június 79 Játék

A kis játék sem rossz játék Korunk számítógépei egyre fejlettebbek. A gépek erõsebbek lettek, ez magával hozta, hogy a programok is egyre több erõforrást foglalhatnak le maguknak. Így történt ez a játékiparban is. © Kiskapu Kft. Minden jog fenntartva

gyre nagyobb, csillogóbb, és erõforrás-igényesebb 3D-s játé- kok láttak napvilágot. De vajon miE a helyzet a kicsikkel? Ugyanis létez- nek kis játékok is, amelyek méretük el- lenére sokszor nagyobb játékélményt adnak, mint a drága, lenyûgözõ csodák. Ebbõl szemezgettem párat, mégpedig annak alapján, hogy melyiket játsszák a legtöbben a környezetemben.

A legnépszerûbb? A Frozen Bubble az egyik legnépsze- rûbb kis méretû linuxos játék. Számos ismerõsöm lelkesen játszotta a környe- zetemben, én pedig fel nem foghattam, miért is vannak annyira elvarázsolva tõle. Nem bírtam ki sokáig, feltelepítet- tem én is. A mérete igazán nem nagy, mindössze 7 MB helyet foglal. Az apt- get pillanatok alatt lehúzza nekünk az internetrõl, minden valószínûség sze- rint a Perl-SDL csomaggal egyetemben. Telepítése természetesen szintén az ge felé, amellyel majdnem két napot apt-get segítségével történik, a letöltés szenvedtem). Tekintsük át néhány után önmûködõen. A programot fel- szolgáltatását! használóként a frozen-bubble pa- A játék támogatja az egy- és a kétsze- ranccsal indíthatjuk. (Természetesen mélyes játékot. ikont is készíthetünk hozzá.) Utóbbiban ne korunk többjátékos Apró, ám mégis rendkívül szórakozta- (multiplayer) lehetõségeire tessék gon- tó játéknak bizonyult. Engem is elva- dolni, hanem a régi idõk páros játékára. rázsolt, és hóbortommá lett, hogy vé- Ilyenkor a feladat a következõ: a képer- gigjátszom. Nos, ez néha nem is olyan nyõ osztott lesz, mindkét ablakban egyszerû feladat. A teljes játék össze- ugyanaz a pálya van felrajzolva. A fel- sen száz pályát tartalmaz, és ha igazán adat mindkét játékos számára ugyanaz, megfertõzõdik az ember, akár saját pá- valamelyiküknek elõbb kell megtisztíta- a program támogatja a teljes képer- lyákat is készíthet a beépített pályater- nia a pályát, mint a másiknak. A páros nyõs módot is, állítható a grafikai mi- vezõvel. A játékhangulat rendkívüli, játék rendkívül szórakoztató. nõség, a játékos a teljesítményét men- és képes órákra lekötni a játékost. Fõ- Szóltunk a pályaszerkesztõrõl is, en- teni tudja, és beállíthatóak a játékhoz leg akkor igaz ez, ha az ember olyan nek segítségével új pályákat hozha- használt billentyûk. Természetesen pa- pályára bukkan, ami igencsak megiz- tunk létre, illetve módosíthatjuk a já- rancssorból is indítható, melynek kap- zasztja. (Elõfordult olyan is a pálya vé- ték alapvetõ pályáit. Természetesen csolóira a játék leírása részletesen kitér.

80 Linuxvilág Játék

nem tudok FPS-t az „invert mouse” bekapcsolása nélkül játszani). Tehát a Frozen Bubble-hoz hasonlóan (igaz ott nincs is egér lehetõség) a billen- tyûzet használatát javaslom. Ez a két kis játék rendkívül jó, és félel- metes játékélményt nyújt. Gyakorlati- lag bárhol játszható. Az olyan a kisebb gépeken, ahol nincsen 3D-támogatás, vagy igen szerény eszközök bújnak meg bennük (ósdi gépek, régebbi lap- topok), remek választás. Természete- sen rengeteg kisebb játék létezik még Linuxra (a jövõben többet is fogunk szemezgetni belõlük), de ez a kettõ komoly sikert aratott a környeztem- ben, és bevallom (mint nagy FPS ra- jongó) bizony sok idõre engem is © Kiskapu Kft. Minden jog fenntartva a monitorhoz láncoltak. A kis játékok éppen úgy nyújthatnak felhõtlen szó- rakozást, mint nagy és drága társaik. Jó játékot kívánok mindenkinek!

mas ügyességet kívánhat meg a já- Dancsok Zoltán tékostól minden pont megszerzése. ([email protected]) Ezzel természetesen nincs vége a szol- Jelenleg technikai szerkesz- gáltatások hosszú sorának. tõként dolgozik a Természetesen ebben is találunk több- BME-OMIKK-nál, ahol oktat is. játékos módot, azonban – ellentétben a Forzen Bubble-val – ez már valóban hasonlít a megszokott hálózatos mód- hoz. Sõt saját Lbreakout2 kiszolgálót is indíthatunk a játékosok fogadására. Mindehhez rengeteg beállítási lehetõ- ségünk van, a beépített súgó pedig se- Népszerûségi csúcsdöntõ gítõkész bármirõl is legyen szó. Továb- A másik nagy népszerûségnek örven- bi (számomra igen meglepõ) érdekes- dõ játék, az Lbreakout. Ez egy klasszi- ség, hogy a játék támogatja a bõröket kus játék, új köpenybe bújtatva. A cél, (skin) is. Ennek köszönhetõen cserél- hogy a pattogó golyót folyamatosan gethetjük a kinézetet, vagy újat is mozgásban tartsuk, és a kockákat le- meghatározhatunk a játékos számára. bontsuk vele a pályán. Szintén rendkí- Számtalan, közel húsz kinézet közül vüli élmény nyújt, mert játék közben válogathatunk, és bizony olykor nem fõként az ügyességünkre kell hagyat- tudtam eldönteni, melyik a szebb, hi- koznunk. szen a többségük remekül fest. A játék természetesen pontokért A játékmenet is remekül méretezhetõ, zajlik, így egyetlen pillanatig sem például a bónuszok száma és az alap- lehet lazítani. Tovább növeli a játék értelmezett golyó sebessége is megad- variációs lehetõségét, hogy a golyó ható. Ha nem lennénk tisztában vele által eltalált kockák bónuszokat is mit is jelentenek a játékban elõkerülõ tartalmazhatnak. Ez egyaránt lehet szimbólumok, a fõmenü quik help pont, összeg vagy tulajdonság. Pél- pontjában errõl is részletes leírást talá- dául a képernyõ láthatatlan lesz, és lunk. Egyetlen észrevételem van mind- csak a golyó és a padka látható. Két- össze a játék kapcsán: az egér haszná- szer nagyobb lesz a csúszó padka, lata szinte felesleges. Adott ugyan az esetleg éppen feleakkora. A golyó egér használata, de többet hibáztam gyorsulhat vagy lelassulhat, és még vele, mint a billentyûzettel. Lehetsé- sorolhatnám mennyi variációs lehetõ- ges, hogy csak nekem idegen az egér ség adódhat. Szinte megunhatatlan egy ilyen stílusú játéknál. És mint tud- a játék. Magas szinteken pedig hatal- juk, a megszokás nagy úr (a mai napig

www.linuxvilag.hu 2004. június 81