Nos, rendelkezünk egy feltelepített Linux rendszerrel, amelyet már csak be kell állítani a megfelelő működéshez, a telepítés után ugyanis a Linux általában csak szöveges módot ismer és a kiegészítő hardverelemeket sem kezeli kielégítően vagy egyáltalán nem tudja használni.

A Linux grafikus felülete nagyon eltér a Windows grafikus felületétől, egy nyitott szabványon alapul, amelyet X Window System (továbbiakban XWS) néven lehet megtalálni. Az első részben említettem a UNIX filozófiát, amelynek az XWS teljes mértékben megfelel. Nagyon gyakran találkozni azzal a hibával, hogy - valamiféle berögződés miatt :) -az X Window System nevet következetesen X Windows System néven nevezik. Ez utóbbit nagyon hamar felejtsük el!

Régebben a számítógépek nem voltak ennyire elterjedve, nagyon sokba került egyetlen gép is, melynek teljesítménye nem érte el a napjainkban mindenki számára elérhető asztali gépekét sem. Egy ilyen gép kihasználtságát tehát igyekeztek 100% közelében tartani, hogy a szűkös erőforrásokat teljesen ki tudják használni. A legolcsóbb komponens egy számítógép esetén a monitor és a billentyűzet, így érthető okokból egy szerverhez több munkaállomást kapcsoltak, amely utóbbiakat elnevezték konzolnak vagy terminálnak (végpontnak).

Kialakult tehát az ábrán látható hálózati topológia, ahol a szerverhez kötött konzolokon lehetett dolgozni. Ezek a konzolok csak egy billentyűzettel és egy monitorral rendelkeztek, és minden tevékenységüket a szerver végezte, önmagunkban nem voltak semmire képesek. Minden program a szerveren futott, a konzolon csak az eredmény jelent meg és a billentyűzet biztosította az interaktivitást. A UNIX rendszerek kezdetektől fogva képesek voltak több programot futtatni és több felhasználót egyszerre kiszolgálni. Sajnos a személyi számítógépek történelme úgy alakult, hogy még egyszer fel kellett találni a több programot futtatni képes operációs rendszert. Még inkább sajnálatos tény, hogy a felhasználók nagy része egy cég találmányának tartja ezt... :(

A UNIX rendszerek ma is szerver-kliens topológiával dolgoznak, sokkal olcsóbb egy megfelelően erős, de teljes mértékben kihasznált szervert körbevenni olcsó és buta gépekkel, mint megvásárolni és kihasználatlanul hagyni egy tucat drága munkaállomást.

Eleinte csak szöveges módban működtek a terminálok, hiszen a grafikát is ismerő monitor nagyon drága volt. Idővel azonban megjelentek a grafikus felületet kívánó programok számára kifejlesztett terminálok is, de a topológia maradt a régi: a szerver végzett mindent és a konzolon látszott az eredménye. A grafikus programoknak azonban ismerniük kellett a terminálok gyártói által kitalált sok megoldást, hogy megfelelő képet tudjanak alkotni.

Megjelent az igény egy szabványos grafikus terminálra, amely az X Window System nevet kapta. Ezek után csak ezt kellett ismernie egy konzolnak és már nem volt nehéz a programozók sorsa, ha grafikus felületet szerettek volna használni. Az XWS nyitott szabványt az X Consortium (http://www.x.org) vezeti, nagyon sok operációs rendszerre írtak X megvalósítást, sok programcsomag látott napvilágot ezen szabvány alapján. Ezen programok a szabvány alapján hiba nélkül képesen egymással kommunikálni, ezáltal a grafikus programok kimenete platform-független lett. A Linux egyik leginkább elterjedt X megvalósítását az Xfree86 szervezet (XFree86(R) Home to the X Window System) készítette, amely szervezet más operációs rendszerekre is készített XWS rendszert, így például Microsoft Windows operációs rendszerre is.

Az XWS szerver-kliens módon működik, mint ahogy az első ábrán láthattuk szöveges konzolok és a szerver kapcsolatát. Viszont az X szerver a grafikus terminálon fut, az X kliens program pedig a programokat futtató szerveren. Első hallásra talán nehéz ezt megérteni, de gondoljunk csak bele az XWS és az alkalmazott hálózati topológia lelkivilágába. A konzolon nem futhat program, mivel egy gyenge és buta gép, nem tartalmaz tárolóeszközt sem, csak a kiszolgálón futó program által megjelenítendő információkat képes feldolgozni és a monitorra rajzolni, illetve a felhasználó által leütött billentyűkről küld információkat a szerveren futó programnak. A program grafikus igényeit kiszolgáló X rendszer a grafikus terminálon található, ezt nevezhetjük grafikus szervernek is. A grafikus kiszolgáló párja a grafikus kliens, amely az a program, amely a szervert utasítja, ez viszont a szerveren futó program... remélem így már tisztul a kép. :)

Az X szerver és az X kliens hálózaton át végzi a kommunikációt, Linux esetén a TCP/IP protokollt használják, amely tulajdonképpen az Internet alapja. Ez annyit jelent, hogy a világhálóra kapcsolt bármelyik gép lehet X szerver és tetszőleges másik lehet X kliens. Ezt a szabadságot jelenleg nem biztosítja másik grafikus felület megvalósítás.

Felmerülhet a kérdés, hogy az XWS rendszernek milyen kinézete van. A válasz nagyon egyszerű: semmilyen. A megjelenített kép csak az X kliens programtól függ, az X szerver alapesetben egy szürke pontozott háttér, amelyen egy X alakú egérkurzort találunk. Ebből egy újabb hatalmas előny származik, tetszőleges ablakkezelő programot használhatunk, amelyekből szerencsére nagyon sok létezik, így mindenki megtalálhatja a saját igényeinek megfelelőt. Természetesen akárki írhat is egyet magának az egyéniségének megfelelően, hiszen az X alapjait képező szabvány bárki számára nyitva áll. A Linux társadalom pedig örömmel veszi a sokszínűséget növelő programokat: egy rendszer halála ugyanis a programválaszték beszűkülése.

Mint említettem, az XWS hatalmas előnye a platformfüggetlenség, amely nem köti a felhasználót egyetlen operációs rendszerhez, hanem megadja a szabad választás jogát. Példának vehetjük a Microsoft Terminal Server megoldását, amely csak Windows operációs rendszer alatt használható és a zárt fejlesztésnek hála, nem készült el más operációs rendszerre. Ezzel szemben van XWS program Windowsra is, de ezt nem a Microsoft írta, hanem az Xfree86 szervezet.

XWS rendszert használva könnyen előfordulhat, hogy több operációs rendszerből álló inhomogén hálózat teljesen átjárható a grafikus programok számára. Egy kisméretű LAN esetén eléggé kicsi a valószínűsége, hogy az ábrán látható, operációs rendszereket tekintve sokszínű hálózat előáll, amelyek esetén az XWS rendszer a közös nevező.

Ugyanakkor egy TCP/IP hálózaton összekötött X rendszer nagyon hasonlít ehhez a topológiához, ezt más néven a világhálónak is nevezzük.

Érthető biztonsági okokból az X szerverre nem kapcsolódhat akárki a nagyvilágból, hiszen túl sok kapcsolat bármilyen teljesítményű gépet túlságosan lelassíthat. Ezen okból az X szerver határozza meg azon kliensek körét, akik kapcsolódhatnak hozzá. Alapesetben csak helyben engedélyezett ez a kapcsolat, de tulajdonképpen engedélyezhetjük az összes IP címre is (ami nem túl szerencsés).

A fenti ismertető remélem mindenki számára világossá tette, hogy az X Window System egy nagyon aprólékosan kidolgozott rendszer, amelyet felhasználhatunk egy központ nélküli hálózatban; olyan eszköz, amelyet a felhasználók teljes körű hálózati kiszolgálására terveztek, és magán viseli a UNIX filozófia minden jegyét. A következô részben az XWS Linux implementációjának: az Xfree86 programcsomag beállításával részletesen foglalkozunk.