Ugrás a tartalomhoz

Operációs rendszerek mérnöki megközelítésben

Benyó Balázs, Fék Márk, Kiss István, Kóczy Annamária, Kondorosi Károly, Mészáros Tamás, Román Gyula, Szeberényi Imre, Sziray József

Panem Kiadó

3.6. Operációs rendszerek kezelői felülete

3.6. Operációs rendszerek kezelői felülete

Az operációs rendszerek kezelői felülete felelős a felhasználóval történő kapcsolattartásért. A kezelői felületek tipikus feladatai a következők:

  • felhasználói parancsok bevitele, értelmezése,

  • parancsok végrehajtása,

  • eredmények, illetve esetleges hibák közvetítése, megjelenítése.

A felhasználók által használható parancsok típusai:

  • Belső parancsok. Közvetlenül az operációs rendszer kezelői felülete hajtja végre a parancsot.

  • Tárolt (külső) parancsok. Az operációs rendszer kezelői felülete egy önálló programként megvalósított parancsot hív meg. Ezeket a parancsokat két csoportra oszthatjuk:

rendszerparancsok: a parancs az operációs rendszerrel együtt szállított parancsok. Minden felhasználó azonos parancsot ér el.

felhasználói parancsok: a felhasználó önmaga fejlesztette a parancsot.

A kezelői felületek fejlesztésekor a legfontosabb szempont a felhasználóbarát tulajdonság megvalósítása. Ez elsősorban széles körben használt rendszerek esetén okoz gondot, mert a rendszer felhasználói köre nagyon heterogén lehet, vagyis az egyes felhasználók eltérő igényeket támasztanak a rendszer elé.

A kezdő, tapasztalatlan felhasználó igényei általában a következők:

  • kis számú és egyszerű parancsok,

  • biztonságos parancsok, amelyek nem okozhatnak súlyos és visszaállíthatatlan változást a rendszerben, illetve megerősítést kérnek minden ilyen akció előtt,

  • részletes és környezetfüggő segítség minden szituációban.

A tapasztalt felhasználó igényei ezzel szemben:

  • hatékony, a rendszer minden lehetőségét kihasználó parancsok,

  • konfigurálható parancsok, amelyeket a felhasználó saját igényeinek megfelelően meg tud változtatni,

  • a felhasználó által bővíthető parancskészlet.

A fenti igények láthatóan több ponton ellentmondanak egymásnak. Ez természetesen lehetetlenné teszi, hogy egy minden igényt kielégítő felhasználói interfészt készítsünk. A felhasználói interfész fejlesztésénél általában valamilyen kompromisszumot kell kötni a fenti szempontok között. Gyakran alkalmazott megoldás, hogy a felhasználói interfész valamilyen paraméter állításával lehetőséget ad a felhasználó tapasztaltságának beállítására, ezzel biztosítva a felhasználó igényeihez való igazodását.

Az operációs rendszerek és a felhasználó közötti kommunikáció eszközei:

  • Nem interaktív rendszerek:

Job Control Card

  • Interaktív karakteres interfészt biztosító rendszerek:

billentyűzet (keyboard),

karakteres terminál (display).

  • Grafikus be-/kimenetet kezelő rendszerek:

egér,

fényceruza,

érintő képernyő (touch-screen),

grafikus terminál (display).

  • Hang be-/kimenet.

A fenti felsorolás a rendszerek fejlődését is mutatja. A számítógépek kapacitásának gyors fejlődésével az operációs rendszerek mind nagyobb súlyt fektettek a felhasználói felületek fejlesztésére. A fejlődés első lépcsője az interaktív rendszerek megjelenése volt, majd a grafikus interfészt biztosító rendszerek következtek. A mai napig is tart az emberi kommunikációra mind­­inkább hasonlító kezelői felületet biztosító rendszerek fejlesztése. A beszédfelismerésen illetve beszéd szintézisen alapuló kommunikációt biztosító rendszerek egyre nagyobb teret hódítanak, hiszen alapvető beszéd­fel­is­merési funkciókat akár egy mobiltelefon kínálta számítási kapacitással is lehetséges megvalósítani.

A továbbiakban egy konkrét példán, az X Window-rendszeren keresztül mutatjuk be egy grafikus interfész felépítésének és működésének részleteit.

3.6.1. Az X Window-rendszer

Az X Window egy olyan rendszer, mely grafikus kimenettel rendelkező alkalmazások felhasználói felületének kialakítására ad lehetőséget. A rendszer fejlesztése 1983–1984-ben kezdődött a Massachusetts Institute of Technology-n (MIT, USA). A fejlesztés célja olyan kommunikációs felület készítése volt, ami azonos kezelői felületet biztosít a hálózattal összekötött, különböző operációs rendszereket futtató számítógépeken. Az X Window segítségével lehetőség van az alkalmazás és a kezelői felület szétválasztására. Míg a kezelői felületet a helyi gépen futó X szerver jeleníti meg, addig az alkalmazás akár távoli gépeken is futhat.

A rendszer gyors elterjedését számos előnyös tulajdonságán túl segítette, hogy az X Window forráskódja publikus. Az X Window-t elsősorban a UNIX rendszerek támogatják.

Az X Window működésének jellemzője a kliens-szerver modell használata. A szerver egy grafikus terminálon futó folyamat, mely grafikus ki- és bemeneti lehetőséget biztosít a kliens folyamat számára. A szerver kezeli az ún. grafikus munkahelyet, melynek részei:

  • a képernyő (illetve képernyők),

  • a billentyűzet (alfanumerikus bemeneti eszköz), és

  • egy grafikus bemeneti eszköz.

A kliens egy grafikus be-/kimenetet igénylő (általában interaktív) folyamat.

3.6.1.1. Az X protokoll

A rendszer magja az X protokoll, amely definiálja a kliens és a szerver együtt­működésének módját. Leírja a lehetséges grafikus funkciókat, valamint a megengedett akciókat.

A protokoll kétirányú aszinkron kommunikációt tesz lehetővé, vagyis mind a kliens, mind a szerver küldhet üzeneteket. Az üzenetek küldése után egyik fél sem várakozik visszajelzésre, hanem folytatja működését.

Az üzenetek típusai a következők lehetnek:

  • kérés (kliens küldi a szervernek),

  • válasz (szerver küldi a kliensnek),

  • esemény (szerver küldi a kliensnek),

  • hiba (szerver küldi a kliensnek).

A protokoll legfontosabb jellemzője, hogy a hálózati kommunikáció mérséklésére törekszik. Ennek módjai:

  • A kliens nem egyes üzeneteket, hanem üzenetek összegyűjtött csomagját küldi át a hálózaton.

  • A szerver helyben kezel bizonyos egyszerű eseményeket, mint például az egérmozgatást.

  • A szerver szoftver-erőforrásokat (grafikus környezetet, betűtípushoz tartozó leírást stb.) hoz létre a kliens kérésére, amiket később a kli­ens folyamat egyszerű hivatkozással érhet el.

3.6.1.2. Az X Window-rendszer koncepciója

Az X környezet alapvető eleme a grafikus, ún. X munkahely, mely egy X display-ből (X megjelenítőből) és az azon levő (egy vagy több) X screen-ből (X képernyőből), valamint bemeneti eszközökből áll. Az X munkahely egy karakteres bemeneti eszközt (általában billentyűzet) és egy pozicionálásra alkalmas grafikus bemeneti eszközt kezel. A grafikus bemeneti eszköz leggyakrabban egér, de lehet fényceruza vagy érintő képernyő is.

3.6.1.3. Ablakkezelés

A grafikus képernyő kezelése ablakok létrehozásával történik. Az ablak egy téglalap alakú képernyőrészlet, melyben a felhasználó újabb ablakokat nyithat, vagy az egyes ablakok területére rajzolhat.

Az ablakok rendszere hierarchikus. A kliens a működése elején nyit egy ún. gyökér ablakot. Az összes többi ablaka ennek az ablaknak lesz leszármazottja. Az ablakok mozgathatók a képernyőn. A leszármazott ablakok területe csak az ősük ablakfelületén látszik. A kilógó vagy esetleg átlapolódó, egymást fedő ablakoknál a rendszer automatikus vágást alkalmaz. Egy ablakfelület kitakarásakor (láthatóvá válásakor) a szerver ún. kitakarás eseményt küld a kliens folyamatnak, lehetőséget adva az ablak tartalmának frissítésére. A kliens külön kérésére a szerver támogathatja az ablak automatikus, szerver által megvalósított frissítését.

3.6.1.4. Bemeneti eszközök kezelése

A bemeneti eszközöket az X szerver figyeli. Az eszközök állapotváltozásakor (például egy billentyű vagy egér gombjának leütésekor) a szerver esemény üzenettel értesíti a klienst.

A bemeneti információ elosztására az X Window-rendszer bevezette az ún. input focus fogalmát. Az input focus birtokosa az a kitüntetett kliens folyamat, amelyik a bemeneti eszközök állapotváltozásakor a szerver által értesítendő. Az input focust mindig egy folyamat birtokolja, és a szerver által definiált módon adható át, illetve kérhető el a kliensek között.

A pozicionáló eszköz mozgásáról a kliens az aktív ablak bal felső sarkától számított relatív koordinátákban mért információt kap a szervertől. Karakteres bevitel esetén a billentyűkhöz történő karakter-hozzárendelést a szerver végzi, azonban a kliens kérésére a szerver megváltoztathatja az aktuális karakter-hozzárendelést.

3.6.1.5. Megjelenítő eszköz kezelése

Az X Window ún. raszteres (képpontokból, pixelekből álló) grafikus terminált tud kezelni. Az ablakok helyét a képernyő bal felső sarkától számolt derékszögű koordináta-rendszerben tartja számon. Az ablakok és egyéb rajzelemek elhelyezkedését képpontokban méri. Az ablakon belüli rajzelemek elhe­lyez­ke­­dését az ablak bal felső sarkától mért relatív koordináták szerint tárolja.

Rajzoláskor az X egyszerű, előre definiált rajzelemek használatát engedi meg. A rajzelemek halmaza azonban bővíthető a felhasználó által. Rajzolni mind a képernyőre, mind pedig (virtuálisan) a memóriába lehetséges. Virtuális rajzolással a kliens karbantarthatja az esetlegesen letakart képernyőjének tartalmát, melyet majd a kitakarás esemény után frissíthet.

Az X Window a színek használatát ún. palettázással támogatja. A kliens egy 128 elemű paletta színeit definiálhatja a szerver által biztosított színtartományban, mely általában igen széles. A palettahasználat előnye, hogy egy palettaszín definiálása után a kliens egy nyolcbites azonosítóval hivatkozhat egy színre, mely szín ábrázolására a szerver 16, 24, vagy akár 32 bitet is használhat. A paletta színein az azonos képernyőn futó alkalmazások osztoznak. Ha egy alkalmazásnak nem elegendő a palettában megmaradt színek száma, kérheti a szervert, hogy biztosítson számára egy külön palettát. Ez a felhasználó számára is szembetűnő, mert ebben az esetben a képernyő színei megváltoznak, attól függően, hogy az önálló palettát használó vagy valamelyik másik, közös palettát használó folyamat birtokolja-e az input focust.

3.6.1.6. A kezelői felület elemei

Egy működő X rendszernek három fő eleme van:

  • Windowing system. A rendszernek ez az eleme felelős az X protokoll megvalósításáért, vagyis ez a rendszer magja. Lebonyolítja a kommu­ni­kációt a kliensekkel, elvégzi a megjelenítési funkciókat.

  • Window manager. A Window manager egy kitüntetett kliens folyamat, ami az ablakok felhasználó által történő manipulálását intézi. Minden Windowing systemhez csak egy Window manager kapcsolódhat.

A Window manager által támogatott műveletek az ablakokkal:

mozgatás,

méretezés,

zárás,

ikonizálás,

menü biztosítása.

A Window manager minden ablakot ellát az ablakok kezelését (mozgatását, ikonizálását stb.) megkönnyítő tartozékokkal. A tartozékok kinézete, illetve a biztosított funkciók az adott X megvalósítástól függően különbözhetnek.

  • Session manager. A Session manager egy állandóan futó X szerver esetén a felhasználó beléptetését intézi a grafikus képernyőn. Opcionális része a rendszernek. Session manager használata esetén a felhasználók nem a megszokott karakteres login promptot használják belépéskor, hanem a Session manager által biztosított grafikus környezetet.

A Session manager funkciója a felhasználó kényelmének növelésén túl annak a lehetőségnek biztosítása, hogy a felhasználó választhasson az adott rendszerben rendelkezésre álló Window managerek között, vagyis lehetővé tegye a felhasználónak a grafikus környezetének beállítását.