X Window System. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOTEKNIIKAN OSASTO TIETOJENKÄSITTELYTEKNIIKAN LAITOS Ti5316800 - Lähiverkot -erikoistyökurssi



Samankaltaiset tiedostot
X Window System. LAPPEENRANTA UNIVERSITY OF TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY Ti Lähiverkot -erikoistyökurssi

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

Loppukäyttäjän ohje Asennus- ja käyttöohje Mac

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

SSH Secure Shell & SSH File Transfer

Yhteydensaantiongelmien ja muiden ongelmien ratkaisuita

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

Loppukäyttäjän ohje Asennus- ja käyttöohje - Windows

Javan asennus ja ohjeita ongelmatilanteisiin

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Felipe Ballester TI07

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Ohjeet asiakirjan lisäämiseen arkistoon

Asennus Windows 2000 ja XP -käyttöjärjestelmiin

erasmartcardkortinlukijaohjelmiston

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Keskellä ruutua kuvan yläpuolella linkki on call diabeteksen hallintaohjelmisto. Klikkaa sitä

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla

Visma GATEWAY INSTALLER. asennusopas

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Tikon Ostolaskujenkäsittely versio SP1

Sisältö Tervetuloa Linuxin käyttäjäksi Olet tässä

Pedacode Pikaopas. Web-sovelluksen luominen

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

L models. Käyttöohje. Ryhmä Rajoitteiset

Avoimen lähdekoodin kehitysmallit

Suurennus ja näyntönhalli ntaohjelma helpottamaan silmien rasitusta. Pikaopas

Fiscal INFO TV -ohjelmisto koostuu kolmesta yksittäisestä ohjelmasta, Fiscal Media Player, Fiscal Media Manager ja Fiscal Media Server.

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti

Office ohjelmiston asennusohje

TELEWELL TW-EA200 MODEEMIN ASENTAMINEN SILLATTUUN SAUNALAHDEN ADSL-LIITTYMÄÄN KÄYTTÄEN USB-VÄYLÄÄ

X Window System tai lyhyemmin vain X on Linuxin yleisimmin käytetty graafinen ympäristö.

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Visma Avendon asennusohje

Ubuntu - tiedostohallinta

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Finnfoam tuotekirjaston asennusohje. Asennus ja rekisteröintiohje

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

UpdateIT 2010: Editorin käyttöohje

Tikon Ostolaskujenkäsittely versio 6.2.0

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

Epooqin perusominaisuudet

KEMI-TORNIONLAAKSON KOULUTUSKUNTAYHTYMÄ LAPPIA LANGATON VIERAILIJAVERKKO 2(7) VERKKOYHTEYDEN MÄÄRITTELY WINDOWS XP:LLE (WINDOWS XP SP3)

Unix-perusteet. Tulostaminen


Ohjelmistopohjaisen lisenssin käyttö

Pedacode Pikaopas. Web Service asiakasohjelman luominen

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti

TRUST SIGHT FIGHTER VIBRATION FEEDBACK & PREDATOR QZ 500

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Harjoitus 3 Antti Hartikainen

1. HARJOITUS harjoitus3_korjaus.doc

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

UBUNTU. UBUNTU - Peruskäyttö. Työpöytä. GNU Free Documentation License. Sisäänkirjautuminen. Yläpaneelissa on kolme valikkoa. Paneelit ja valikot

Tuplaturvan tilaus ja asennusohje

Sisältö IT Linux 2001:n uudet ominaisuudet IT Linux 2001:n yhteensopivuus Red Hat 7.0:n kanssa Asennuksen valmistelu

PIKAOPAS NOKIA PC SUITE 4.51a NOKIA PUHELIMELLE

Poista tietokoneessasi olevat Javat ja asenna uusin Java-ohjelma

WinTraden päivitys- ja asennusohjeistus

Novapoint Lisensiointi. Copyright 2006, ViaNova IT AS. All rights reserved 1

Ennen kuin aloitat lataamisen tarkista järjestelmävaatimukset:

Asennus Windows 2000 ja XP -käyttöjärjestelmiin

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

Tapahtumat. Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi.

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

Jouko Nielsen. Ubuntu Linux

FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö

Uutiskirjesovelluksen käyttöohje

Pika-asennusohjeet Suomeksi

Ennen varmenteen asennusta varmista seuraavat asiat:

TRUST AMI MOUSE WIRELESS 300

LINUX-HARJOITUS, MYSQL

MyTheatre asennus ja kanavien haku

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

1 Visma L7 päivitysaineiston nouto

ClassPad fx-cp400 OS2-päivitys. + Manager-ohjelmisto ja Physium-sovellus

sivu 1 SURFCAM V5 JÄRJESTELMÄN VAATIMUKSET

Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla.

ASENNUS- JA KÄYTTÖOHJE

ICT4TN Tehtävänanto

UCOT-Sovellusprojekti. Asennusohje

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA

PIKAOHJE MODEM OPTIONS for Nokia 7650

SQL Server 2008 asennus

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

K-Lite Codec Pack v2.48 Asennusohje (toimii myös uusissa versioissa)

OSI ja Protokollapino

Näin asennat Windows käyttöjärjestelmän virtuaalikoneeseen

PIKAOPAS NOKIA PC SUITE Copyright Nokia Oyj Kaikki oikeudet pidätetään

Transkriptio:

LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOTEKNIIKAN OSASTO TIETOJENKÄSITTELYTEKNIIKAN LAITOS Ti5316800 - Lähiverkot -erikoistyökurssi X Window System Lappeenranta, 15.3.2007, 2007 Jukka Lankinen 0258961

LYHENNELUETTELO DE GDM GPL GTK KDE KDM SSH VNC WM XDM XDMCP XFCE Desktop Environment Gnome Display Manager Gnu Public License The Gimp Toolkit Kool Desktop Environment KDE Display Manager Secure Shell Virtual Network Computing Window Manager X Window Display Manager X Display Manager Control Protocol XForms Common Environment

Sisältö 1 JOHDANTO 2 2 HISTORIA LYHYESTI 3 3 X11-PROTOKOLLA 4 3.1 Viestirakenteet............................... 5 3.2 Toteutus................................... 7 4 LINUX-TYÖ 8 4.1 X:n asentaminen.............................. 8 4.2 X:n käyttö.................................. 12 4.3 X:n verkkotehokkuus............................ 14 5 IKKUNAMANAGERIT JA TYÖPÖYTÄYMPÄRISTÖT 16 6 YHTEENVETO 19 LÄHTEET 20 LIITTEET 21 1

1 JOHDANTO X Window System, joka myös tunnetaan nimillä X tai X11, on protokolla, joka tarjoaa graafisia ikkunointipalveluita käyttöjärjestelmälle. X:n nykyistä protokollaversiota (X11) on kehitetty jo vuodesta 1987, ja protokolla on käynyt läpi useita erilaisia muutoksia. X tukee laajaa kirjoa erilaisia laitteita ja sitä voidaan käyttää hyvinkin erilaisilla syöttölaitteilla ja näyttöpäätteillä. X:n ominaisuuksia ovat myös verkkoläpinäkyvyys sekä kompositioiden käyttömahdollisuus. X:ää käytetäänkin lähes poikkeuksetta kaikissa Unix-tyylisissä käyttöjärjestelmissä (mm. Unix, Linux, BSD) vaikka muutamia poikkeuksiakin löytyy. X:n nykyistä avoimen lähdekoodin versiota kehittää X.org foundation. Tämä työ on tehty osana Lähiverkot-erikoistyökurssin Linux-työtä. Dokumentti on jäsennelty siten, että aluksi keskitytään työssä X Window Systemin toimintaan ja selvitetään, mitkä ovat sille olennaiset osat ja vastuualueet. Kun X:n toiminta on selvitetty, siirrytään käytännön Linux-työhön, jossa opastetaan X Window Systemin asentamiseen ja käyttöönottoon Debian Sarge -käyttöjärjestelmässä. X:n käyttöönotossa selvittelemme, millä kaikilla tavoin X:ää voidaan hyödyntää etäkäytössä ja miten paljon resursseja järjestelmä vaatii. 2

2 HISTORIA LYHYESTI X Window Systemin ensimmäinen protokollaversio julkaistiin vuonna 1984 ja se oli johdannainen aikaisemmasta W-ikkunointijärjestelmästä. W:hen verrattuna X toi mukanaan verkon ylitse onnistuvan käytön ja täydellisen laite- ja toimittajariippumattomuuden. Ensijulkaisun jälkeen X:n kehitys kiihtyi huimaan vauhtiin ja protokolla muotoutui nykyiseen muotoonsa kolmessa vuodessa. Protokollasta tehtiin X6-, X9- ja X10-versiot ennen nykyistä X11-versiota. [2] X11-protokollasta on tehty tätä dokumenttia kirjoittaessa jo 20 julkaisua (release) ja nykyinen X.org foundationin tekemä julkaisu on X11R7.1 (27.1.2007). X11-protokollaa kehitti X Consortium vuodesta 1988 (X11R2) aina vuoteen 1996 (X11R6.2). Tämän jälkeen protokollan kehitystä jatkoi Open Group. [2] X11-protokollasta ehkä tutuimmat implementaatiot ovat XFree86 sekä uudempi X.org. XFree86 oli suosittu, alunperin Thomas Roellin ja Mark W. Snitilyn kirjoittama X:n versio. Xfree86 kuitenkin ajautui ongelmiin vuonna 2003, kun se julkaisi omasta X- toteutuksestaan 4.4-version liian kireän lisenssin alaisena. Lisenssi ei ollut yhteensopiva GPL:n (Gnu Public License) kanssa ja aiheutti sen, että monet X:stä riippuvat ohjelmat rikkoivan lisenssiehtoja. Tällainen toiminta tuomittiin X:n hengen vastaisena. Vastalauseena vuonna 2004 luotiin X.org foundation, jonne X:n pääkehittäjä sekä useat muut tärkeät ohjelmoijat siirtyivät. X.org foundation julkaisi protokollan X11R6.7.0-version perustuen viimeisimpään XFree86:n versioon vanhalla lisenssillä. Samalla X:n kehitys muuttui entistä avoimemmaksi. [2] Tänä päivänä X Window Systemiä käytetään laajasti työpöytä-linuxeissa ja sille on laaja käyttäjäkunta. Järjestelmän päälle on rakennettu useita eri ikkunamanagereita ja työpöytäympäristöjä. Näistä lisää dokumentin lopussa. 3

3 X11-PROTOKOLLA X11-protokollan toiminta on määritelty RFC1013 [?, rfc1013] X11-protokolla perustuu asiakas/palvelinmalliin. Palvelinta käytetään hallitsemaan tietokoneruudulla näkyvää kuvaa. Asiakasohjelmat, tässä tapauksessa sovellukset, tekevät pyyntöjä palvelimelle, että se piirtäisi palvelimelle asetettuun näyttölaitteeseen grafiikkaa. X tarjoaa sovelluksille perusmuotojen piirtämisen ja ikkunointiin tarvittavat peruspalvelut. [1] Kuva 1: X Window Systemin asiakas/palvelinmallin toiminta. [1] Kuva 1 kuvaa X Window System -palvelimen toimintaa ja suhdetta asiakasohjelmiin. Asiakaspuolen sovellukset hyödyntävät Xlib-kirjastoa, joka helpottaa protokollan käyttöä. Käytännössä tämä kirjasto tarjoaa tarvittavat funktiot ohjelmointiin ilman, että ohjelmoijan täytyy itse toteuttaa protokollaa. Xlib-kirjaston päällä voidaan vielä käyttää erilaisia X Toolkitteja, kuten GTK (The Gimp Toolkit):ta tai QT:tä, jotka tarjoavat entistä korkeamman tason metodeja sovelluksen tekemiseen. Palvelinpuolella palvelin lukee ja käyttää erilaisia laitekomponentteja, kuten näppäimistöä, hiirtä ja näyttöä ajurikirjaston (Device Library) kautta. Ajurikirjasto sisältää nimensä mukaisesti ajurit näille laitteille. [1] Protokollaa seuraavat asiakasohjelmat eivät suoraan kommunikoi käyttäjän kanssa vaan 4

käyttäjän syöte luetaan palvelimen puolella. Kun käyttäjä painaa painiketta näppäimistöltä, tämä tieto siirretään kaikille yhteydessä oleville asiakasohjelmille. Näinollen asiakasohjelmat osaavat päivittää omia ikkunoitaan ja käyttäytyä syötteen mukaisesti. Asiakasohjelman ei näinollen tarvitse ylläpitää moninmutkaisia tietorakenteita vaan palvelin ylläpitää kaikkea tietoa ikkunoista. [1] Esimerkiksi kuvassa 1 esitetyssä rakenteessa Application A voisi olla yksinkertainen kelloohjelma, joka on ohjelmoitu Xlib-kirjastolla. Paikallisella koneella käyttäjä painaa painiketta näppäimistöllä (keyboard). Tämän jälkeen näppäimistön ajuri käsittelee syötteen ja tietokone suorittaa toiminnon. Tässä tapauksessa toiminto käynnistää Application A:n. Sovellus lähettää X Window System -käskyt paikalliselle koneelle verkon yli ja käyttäjä näkee näytöltä ikkunan. X on suunniteltu siten, että käyttäjä voi käyttää palvelinta helposti myös verkon yli. Tällöin käyttäjän syöte asiakaskoneelta putkitetaan palvelimelle käyttäen esimerkiksi SSHpäätettä. Esimerkkejä tästä LINUX-TYÖ-kappaleessa sivulla 8. 3.1 Viestirakenteet Vaikka X on kokonaisuutena suhteellisen iso ohjelmisto, ei protokolla silti ole vaikea ymmärtää. Protokolla käyttää ainoastaan neljää erilaista viestirakennetta: kyselyitä (request), vastauksia (reply), virheitä (error) ja tapahtumia (event). Käytännössä jokaista toimintoa vastaa jokin viestirakenne. Esimerkiksi, kun käyttäjä vie kursorin ikkunaan ja sitten syötekenttään, lähetetään mm. Window-Crossing ja Input Focus -tapahtumaviesti, joka kertoo, että kursori meni ikkunan alueelle ja sitten valitsi syötekentän. Toisinaan jokin toiminnoista ei onnistu ja palvelin lähettää Virhe-viestin. Kyselyillä sovellus vaatii palveluita palvelimelta, kuten hiiren tilaa. Kyselyviesti sisältää yhden tavun koodikentän, joka kertoo, minkälaista palvelua halutaan. Koodikentän perässä on kahden tavun pituuskenttä ja loppuviesti koostuu datakentästä. Pituuskenttä sisältää koko pyynnön pituuden, sisältäen kaikkien kenttien tavujen määrän. Kyselyt ovat yleensä yksisuuntaisia, joka mahdollistaa sen, ettei sovelluksen tarvitse olla riippuvainen yhteyden nopeudesta. Vastaukset taas ovat viestejä, jota ilman sovellus ei voi edetä. Vastaukset sisältävät neljän tavun pituuskentän ja datakentän. 5

Virheet nimensä mukaisesti ilmoittavat virhetilanteista. Virheviestit ovat 32 tavua pitkiä, sisältäen yhden tavun virhekoodille. Virheviestit sisältävät suuremman ja pienemmän koodin kertomaan virheellisestä suoritteesta ja vähiten merkitsevät 16 bittiä sen sarjanumerosta. Protokollan tapa puskuroida pyyntöjä vaikeuttaa virheen aiheuttavan kohdan löytämistä ja siksi protokollasta (tai tarkemmin protokollaa hyödyntävästä Xlib-kirjastosta) löytyy mahdollisuus asettaa protokolla niin sanottuun synkronoituun tilaan. Tällöin kaikkiin kyselyihin odotetaan vastausta ja virheen löytäminen on nopeampaa. Synkronointi tietenkin hidastaa protokollan toimintaa huomattavasti. Tapahtumat ovat mm. syötelaitteiden aiheuttamia viestejä, jotka kertovat näissä laitteissa tapahtuneista muutoksista. Erilaisia tapahtumaviestejä on yhteensä 33. Tapahtumaviestit ovat 32 tavua pitkiä. Tarkemmin, yksi tavu tyyppikoodia, 16 vähiten merkitsevää bittiä tapahtuman sarjanumerosta (paitsi KeyMapNotify). Tapahtumat ovat tärkeitä X:n toiminnan kannalta, sillä ilman näitä toimintoja ei tiedetä mitä milloinkin tapahtuu. Taulukossa 1 lyhyesti nämä tapahtumat ja mitä niillä pääsosin tarkoitetaan. Tarkempia tietoja protokollan viesteistä Levi ja Reissin X Window Inside and Out -kirjasta. T apahtuma Keyboard Pointer Window-Crossing Input Focus Keymap State Notification Exposure Structure Control Window State Notification Colormap State Client Communication Selitys Näppäimistöllä tapahtuvat tapahtumat, kuten onko näppäintä painettu tai onko se päästetty ylös. Osoitinta, kuten hiirtä koskevat tapahtumat. Missä hiiri tällä hetkellä sijaitsee, onko liikutettu ja mitä painikkeita on painettu? Ilmoittaa osoittimen liikkeestä. Kulkeeko osoitin ikkunan päälle vai poistuuko se ikkunan päältä? Ilmoittaa, onko ikkunoita valittuna näppäimistösyötettä varten. Sisältää mitkä kaikki painikkeet ovat käytössä valitussa ikkunassa. Tällä tapahtumalla kuvataan miten ikkunat ovat päällekkäin ruudulla. Neljästä erilaisesta viestistä koostuva tapahtuma. Näillä tapahtumilla voidaan ikkunaa nostaa, laskea sitä, muuttaa kokoa, sijaintia ja vaikuttaa uudelleenpiirtoon. Tapahtuma, joka lähetetään aina, kun ikkunaa siirretään, sen kokoa muutetaan tai se vaihtaa paikkaa ylemmäksi tai alemmaksi. Tällä tapahtumalla selvitetään ikkunan tilaa Tämä tapahtuma lähetetään, kun värikartta muuttuu, uusia otetaan käyttöön tai poistetaan käytöstä. Mahdollistaa asiakkaiden välisen kommunikoinnin. Taulukko 1: X11-protokollan tapahtumaviestit 6

3.2 Toteutus Kuten aiemmin tässä dokumentissa mainittiin, on X11-protokollasta tehty toteutus X.org tai Xfree86:n muodossa (mutta muitakin toteutuksia on olemassa). Palvelin sisältää kaiken mahdollisen piirtämiseen liittyvän tiedon, kuten käytössä olevat resurssit. Resursseja ovat mm. fontit, värikartat, bittikartat... jne. Palvelin on tietoinen siihen liitetyistä laitteista ja osaa antaa tarvittavat palvelut käyttäjälle. Palvelin lataa käynnistyessään tarvittavat laiteajurit, riippuen konfiguraatiosta (ks. sivu 8). Kun asiakas yhdistää palvelimeen, palvelin ja asiakas alkavat keskustella edellisessä luvussa mainituin keinoin, hyödyntäen erilaisia viestejä eri hetkillä. Etäkäytössä X:ää voidaan käyttää tarpeen tullen erilaisilla tavoilla. Jos käytössä on halpoja, melko vanhoja tietokoneita, niin näiden tietokoneiden toiminta kannattaa ottaa hyötykäyttöön asentamalla vanhoille tietokoneille X ja hankkia uusi palvelin, jolla on kaikki tarvittavat sovellukset. Kun palvelimeen otetaan käyttöön XDMCP (X Display Manager Control Protocol), voivat vanhat tietokoneet yhdistää tähän uuteen palvelimeen ja käyttää sen ohjelmia. Tällöin vanhat tietokoneet ovat päätteitä. Toinen tapa etäkäyttää X:ää on käyttää VNC:tä (Virtual Network Computing), jolloin voidaan yhtä työpöytää käyttää etänä. VNC luo virtuaalisen X-palvelimen, jota voidaan käyttää kuin paikallista työpöytää. VNC ei välitä asiakaspään vaikeuksista, kuten verkon katkoksista ja uudelleenkäynnistyksistä toisin kuin X11-protokolla, joka vaatii toisinaan vastauksia viesteihinsä. VNCliikenne ei yleensä ole salattu, vaikkakin VNC-toteutuksia on olemassa, kuten tightvnc. Jos on huolissaan etäkäytön turvattomuudesta, kannattaa harkita SSH:n (Secure Shell) ja X:n tunneloinnin mahdollisuutta. Tällöin salasanat kulkevat verkon yli salattuina, kuten muukin tieto. Muun muassa X11:n ja VNC:n liikenteen voi näinollen näppärästi salata. Käytännön toteutukseen tutustumme osiossa X:n käyttö sivulla 12. 7

4 LINUX-TYÖ Linux-työssä tarkoituksena on asentaa ja konfiguroida X-palvelin ja esittää, miten sitä voidaan hyödyntää niin paikallisesti kuin etänä. Tässä Linux-työssä käytettiin Debian Sarge Gnu/Linux -jakelua. Kyseinen julkaisu kuitenkin on niin vanha, että sen mukana tulee oletuksena Xfree86-palvelin. Otin vapauden hyödyntää Debianille löytyvää Debian Backports -julkaisukanavaa, jotta työasemiin saataisiin asennettua vähän uudempi X.org 6.9. X Window System on asennettu ainakin dmz5, office2 ja office5 -tietokoneille. Backports -julkaisukanava sisältää Debianin testaus-versiossa olevia paketteja, mutta jotka on sovitettu vanhalle julkaisulle. Ennen palvelimen asentamista muokkasin /etc/apt/sources.list -tiedostoa lisäämällä seuraavan rivin: deb http://www.backports.org/debian sarge-backports main contrib non-free Tämän jälkeen päivitin pakettivarastot: sudo aptitude update 4.1 X:n asentaminen Debianin aptitude-pakettiohjelmaa hyödyntämällä X:n asennus voidaan suorittaa komennolla: sudo aptitude install xserver-xorg Asennuksen aikana Debian kysyy automaattisesti X:n asetuksia, kuten hiiren ja näyttölaitteen ominaispiirteitä. Tässä vaiheessa annoin laitteille sopivat, turvalliset oletusarvot. Kun asennus oli ohi, halusin tarkistaa, että X-palvelin käyttää oikeita asetuksia mm. näytön tarkkuuden suhteen. 8

X Palvelimen configurointi tapahtuu xorg.conf-tiedostoa muokkaamalla. Tiedosto sijaitsee /etc/x11/-kansiossa. Virhetilanteet talletetaan /.xsession-errors -tiedostoon. Konfiguraatiotiedostossa asetetaan ladattavat moduulit, ilmoitetaan mistä palvelin voi hakea fontit sekä asetetaan erilaiset lisälaitteet, kuten hiiret ja näppäimistöt. Muokkaamani xorg.conf löytyy liitteistä. Listaan nyt alle oleellisimmat osat konfiguraatiotiedostosta, jotka olisi hyvä olla kunnossa, jos haluaa saada toimivan kokoonpanon. Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "fi" Tässä asetetaan näppäimistön asetukset. Asetuksissa Identifier asettaa tunnisteen, millä näppäimistö voidaan tunnistaa, kun se liitetään osaksi serverlayoutia. Driver kertoo ajurin nimen mitä tarvitaan laitetta käyttäessä. Käytännössä tässä ladataan kbd-kernelimoduuli. Näiden tietojen jälkeen annetaan erilaisia lisävalintoja (Option). Näillä asetetaan tässä tapauksessa näppäimistölle oleelliset ominaisuudet. Asetus XkbRules kertoo, mikä tiedosto sisältää näppäimistökartat ja ko. tiedostoa haetaan hakemistosta /etc/x11/xkb/rules/. Xkb- Model asettaa näppäimistön mallin. Tässä tapauksessa se on pc105 (ts. näppäimistö, jossa on 105 painiketta). Lopuksi XkbLayout asettaa näppäimistön "kielen". Tässä tapauksessa käytämme suomalaista näppäimistöä tunnisteella fi. Section "InputDevice" Identifier "Generic Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true" 9

Tässä asetetaan hiiren asetukset. Kuten näppäimistössäkin, tässäkin on Identifier ja Driver. Lisäksi on asetettu näppäimistöstä poikkeavia lisävalintoja. Device kertoo, mistä käytettävän laitteen laitetiedosto löytyy. Protocol ilmoittaa, mitä protokollaa käytetään hiiren kanssa. Osa hiiristä käyttää erilaisia protokollia toimintaansa, mutta yleisin on tässäkin käytetty "ExplorerPS/2". ZAxisMapping mahdollistaa hiiren rullan toimimisen. Arvo "4 5"tarkoittaa, että rullan vierittäminen painaa 4. ja 5. painiketta, joita ei normaalisti hiiressä ole. X:n ohjelmissa nämä painikkeet ovat varattu vierittämiseen. Valinta Emulate3Buttons taas mahdollistaa "keskinapin"painamisen, kun käyttäjä painaa oikeaa ja vasenta painiketta samanaikasesti. Section "Monitor" Identifier "Default Monitor" # HorizSync 30-75 # VertRefresh 30-60 Option "DPMS" Section "Device" Identifier "Default Video Card" Driver "i810" Section "Screen" Identifier "Default Screen" Device "Default Video Card" Monitor "Default Monitor" DefaultDepth 24... eri värisyvyyksille eri näyttötiloja... SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" EndSubSection Näissä asetetaan näytön ja näytönohjaimen asetukset sekä käytettävä kuvaruutu. Näytön asetukset asetetaan osassa Monitor. Täällä asetetaan näytölle olennaiset piirteet, kuten vaakasuora- ja pystyvirkistystaajuudet. Valinta DPMS mahdollistaa automaattisen näytön sammuttamisen, kun tietokoneella ei ole tehty mitään pitkiin aikoihin. Osassa Device määritellään mitä näyttölaitetta/ajuria käytetään piirrettäessä ruudulle. Osa Screen kokoaa 10

näyttölaitteesta ja monitorista ruudun, jota voi käyttää eri värisyvyyksillä ja näyttötiloilla. DefaultDepth määrittää oletusvärisyvyyden, mitä käytetään oletuksena. Jokaiselle värisyvyydelle on alaosasto, koska jokainen värisyvyys voi sisältää näytölle tyypillisiä erilaisia näyttötarkkuuksia. Käytössäni oli Dellin 19 tuuman LCD-näytöt, joten asetin värisyvyyden 24 bittiin ja pääasiallisen tarkkuuden 1280x1024-näyttötarkkuuteen. Tiloja voi vaihdella X:ssä Ctrl+alt+plus/minus-näppäinyhdistelmillä. Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Generic Mouse" Tässä osassa määritellään sitten koko X-palvelimen rakenne. Määritellään Palvelimen "kuvaruutu", näppäimistö ja hiiri. Tällä kertaa laitteistossa ei ollut muita syöttövälineitä eikä useampia näyttöjä. Näiden konfigurointi onnistuu helpostin tätä samaa tiedostoa muokkaamalla. Tämän jälkeen X:n voi käynnistää komennolla: startx mutta yleensä graafista käyttöliittymää ei käynnistetä tällä lailla tekstitilasta, vaan hyödynnetään ns. käynnistyssovellusta, josta voidaan valita mitä DE:tä (Desktop Environment) tai WM:ää (Window Manager) halutaan käyttää. Tunnetuimpia näistä käynnistyssovelluksista ovat ehdottomasti GDM (Gnome Display Manager), KDM (KDE Display Manager) ja XDM (X Window Display Manager). Tässä työssä asensin GDM-käynnistimen, koska olen aiemmin käyttänyt sitä, ja osaan toimia sen kanssa. Asennetaan GDM komennolla: aptitude install gdm Tämä tietenkin tuo mukanaan suuren osan GNOME-työpöytäympäristöä, koska gdm tarvitsee osia Gnome-työpöydästä. Ikkunamanagereihin ja työpöytäympäristöihin tutustu- 11

taan seuraavassa luvussa sivulla 16. Asennetaan Gnome-työpöytäympäristökin komennolla: aptitude install gnome Uudelleenkäynnistämisen jälkeen voidaan graafisesta valikosta valita haluttu ikkunamanageri tai työpöytäympäristö. GDM:ää ja X:ää voidaan sammuttaa ja käynnistää /etc/init.d/gdm -skriptillä. Lisäksi historiallisista syistä X:llä on useita muitakin konfiguraatiotiedostoja, joiden muokkaaminen ei ole tarpeellista enää nykyään. Näitä tiedostoja ovat.xinitrc tai.xsession, joihin pystyi asettamaan käynnistettävät ikkunamanagerit ja ohjelmat kun startx-komento ajetaan. 4.2 X:n käyttö Kuten aikaisemmissa luvuissa on tullut esille, voidaan X-palvelinta käyttää paikallisesti tai etänä. X:ää voi käyttää etänä monella eri tavalla, joista jokainen sopii omaan käyttöönsä. Itse olen mahdollistanut XDMCP:n (X Display Manager Control Protocol) käytön verkossa ja asettanut office5-työaseman tarjoamaan tätä palvelua. XDMCP on käytännössä vanhentunut, päätelaitteille suunniteltu protokolla, jolla paikallinen tietokone kykenee yhdistämään X-palvelimeen ja käyttämään sen sovelluksia. XDMCP ei salaa salasanoja, joten sen käyttäminen muualla kuin luotetussa verkossa on turvatonta. Tässä tapauksessa verkko on suhteellisen luotettu, sillä käyttäjät ovat useimmiten samanarvoisia työntekijöitä. Palvelimen saa helposti poistettua tarvittaessa käytössä jos sen käytölle ei löydy tarvetta tai se tunnetaan tietoturvariskinä. Toinen tapa käyttää X-palvelinta etänä on VNC:n avulla. Olen asentanut vncserver-ohjelmiston office5-työasemalle. jokainen, joka haluaa ottaa virtuaalisen X-palvelimen käyttöönsä voivat käynnistää sen komennolla: vncserver Tällöin palvelin käynnistyy pienellä resoluutiolla ja vähäisellä värimäärällä, jotta verkon yli kulkeva tietomäärä olisi mahdollisimman vähäinen. Jos haluaa välttämättä isoja työ- 12

pöytiä ja syvempiä värimääriä, on se mahdollista asettamalla erilaisia lippuja vncserverille, kuten -geometry 1024x768 ja -depth 24. Palvelimen voi tappaa käskyllä vncserver -kill :1. Kolmas vaihtoehto on käyttää SSH:ta tunneloimaan X-palvelimen X11-protokollakäskyt tai VNC. Tunnelointi siirtää paketit etätietokoneelta paikalliselle tietokoneelle, käyttäen jotain tiedonsiirtoprotokollaa (tässä tapauksessa SSH). Nykypäivänä kukaan ei käytä X11- protokollaa salaamattomana verkon yli, mutta jos todella haluaa näin tehdä, niin sen voi toteuttaa mm. asettamalla etäkoneella DISPLAY-ympäristömuuttujaa osoittamaan paikalliselle työasemalle. SSH:ssa voidaan X tunneloida niinkin helposti kuin käskemällä: ssh lahi@192.168.10.5 -X Lippu -X asettaa X11-protokollan viestien edelleenlähetyksen jos palvelin sitä vain tukee. Jos palvelimella ei ole tukea edelleenlähetykselle, niin sen saa päälle muokkaamalla /etc/ssh/sshd_config-tiedostoon seuraavanlaisen rivin:... X11Forwarding yes X11DisplayOffset 10... Ja muokkaamisen jälkeen ssh-palvelimen uudelleenkäynnistys pitäisi mahdollistaa X:n etäkäytön. Nyt paikallisella työasemalla voidaan ssh:n läpi käynnistää erilaisia ohjelmia, kuten xeyes ja gedit ja käyttää niitä kuin oman työaseman ohjelmia. Windows-puolella tätä voidaan hyödyntää ohjelmalla Xming, joka luo virtuaalisen X:n windows-koneelle ja mahdollistaa X:n ohjelmien ajamisen etänä. Salauksen voi Windows-käyttöjärjestelmässä toteuttaa vaikka putty:llä. VNC:n voi salata SSH:lla tunneloimalla VNC:n portin etäkoneelta paikalliselle työasemalle ja yhdistämällä VNC-katseluohjelmalla paikalliseen porttiin. Tämän voi tehdä mm. seuraavanlaisesti: ssh lahi@192.168.10.5 -L 5901:192.168.10.5:5901 13

Ylläoleva komento yhdistää osoitteeseen 192.168.10.5. Tämän jälkeen SSH alkaa kuuntelemaan 5901-porttia etäkoneella ja avaa portin paikallisella koneella osoitteeseen 5901. Kaikki 5901-porttiin tulevat paketit siirtyvät SSH:n yli paikallisen koneen 5901-porttiin, jota voidaan kuunnella haluamallaan ohjelmalla. Eli tämän jälkeen voidaan selata etänä virtuaalista työpöytää komennolla: vncviewer localhost:1 Lisäksi etäkäytössä eri protokollat vaativat käyttöönsä portteja, joita ilman käyttö on mahdotonta. Portit kannattaakin avata palomuurista ja edelleenlähettää verkosta toiseen jos halutaan käyttää palveluita. Porttitiedot on kuvattu taulukossa 2. P rotokolla P ortit XDMCP UDP 177, TCP 6000 VNC TCP 5800-5900 SSH TCP 22 Taulukko 2: Protokollien porttivaatimukset 4.3 X:n verkkotehokkuus Työtä tehdessä tein erilaisia suorituskykymittauksia, kuten miten paljon erilaiset etätyötavat kuluttavat verkkoresursseja. Tein testit käyttämällä bwm- ja vnstat-ohjelmia, joista ensinmäinen mittaa verkon käyttöä (kb/s) ja jälkimäinen siirtyneen datan määrää. Suuntaa antavat tulokset voi löytää taulukosta 3. Tulokset olivat sitä luokkaa, mitä odottikin. Koska SSH:n kautta ei tarvitse piirtää koko työpöytää, vaan ainoastaan yhtä ohjelmaa niin luonnollisesti kaistankäyttö on sen mukaista. VNC taas joutuu siirtämään kaiken sen, mikä täytyy piirtää uudelleen, joten siirtomäärät ovat suurikokoisia. Lisäksi, koska palvelin joutuu salaamaan kaiken liikenteen SSH:n kautta niin prosessorin käyttöastekin hypähtelee. VNC:n hyviä puolia ovat ehdottomasti se, ettei verkon katkokset haittaa lainkaan etätyöpöytää. SSH:n poikki meneminen pelkällä X11-protokollalla aiheuttaa tietojen häviämisen. 14

etyhteys lhtevtbitit tulevatbitit muuta XDMCP (idle) 0.1 kb/s 0.5kb/s yhteyden aloituksessa huima määrä liikennettä ( 12MB) XDMCP (rasitus) 100kb/s 40kb/s siirtyvän datan määrä riippuu siitä, kuinka ruudulla on päivitettävää SSH (xeyes) 5kb/s 5kb/s pieni ohjelma ei tunnu vaativat edes rasituksessa tämän enempää kaistaa SSH (gedit) 100kb/s 15kb/s nappuloiden painaminen ja uusien ikkunoiden avaaminen lisäsivät kaistan tarvetta tällä tavoin hetkellisesti. Muuten kaistantarve hyvin vähäistä. VNC (oletus) - - samaa luokkaa edellisen SSH:n tuloksen kanssa, tässä käytössä kuitenkin koko työpöytä 640x480-resoluutiolla ja 8-bittisillä väreillä. VNC (1280x1024) - - Kun koko ruutua joudutaan päivittämään tällä resoluutiolla, voi kaistantarve nousta hetkellisesti jopa 2Mb/s. Taulukko 3: Suorituskyky käyttäjän puolella 15

5 IKKUNAMANAGERIT JA TYÖPÖYTÄYMPÄRISTÖT X:lle on vuosien saatossa kehitetty kymmeniä ikkunamanagereita. Ikkunamanagerilla tarkoitetaan ohjelmaa, joka nimensä mukaisesti hallitsee ikkunoita. Ikkunamanageri sanelee käyttäjälle, miten se voi ikkunoita käsitellä. Ikkunamanageri päättää mm. siitä miten ikkunoiden kokoa muutellaan tai ikkunoita sijoitellaan. Ikkunamanageri on myös tärkeä osa käytettävyyttä, koska se voi esimerkiksi näyttää ikkunan otsikossa, että mikä ikkuna on parhaillaan valittuna. [1] Ikkunamanagerit lisäävät "reunukset"ikkunoille ja lisäävät painikkeet, kuten kaikille tutut pienennä, suurenna ja sulje. Ikkunamanagerit voivat sisältää myös muita pieniä ohjelmia, kuten sivuttajia (pager) tai tehtäväpalkin. Ikkunamanagerit muuttuvat työpöytäympäristöiksi, kun ikkunamanagerin ympärille rakennettu järjestelmä on tarpeeksi suuri ja jokainen osa on suunniteltu tämän käyttöliittymän ympärille. Työpöytäympäristöt siis sisältävät suuria määriä ohjelmia, jotka ovat yhteneväisiä ja tiukasti sidottuna yhteen. Näitä ohjelmia ovat mm. tekstieditori, videosoitin, äänisoitin, CD-poltin, kuvankatselin, toimistotyökalut ja web-selain. Esimerkkeinä Ikkunamanagereista voidaan pitää mm. fluxbox ja icewm, joiden oletusulkoasut ovat esitetty kuvassa 2. Parhaillaan on toteutettu kolme eri avoimen lähdekoodin työpöytäympäristöä. Nämä työpöytäympäristöt ovat XFCE, KDE ja Gnome. KDE:n ja Gnomen ulkoasua on esitetty kuvassa 3. Yhteistä näille kolmelle työpöytäympäristölle on se, että jokaisella on oma tiedostoselain, ikkunamanageri, tiedostojen purkaja ja sekalainen määrä muita ohjelmia, joilla jokaisella voidaan tehdä samat asiat. Käytännössä sama ohjelma on toteutettu, joka ympäristölle erikseen. Erot näiden työpöytäympäristöjen välillä löytyvät pääosin käyttöliittymän ja niiden pohjalla käytetyn työkalupakin (toolkit) osalta. XFCE ja Gnome käyttävät graafisen käyttöliittymän luomiseen GTK:ta ja KDE käyttää Trolltech-yrityksen kehittelemää Qt:tä. 16

Kuva 2: Ikkunamanagereita: Fluxbox ja Icewm 17

Kuva 3: Työpöytäympäristöjä: KDE ja Gnome 18

6 YHTEENVETO X Window System on huomattavasti tietokoneen käyttöä helpottava osa. X Window System tuo loppukäyttäjälle mahdollisuuden käyttää graafisia sovelluksia, kuten tekstieditoria ja nähdä muutokset suoraan ruudulla monipuolisempina kuin pelkällä komentorivillä pystyttäisiin näkemään. Ohjelmoijalle on tarjolla paljon korkean tason kirjastoja, kuten QT ja GTK, joiden avulla sovellusten ohjelmointi on helpompaa kuin suoraan Xlibille ohjelmointi. Lisäksi X Window System mahdollistaa tehokkaan toiminnallisuuden verkon ylitse ja etäohjelmia voidaan helposti käyttää omalla tietokoneella. Työtä tehdessä huonoiksi puoliksi jäi järjestelmän huippunopean suorituskyvyn puuttuminen, koska X ei suoraan keskustele käyttöjärjestelmän ytimen/näytönohjaimen kanssa. Tehokkaimmilla tietokoneilla tätä puutetta harvoin huomaa. 19

LÄHTEET [1] Reiss L., Radin J. X Window Inside and Out. ISBN 0-07-881796-X [2] Wikipedia the Free Encyclopedia. X Window System. [Verkkojulkaisu]. Saatavilla: http://en.wikipedia.org/wiki/x_window [3] RFC 1013. X Window System Protocol, version 11: Alpha update April 1987. Saatavilla: http://www.faqs.org/rfcs/rfc1013.html 20

LIITTEET Liitteissä ei ole kuin xorg.conf:in tuloste Debian-tietokoneilta. \singlespacing # /etc/x11/xorg.conf (xorg X Window System server configuration file) # # This file was generated by dexconf, the Debian X Configuration tool, using # values from the debconf database. # # Edit this file with caution, and see the /etc/x11/xorg.conf manual page. # (Type "man /etc/x11/xorg.conf" at the shell prompt.) # # This file is automatically updated on xserver-xorg package upgrades *only* # if it has not been modified since the last upgrade of the xserver-xorg # package. # # If you have edited this file but would like it to be automatically updated # again, run the following command: # sudo dpkg-reconfigure -phigh xserver-xorg Section "Files" FontPath "/usr/share/x11/fonts/misc" FontPath "/usr/share/x11/fonts/cyrillic" FontPath "/usr/share/x11/fonts/100dpi/:unscaled" FontPath "/usr/share/x11/fonts/75dpi/:unscaled" FontPath "/usr/share/x11/fonts/type1" FontPath "/usr/share/x11/fonts/100dpi" FontPath "/usr/share/x11/fonts/75dpi" FontPath "/usr/share/fonts/x11/misc" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/truetype" Section "Module" Load "i2c" Load "bitmap" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "type1" Load "vbe" Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "fi" Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true" Section "Device" Identifier "Configured Video Card" Driver "i810" BusID "PCI:2:0:0" 21

Section "Monitor" Identifier Option "Configured Monitor" "DPMS" Section "Screen" Identifier "Default Screen" Device "Configured Video Card" Monitor "Configured Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480" SubSection "Display" Depth 15 Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480" EndSubSection Section "ServerLayout" Identifier Screen InputDevice InputDevice "Default Layout" "Default Screen" "Generic Keyboard" "Configured Mouse" Section "DRI" Mode 0666 22