106.2 Lecke 1
Tanúsítvány: |
LPIC-1 |
---|---|
Verzió: |
5.0 |
Témakör: |
106 Felhasználói felületek és asztalok |
Fejezet: |
106.2 Grafikus asztali környezetek |
Lecke: |
1/1 |
Bevezetés
A Linux-alapú operációs rendszerek fejlett parancssori felületükről ismertek, de ez a nem-technikai felhasználók számára ijesztő lehet. A számítógép-használat intuitívabbá tételének szándékával a nagy felbontású kijelzők és a mutatóeszközök kombinációja életre hívta a képvezérelt felhasználói felületeket. Míg a parancssori felület előzetes ismereteket igényel a programnevekről és azok beállítási lehetőségeiről, addig a grafikus felhasználói felületen (graphical user interface - GUI) a programfunkciókat az ismerős vizuális elemekre való mutatással lehet elindítani, így a tanulási görbe kevésbé meredek. Továbbá a grafikus felület a legalkalmasabb multimédiás és egyéb vizuálisan orientált tevékenységekhez.
A grafikus felhasználói felület szinte szinonimája a számítógépes felületnek, és a legtöbb Linux-disztribúció alapértelmezésben telepített grafikus felülettel érkezik. Nincs azonban egyetlen monolitikus program sem, amely felelős lenne a Linux rendszerekben elérhető teljes értékű grafikus asztalokért. Ehelyett minden grafikus asztal valójában programok és függőségeik nagy gyűjteménye, amelyek a disztribúció választásától függően a felhasználó személyes ízlésének megfelelően változnak.
X Window System
A Linuxban és más Unix-szerű operációs rendszerekben, ahol használják, az X Window System (más néven X11 vagy csak X) biztosítja a grafikus felület megjelenítéséhez és a felhasználói interakcióhoz kapcsolódó alacsony szintű erőforrásokat, mint például:
-
A beviteli események kezelése, mint például az egérmozgások vagy billentyűleütések.
-
A szöveges tartalom kivágásának, másolásának és beillesztésének képessége különálló alkalmazások között.
-
A programozási felület, amelyet más programok a grafikus elemek rajzolásához használnak.
Bár az X Window System felelős a grafikus megjelenítés vezérléséért (maga a video-driver is az X része), nem célja, hogy önmagában összetett vizuális elemeket rajzoljon. Az alakzatokat, színeket, árnyalatokat és minden más vizuális hatást az X tetején futó alkalmazás generálja. Ez a megközelítés nagy teret ad az alkalmazásoknak a testre szabott felületek létrehozására, ugyanakkor az alkalmazás hatókörén túlmutató fejlesztési többletköltségekhez, valamint más programfelületekhez képest következetlenségekhez vezethet a megjelenés és a viselkedés terén.
A fejlesztők szemszögéből nézve az asztali környezet (desktop environment) bevezetése megkönnyíti az alapul szolgáló alkalmazásfejlesztéshez kötött GUI-programozást, míg a felhasználó szemszögéből nézve a különböző alkalmazások között egységes élményt nyújt. Az asztali környezetek olyan programozási felületeket, könyvtárakat és támogató programokat egyesítenek, amelyek együttműködnek a hagyományos, de még mindig fejlődő tervezési koncepciók megvalósítása érdekében.
Asztali környezet
A hagyományos asztali számítógép grafikus felhasználói felülete különböző ablakokból áll — az ablak kifejezés itt bármely autonóm képernyőterületre utal --, amelyek a futó folyamatokhoz kapcsolódnak. Mivel az X Window System önmagában csak alapvető interaktív funkciókat kínál, a teljes felhasználói élmény az asztali környezet által biztosított komponensektől függ.
Az asztali környezet talán legfontosabb összetevője, a window manager (ablakkezelő) az ablakok elhelyezését és dizájnját szabályozza. Az ablakkezelő adja hozzá az ablakhoz a címsorokat, a vezérlőgombokat — általában a kicsinyítés, a nagyítás és a bezárás műveletekhez kapcsolódóan — és kezeli a nyitott ablakok közötti váltást.
Note
|
Az asztali számítógépek grafikus felületeinek alapkoncepciói a tényleges irodai munkaterületekről vett ötletekből származnak. Metaforikusan szólva a számítógép képernyője az íróasztal, ahol olyan objektumok, mint a dokumentumok és mappák találhatók. A dokumentum tartalmát tartalmazó alkalmazásablak olyan fizikai műveleteket utánoz, mint egy űrlap kitöltése vagy egy kép megfestése. Mint a valódi íróasztalok, a számítógépes asztalok is rendelkeznek szoftveres kiegészítőkkel, például jegyzettömbökkel, órákkal, naptárakkal stb., amelyek többsége a "valódi" megfelelőik alapján készült. |
Minden asztali környezet biztosít egy ablakkezelőt, amely megfelel a widget toolkit megjelenésének. A widgetek az alkalmazásablakon belül elosztott informatív vagy interaktív vizuális elemek, például gombok vagy szövegbeviteli mezők. A szabványos asztali komponensek — mint az alkalmazásindító, a feladatsor stb. — és maga az ablakkezelő is ilyen widget eszközkészletekre támaszkodik a felületük összeállításához.
Az olyan szoftverkönyvtárak, mint a GTK+ és a Qt, olyan widgeteket biztosítanak, amelyek segítségével a programozók bonyolult grafikus felületeket készíthetnek alkalmazásaikhoz. Korábban a GTK+ segítségével fejlesztett alkalmazások nem úgy néztek ki, mint a Qt-vel készült alkalmazások, és fordítva, de a mai asztali környezetek jobb téma-támogatása miatt a különbség kevésbé nyilvánvaló.
Összességében a GTK+ és a Qt ugyanazokat a funkciókat kínálja a widgetek tekintetében. Az egyszerű interaktív elemek megkülönböztethetetlenek lehetnek, míg az összetett widgetek — például az alkalmazások által fájlok megnyitásához vagy mentéséhez használt párbeszédablak — azonban egészen másképp nézhetnek ki. Mindazonáltal a különböző eszközkészletekkel épített alkalmazások egyszerre is futtathatók, függetlenül attól, hogy a többi asztali komponens milyen widgeteszközkészletet használ.
Az alapvető asztali komponensek mellett, amelyek önmagukban is önálló programoknak tekinthetők, az asztali környezetek az asztali metaforát azáltal követik, hogy az azonos tervezési irányelvek szerint kifejlesztett kiegészítő alkalmazások minimális készletét biztosítják. A következő alkalmazások variációit általában minden nagyobb asztali környezet biztosítja:
- Rendszerrel kapcsolatos alkalmazások
-
A rendszerhez kapcsolódó alkalmazások: terminál emulátor, fájlkezelő, csomagtelepítő menedzser, rendszerkonfigurációs eszközök.
- Kommunikáció és Internet
-
Kapcsolatkezelő, email kliens, webböngésző.
- Irodai alkalmazások
-
Naptár, számológép, szövegszerkesztő.
Az asztali környezetek számos más szolgáltatást és alkalmazást is tartalmazhatnak: a bejelentkezési képernyő, a munkamenet-kezelő, a folyamatok közötti kommunikáció, keyring agent stb. Emellett harmadik féltől származó rendszerszolgáltatások által biztosított funkciókat is tartalmaznak, mint például a PulseAudio a hangkezeléshez és a CUPS a nyomtatáshoz. Ezeknek a funkcióknak nincs szükségük a grafikus környezetre a működéshez, de az asztali környezet grafikus frontendeket biztosít az ilyen erőforrások konfigurálásának és működtetésének megkönnyítésére.
Népszerű asztali környezetek
Sok szabadalmaztatott operációs rendszer csak egyetlen hivatalos asztali környezetet támogat, amely az adott kiadáshoz van kötve, és nem szabad megváltoztatni. Velük ellentétben a Linux-alapú operációs rendszerek különböző asztali környezeteket támogatnak, amelyek az X-szel együtt használhatók. Mindegyik asztali környezetnek megvannak a saját jellemzői, de általában van néhány közös tervezési koncepciójuk:
-
Egy alkalmazásindító, amely felsorolja a rendszerben elérhető beépített és harmadik féltől származó alkalmazásokat.
-
A fájltípusokhoz és protokollokhoz tartozó alapértelmezett alkalmazásokat meghatározó szabályok.
-
Konfigurációs eszközök az asztali környezet megjelenésének és viselkedésének testre szabásához.
A Gnome az egyik legnépszerűbb asztali környezet, az első választás olyan disztribúciókban, mint a Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS stb. A Gnome a 3. verziójában jelentős változásokat hozott a megjelenésében és a struktúrájában, eltávolodott az asztali metaforától, és bevezette a Gnome Shell-t, mint új interfészt.
Az általános célú, teljes képernyős indítóprogram Gnome Shell Activities felváltotta a hagyományos alkalmazásindítót és a tálcát. A Gnome 3 azonban továbbra is használható a régi megjelenéssel, ha a bejelentkezési képernyőn a Gnome Classic opciót választjuk.
A KDE alkalmazások és fejlesztési platformok nagy ökoszisztémája. Legújabb asztali környezetének legújabb verzióját, a KDE Plasma-t alapértelmezés szerint az openSUSE, a Mageia, a Kubuntu stb. használja. A Qt könyvtár alkalmazása a KDE feltűnő jellemzője, amely összetéveszthetetlen megjelenést és eredeti alkalmazások sokaságát adja. A KDE még egy konfigurációs eszközt is biztosít a GTK+ alkalmazásokkal való vizuális kohézió biztosítására.
Az Xfce egy olyan asztali környezet, amelynek célja, hogy esztétikus legyen, miközben nem fogyaszt sok gépi erőforrást. Szerkezete erősen moduláris, lehetővé téve a felhasználó számára, hogy igényei és preferenciái szerint aktiváljon és deaktiváljon komponenseket.
Sok más, Linuxhoz elérhető asztali környezet is létezik, amelyeket általában alternatív disztribúciók biztosítanak. A Linux Mint disztribúció például két eredeti asztali környezetet biztosít: Cinnamon (a Gnome 3 leágazása) és MATE (a Gnome 2 leágazása). Az LXDE egy alacsony erőforrás-fogyasztásra szabott asztali környezet, ami jó választás régebbi vagy single board számítógépek esetén. Bár nem kínálja a nehezebb asztali környezetek összes funkcióját, az LXDE minden alapvető, egy modern grafikus felhasználói felülettől elvárt funkciót biztosít.
Tip
|
A billentyűparancsok fontos szerepet játszanak az asztali környezettel való interakcióban. Egyes billentyűparancsok — például a Alt+Tab az ablakok közötti váltáshoz vagy a Ctrl+c a szöveg másolásához — univerzálisak az asztali környezetekben, de minden asztali környezetnek megvannak a saját billentyűparancsai is. A billentyűparancsok az asztali környezet által biztosított billentyűzetkonfigurációs eszközben találhatók, ahol a kombinációk hozzáadhatók vagy módosíthatók. |
Asztali interoperabilitás
A Linux-alapú operációs rendszerekben az asztali környezetek sokfélesége kihívást jelent: hogyan lehet elérni, hogy ezek megfelelően működjenek harmadik féltől származó grafikus alkalmazásokkal vagy rendszerszolgáltatásokkal anélkül, hogy mindegyikhez külön támogatást kelljen nyújtani. Az asztali környezetek közötti közös módszerek és specifikációk nagyban javítják a felhasználói élményt, és számos fejlesztési kérdést megoldanak, mivel a grafikus alkalmazásoknak kölcsönhatásba kell lépniük az aktuális asztali környezettel, függetlenül attól, hogy eredetileg milyen asztali környezetre tervezték őket. Emellett fontos az általános asztali beállítások megtartása, ha a felhasználó végül megváltoztatja az asztali környezetet.
A freedesktop.org szervezet számos, az asztali számítógépek közötti átjárhatóságra vonatkozó specifikációt tart fenn. A teljes specifikáció elfogadása nem kötelező, de sok közülük széles körben használatos:
- Mappa lokációk
-
A személyes beállítások és egyéb felhasználó-specifikus fájlok helye.
- Asztali bejegyzések
-
A parancssoros alkalmazások bármely terminálemulátoron keresztül futtathatók az asztali környezetben, de túl zavaró lenne, ha az összeset elérhetővé tennénk az alkalmazásindítóban. Az asztali bejegyzések
.desktop
végződésű szöveges fájlok, amelyeket az asztali környezet arra használ, hogy információt gyűjtsön az elérhető asztali alkalmazásokról és azok használatáról. - Alkalmazás automatikus indítása
-
Asztali bejegyzések, amelyek azt az alkalmazást jelzik, amelynek automatikusan el kell indulnia a felhasználó bejelentkezése után.
- Drag and drop
-
Hogyan kezeljék az alkalmazások a drag and drop eseményeket.
- Lomtár
-
A fájlkezelő által törölt fájlok közös helye, valamint a fájlok tárolásának és eltávolításának módszere.
- Ikon témák
-
A cserélhető ikonkönyvtárak közös formátuma.
Az asztali környezetek által biztosított könnyű használatnak van egy hátránya az olyan szöveges felületekkel szemben, mint a shell: a távoli hozzáférés biztosítása. Míg egy távoli gép parancssoros shell környezetét könnyen elérhetjük olyan eszközökkel, mint az ssh
, a grafikus környezetek távoli elérése más módszereket igényel, és lassabb kapcsolatokon nem biztos, hogy kielégítő teljesítményt nyújt.
Nem-helyi hozzáférés
Az X Window Systems az autonóm megjelenítőkön (display) alapuló felépítést alkalmazza, ahol ugyanaz az X display manager egyszerre több grafikus asztali munkamenetet is vezérelhet. Lényegében a kijelző analóg a szöveges terminállal: mindkettő egy gépre vagy szoftveralkalmazásra utal, amelyet belépési pontként használnak egy független operációs rendszer munkamenet létrehozásához. Bár a leggyakoribb beállítás a helyi gépen futó egyetlen grafikus munkamenet, más, kevésbé hagyományos beállítások is lehetségesek:
-
Váltás az aktív grafikus asztali munkamenetek között ugyanazon a gépen.
-
Egynél több megjelenítő eszköz (pl. képernyő, billentyűzet, egér) csatlakoztatása ugyanahhoz a géphez, mindegyik a saját grafikus asztali munkamenetét vezérli.
-
Távoli grafikus asztali munkamenetek, ahol a grafikus felületet a hálózaton keresztül egy távoli kijelzőre küldik.
A távoli asztali munkameneteket az X natívan támogatja, amely a távoli kijelzőkkel való kommunikációhoz az X Display Manager Control Protocol (XDMCP) protokollt használja. A nagy sávszélesség-használat miatt az XDMCP-t ritkán használják az interneten keresztül vagy alacsony sebességű LAN-okban. Az XDMCP-vel kapcsolatban biztonsági problémák is felmerülnek: a helyi kijelző egy privilegizált távoli X kijelzőkezelővel kommunikál a távoli eljárások végrehajtásához, így egy esetleges sebezhetőség lehetővé teheti tetszőleges privilegizált parancsok végrehajtását a távoli gépen.
Továbbá az XDMCP-hez a kapcsolat mindkét végén futó X-példányokra van szükség, ami megvalósíthatatlanná teheti, ha az X Windows rendszer nem áll rendelkezésre az összes érintett gépen. A gyakorlatban más, hatékonyabb és kevésbé invazív módszereket használnak a távoli grafikus asztali munkamenetek létrehozására.
A Virtual Network Computing (VNC) egy platformfüggetlen eszköz a távoli asztali környezetek megtekintésére és vezérlésére a Remote Frame Buffer protokoll (RFB) segítségével. Ezen keresztül a helyi billentyűzet és egér által létrehozott események továbbításra kerülnek a távoli asztali gépre, amely viszont visszaküldi a helyben megjelenítendő képernyőfrissítéseket. Lehetőség van több VNC-szerver futtatására ugyanazon a gépen, de minden VNC-szervernek szüksége van egy kizárólagos TCP-portra a bejövő munkamenet-kérelmeket fogadó hálózati interfészen. A konvenció szerint az első VNC-szervernek az 5900-as TCP-portot kell használnia, a másodiknak az 5901-est, és így tovább.
A VNC-szerver futtatásához nincs szükség különleges jogosultságokra. Egy közönséges felhasználó például bejelentkezhet a távoli fiókjába, és onnan elindíthatja a saját VNC-szerverét. Ezután a helyi gépen bármilyen VNC kliensalkalmazás használható a távoli asztal elérésére (feltéve, hogy a megfelelő hálózati portok elérhetők). A ~/.vnc/xstartup
fájl egy shellscript, amelyet a VNC-szerver indításkor futtat, és amellyel meghatározható, hogy a VNC-szerver milyen asztali környezetet tegyen elérhetővé a VNC-kliens számára. Fontos megjegyezni, hogy a VNC natívan nem biztosít modern titkosítási és hitelesítési módszereket, ezért olyan harmadik féltől származó alkalmazással együtt kell használni, amely biztosítja ezeket a funkciókat. A VPN és SSH-tunneleket (alagutakat) tartalmazó módszereket gyakran használják a VNC-kapcsolatok biztosítására.
A Remote Desktop Protocol (RDP) elsősorban a Microsoft Windows operációs rendszer asztali gépének távoli elérésére szolgál a TCP 3389 hálózati porton keresztül. Bár a Microsoft saját fejlesztésű RDP protokollját használja, a Linux rendszerekben használt kliensimplementáció nyílt forráskódú program, amely a GNU General Public License (GPL) licenc alatt áll, és használatának nincs jogi korlátozása.
A Simple Protocol for Independent Computing Environments (Spice) egy olyan eszközkészletet tartalmaz, amelynek célja a virtualizált rendszerek asztali környezetének elérése, akár a helyi gépen, akár egy távoli helyen. Ezen túlmenően a Spice protokoll natív funkciókat kínál a helyi és a távoli rendszerek integrálásához, mint a helyi eszközök (például a hangszórók és a csatlakoztatott USB-eszközök) elérésének lehetőségét a távoli gépről, valamint a két rendszer közötti fájlmegosztást.
Mindegyik távoli asztali protokollhoz külön kliensparancsok állnak rendelkezésre a csatlakozáshoz, de a Remmina távoli asztali kliens integrált grafikus felületet biztosít, amely megkönnyíti a csatlakozási folyamatot, és opcionálisan tárolja a csatlakozási beállításokat későbbi használatra. A Remmina minden egyes protokollhoz rendelkezik bővítményekkel, és vannak bővítmények az XDMCP, a VNC, az RDP és a Spice protokollokhoz. A megfelelő eszköz kiválasztása az érintett operációs rendszerektől, a hálózati kapcsolat minőségétől és attól függ, hogy a távoli asztali környezetnek milyen funkciókkal kell rendelkeznie.
Gyakorló feladatok
-
Milyen típusú alkalmazás biztosít ablakos shell munkameneteket az asztali környezetben?
-
A Linux asztali környezetek sokfélesége miatt ugyanannak az alkalmazásnak több változata is lehet, amelyek mindegyike egy adott widget eszközkészlethez a legjobban illeszkedik. Például a Transmission bittorrent kliensnek két változata van: transmission-gtk és transmission-qt. Melyiket kell telepíteni a kettő közül a KDE-vel való maximális integráció érdekében?
-
Milyen Linux asztali környezetek ajánlottak alacsony költségű, kis feldolgozási teljesítményű single board számítógépekhez?
Gondolkodtató feladatok
-
Az X Window Systemben kétféleképpen lehet szöveget másolni és beilleszteni: a hagyományos Ctrl+c és Ctrl+v billentyűkombinációval (az ablak menüben is elérhető), vagy az egér középső gombjának kattintásával beilleszteni az éppen kijelölt szöveget. Mi a megfelelő módja a szöveg másolásának és beillesztésének terminálemulátorból?
-
A legtöbb asztali környezet a Alt+F2 billentyűparancsot a Run program ablakhoz rendeli, ahol a programok parancssori módon futtathatók. A KDE-ben melyik parancs futtatná az alapértelmezett terminálemulátort?
-
Milyen protokoll a legalkalmasabb egy távoli Windows-asztal elérésére Linux asztali környezetből?
Összefoglalás
Ez a lecke egy áttekintés a Linux rendszereken elérhető grafikus asztalokról. Az X Window System önmagában csak egyszerű felületi funkciókat biztosít, ezért az asztali környezetek a grafikus ablakos felületen bővítik a felhasználói élményt. A lecke a következő témákat járja körül:
-
Grafikus interfész és X Window System koncepciók.
-
Linuxhoz elérhető asztali környezetek.
-
Asztali környezetek közötti hasonlóságok és különbségek.
-
Hogyan érhetünk el egy távoli asztali környezetet.
A tárgyalt koncepciók és programok az alábbiak voltak:
-
X Window System.
-
Népszerű asztali környezetek: KDE, Gnome, Xfce.
-
Távoli elérési protokollok: XDMCP, VNC, RDP, Spice.
Válaszok a gyakorló feladatokra
-
Milyen típusú alkalmazás biztosít ablakos shell munkameneteket az asztali környezetben?
Bármely terminál emulátor, mint a Konsole, Gnome terminál, xterm, stb., hozzáférést biztosít egy helyi interaktív shell munkamenethez.
-
A Linux asztali környezetek sokfélesége miatt ugyanannak az alkalmazásnak több változata is lehet, amelyek mindegyike egy adott widget eszközkészlethez a legjobban illeszkedik. Például a Transmission bittorrent kliensnek két változata van: transmission-gtk és transmission-qt. Melyiket kell telepíteni a kettő közül a KDE-vel való maximális integráció érdekében?
A KDE a Qt könyvtárra épült, így a Qt verziót — transmission-qt — kell telepítenünk.
-
Milyen Linux asztali környezetek ajánlottak alacsony költségű, kis feldolgozási teljesítményű single board számítógépekhez?
Olyan alap asztali környezetek, amelyek nem használnak túl sok vizuális effektet, mint az Xfce és az LXDE.
Válaszok a gondolkodtató feladatokra
-
Az X Window Systemben kétféleképpen lehet szöveget másolni és beilleszteni: a hagyományos Ctrl+c és Ctrl+v billentyűkombinációval (az ablak menüben is elérhető), vagy az egér középső gombjának kattintásával beilleszteni az éppen kijelölt szöveget. Mi a megfelelő módja a szöveg másolásának és beillesztésének terminálemulátorból?
Az interaktív shell munkamenetek a Ctrl+c billentyűparancsot rendelik a programfuttatás leállításához, ezért a középső gombos módszer használata javasolt.
-
A legtöbb asztali környezet a Alt+F2 billentyűparancsot a Run program ablakhoz rendeli, ahol a programok parancssori módon futtathatók. A KDE-ben melyik parancs hajtaná végre az alapértelmezett terminálemulátort?
A
konsole
parancs futtatja a KDE terminál emulátorát, de az olyan általános kifejezések, mint a terminal is működnek. -
Milyen protokoll a legalkalmasabb egy távoli Windows-asztal elérésére egy Linux asztali környezetből?
A Remote Desktop Protocol (RDP), mivel azt natívan támogatja mind a Windows, mind a Linux.