facebook LinkedIN LinkedIN - follow
IT SYSTEM 4/2004

Jak na to v Linuxu:

Vzdálená administrace III

Mgr. Ivan Bíbr


Minule jsme si ukázali, jak spouštět vzdáleně aplikace v grafickém režimu, a slíbil jsem, že příště se podíváme na principy, na kterých vše funguje. Řeč proto bude o architektuře X Window systému a základních pojmech okolo něj. Kromě toho se také podíváme na podobné možnosti práce v heterogenním prostředí při použití více operačních systémů a ukážeme si dvě zajímavé aplikace - VNC a Rdesktop.






Základní schéma X Window systému


Architektura X Window systému
X Window systém - grafické prostředí Unixu a tedy i Linuxu - není žádná novinka. Vznikl před dvaceti lety na univerzitě MIT a je navržen velmi robustně a obecně. Raději hned ze začátku upozorním, že není dobré si pod pojmem X Window systém představovat konkrétní implementaci, je jich totiž více. Nejprve si objasníme několik základních pojmů. Při dalším výkladu se pro zlepšení čitelnosti dopustím mnoha zjednodušení, proto bych zájemce o hlubší znalosti odkázal na odbornou literaturu. X-server je zobrazovací (vykreslovací) server, jehož prací je vykreslování na požadavek klienta. Nevidíte jej, ale přitom ho potřebujete. X-server je nutný pro to, abyste vůbec mohli spustit nějaký program určený pro grafické rozhraní. Pokusíte-li se o spuštění grafického programu bez X-serveru, obdržíte s největší pravděpodobností hlášení o tom, že není možné nalézt displej. X-server tedy musí běžet tam, kde budou okna aplikací zobrazována. Zjednodušeně řečeno, potřebuje grafickou kartu a monitor. Zároveň ovládá vstupní zařízení jako jsou myš a klávesnice.


A podobné schéma pro Virtual Network Computing


Co nového ve světě Linuxu
Jádro řady 2.6 už dospělo do verze 2.6.4 a na světě se začínají objevovat nové distribuce Linuxu na něm postavené. Zřejmě první distribucí byla Netwosix zaměřená na servery. Začátkem března pak vyšel Mandrake Linux 10.0 Community obsahující žhavé softwarové novinky jako KDE 3.2, Mozillu 1.6 (obr. 7). Objevila se testovací verze Fedora Core a chystá se i nové SUSE. Podle prvních testů i podle toho, co jsem zkoušel, vypadají dobře. Velmi zajímavý článek o tom, co nového přináší jádro 2.6, najdete na stránkách IBM Developer Works: www-136.ibm.com/developerworks/linux.
Světem desktopu otřásla kauza, kterou vyvolala změna licence u nových XFree86 verze 4.4. Díky jednomu odstavci v licenčních podmínkách je nyní tato licence nekompatibilní s GNU GPL, což představuje pro svět svobodného software zásadní problém. Odezva na sebe nenechala dlouho čekat a většina velkých distribucí odmítla novou verzi XFree86 používat. Na tento stav bohužel doplatí koncoví uživatelé, protože XFree86 je základ grafického systému Linuxu a novější verze znamená lepší podporu hardware a méně chyb. Uvidíme, jak se situace bude dále vyvíjet. SCO nadále zvyšuje požadavky a žalovalo v souvislosti s "neoprávněným použitím Linuxu" další dvě velké americké firmy. Nedávno se ovšem ukázalo, že SCO je tak trochu financována Microsoftem (viz zde). Co z toho plyne pro všechny zainteresované strany, je jasné.



Povolení kontroly aktuálního desktopu pomocí RFBDrake


X-klient je aplikace, se kterou obvykle pracuje uživatel. Aplikace potřebuje vykreslit ovládací prvky, obsah okna atd. a žádá o to X-server. Protože X-server ovládá vstupní zařízení, musí posílat X-klientovi zpět informace o činnosti uživatele. Ten na ně zareaguje, provede požadované operace a opět zažádá X-server o vykreslení údajů. Grafické znázornění situace vidíte na obrázku č. 1. Všimněte si, že na klientských počítačích, kde se zobrazují okna, běží X-server, zatímco na výkonných serverech běží X-klienti (aplikace)! Na první pohled to vypadá složitě, ale není tomu tak. Aplikace prostě komunikují se zobrazovací částí pevně definovaným protokolem, který se nazývá X-protokol. Na jednom počítači nic nepoznáte, větší možnosti získáte až při propojení počítačů do sítě. Protože nativním síťovým protokolem Unixu je TCP/IP, využívá i X-protokol jeho služeb. Nyní je předpokládám jasné, proč jsme minule při ukázkách vzdáleného spouštění nemuseli instalovat žádné speciální programy, ale stačily nám standardní součásti Linuxu - čili implementace X Window zvaná XFree86. Posledním pojmem je zobrazovací displej. Jeho nastavení se řídí proměnnou DISPLAY a nastavením této proměnné na jiný počítač řeknete X-klientovi, který X-server má žádat o vykreslování. Proměnná DISPLAY se zadává ve tvaru počítač:d.n a změníte ji pomocí příkazu export, tedy například:

export DISPLAY=192.168.0.10:1.0


Zadávání parametrů vzdáleného počítače


Počítač v příkladu určuje IP adresa, číslo 1:0 znamená první lokální displej (může jich být více, číslují se od nuly) a obrazovku číslo 0. Nezapomeňte, že vzdálený X-server musí mít vzdálené vykreslování povoleno (příkaz xhost, viz minulý díl). Uvedený způsob má zřejmou nevýhodu - neumí adresovat počítače na síti s vnitřním rozsahem adres. V příkladech jsme minule nechali přesměrování displeje na programu ssh. Použití ssh má tu výhodu, že projde i překladem adres, protože si vytváří vlastní virtuální spojení pro X Window. Musí být ovšem povoleno, viz parametry ssh a ssh démona v minulém díle. Na jednom počítači může běžet více X-serverů, z nichž každý má jiné číslo lokálního displeje. Nic tedy nebrání současné práci několika uživatelů v grafickém režimu. Jako první je obsazen displej číslo nula, dalším spouštěným X-serverům musíte jejich číslo sdělit, jinak dojde ke kolizi. Startujete-li X Window příkazem startx, provedete to následovně:

startx -- :1


Okno s plochou vzdáleného počítače


Tím obsadíte lokální displej číslo jedna. Nyní by již měly být jasné parametry příkazů X a Xnest v minulém díle - protože vám již jeden lokální X-server běžel, spouštěli jsme další na lokálním displeji vyššího čísla. Co se tedy děje při spuštění počítače? Pracujete-li s jedním počítačem, začíná spuštění v grafickém režimu startem X-serveru, na němž se objeví správce obrazovky (displeje). Ten vám povolí přihlášení a spustí grafické prostředí, které je normálním X-klientem (sice má speciální funkci, ale stále je to X-klient). Při práci v něm spouštíte další aplikace (X-klienty) obvykle pomocí menu, které vám nabídne. Proměnná DISPLAY je nastavena na aktuální lokální displej. Přihlásíte-li se na vzdálený počítač přes ssh, dojde k přesměrování displeje a okna aplikací se budou zobrazovat u vás.


Rdesktop aneb Linux jako klient pro Terminal Server


Ještě se pokusím uvést některé informace, které nemusí být z textu zřejmé. Ukázali jsme si totiž několik příkazů, které se liší použitím i významem. Příkaz startx zadaný uživatelem spustí X-server a následně pracovní prostředí uživatele. Řídí se přitom obsahem souboru ~/.desktop nebo globálním nastavením systému. Používají jej uživatelé tam, kde není automaticky spouštěn správce obrazovky. Parametr z příkladu "-- :1" byl předán X-serveru, který se spustil na lokálním displeji číslo jedna (předpokládal jsem, že displej nula je již zabrán). Oproti tomu příkaz X z minulého dílu spustil pouze X-server na zadaném lokálním displeji. Parametrem ":4" jsme použili lokální displej číslo čtyři a parametr "-query 192.168.0.30" určil, že i správce obrazovky má být spuštěn vzdáleně. Tento způsob spouštění se hodí při zprovoznění tenkých klientů, na kterých poběží jen nutné minimum a X-server pro zobrazování. Všechny ostatní programy včetně správce obrazovky jsou spuštěny na vzdáleném serveru. Nezapomeňte, že na vzdáleném počítači musí mít správce obrazovky povoleno spojení pomocí protokolu XDMCP! Pouze doplním, že program Xnest použitý v příkladech minule je speciální X-server, který slouží spouštěným aplikacím (tedy X-klientům), ale zároveň je i X-klientem, protože se zobrazuje v okně jiného X-serveru. Ukázali jsme si, jak vzdáleně pracovat mezi počítači s Linuxem pomocí standardních nástrojů jeho grafického režimu. Uvedené postupy nejsou závislé na konkrétní distribuci. Úplně stejně budeme postupovat i s ostatními Unixy a protože existuje implementace X-serveru pro Windows (Cygwin), můžeme je použít i tam. Doufám, že jsem to příliš nezamotal - pro jistotu s tímto tématem skončím a podíváme se na další možnosti vzdálené práce.

Doporučené odkazy
XFree86: www.xfree86.org
X-server pro Windows: www.cygwin.com/xfree86


VNC (Virtual Network Computing)
Systém VNC byl vyvinut pro interaktivní vzdálenou správu desktopu. Původně jej navrhli a implementovali v laboratořích AT&T, od roku 2002 se o něj stará firma RealVNC, ale existují i další nezávislé implementace. Stejně jako v případě X Window je VNC rozděleno na dvě části: server a klient. Tím ovšem podoba končí. Pracujete-li s VNC, může jednu plochu vidět a ovládat několik uživatelů zároveň (není podmínkou). VNC je multiplatformní a obě části jsou vyvíjeny pro mnoho platforem, jak ukazuje obrázek č. 2 (převzal jsem jej ze serveru společnosti RealVNC). V Linuxu můžete narazit na implementaci TightVNC, která bývá standardní součástí hlavních distribucí. Popis práce s VNC aplikacemi se bude různit, my zde budeme vycházet z implementace TightVNC. Prvním důležitým krokem je spuštění serveru příkazem vncserver. Dotázáni budete na heslo, pomocí kterého je přístup k desktopu chráněn. Poznámka: kvůli VNC serveru nemusí běžet grafické prostředí (X Window) na vzdálením počítači - VNC server funguje zároveň jako X-server pro spouštěné aplikace (X-klienty). Příkazem vncviewer s parametrem IP počítače a lokální displej, se k VNC serveru (vzdálené ploše) připojíte a můžete začít pracovat - například:

vncviewer 192.168.0.10:1


Nové KDE 3.2 s Mozillou 1.6 v Mandrake 10


Číslo plochy zjistíte z výpisu programu vncserver a opět jich může být na jednom počítači několik. Uvedený postup lze zjednodušit například použitím některého nástroje dodávaného s distribucí. V Mandrake Linuxu používám pro tyto účely program RFBDrake. Na obrázku č. 3 vidíte spuštění VNC serveru, který bude zobrazovat aktuální plochu. Další obrázek č. 4 ukazuje nastavení klienta a na následujícím obrázku č. 5 vidíte výsledek: vzdálený desktop v okně. Abyste mohli program RFBDrake používat, musíte si v Mandrake Linuxu nainstalovat balíček stejného jména.

Doporučené odkazy
VNC: www.realvnc.com
DirectVNC: www.adam-lilienthal.de/directvnc
TightVNC: www.tightvnc.com
Rdesktop: www.rdesktop.org


Rdesktop (Remote Desktop)
A na závěr ještě jednu perličku. Řeknu vám o implementaci linuxového klienta pro Windows Terminal Server a jeho protokol, která se jmenuje rdesktop. Jeho výhodou je, že jej najdete ve většině distribucí jako balíček stejného jména. Programu rdesktop stačí jako parametr například IP adresa a výsledek vidíte sami na obrázku č. 6. Programem rdesktop bych exkurzi do možností vzdálené práce v Linuxu ukončil.

Doporučené odkazy
Rdesktop: www.rdesktop.org


Autor článku, Mgr. Ivan Bíbr, pracuje pro místní zastoupení distribuce Mandrake Linux.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.


Inzerce

Modernizace IS je příležitost přehodnotit způsob práce

IT Systems 4/2025V aktuálním vydání IT Systems bych chtěl upozornit především na přílohu věnovanou kybernetické bezpečnosti. Jde o problematiku, které se věnujeme prakticky v každém vydání. Neustále se totiž vyvíjí a rozšiřuje. Tematická příloha Cyber Security je příležitostí podívat se podrobněji, jakým kybernetickým hrozbám dnes musíme čelit a jak se před nimi můžeme chránit. Kromě kybernetické bezpečnosti jsme se zaměřili také na digitalizaci průmyslu.