● tuntud kui: – X11, X, X-Windows ● akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele ● UNIX-maailmas väga levinud – mitmesugused realisatsioonid ka Windowsile – erinevad realisatsioonid erinevatel platvormidel üsna hästi ühilduvad

Tööjaamade tarkvara 1 X Window System ● klient-server protokoll – riistvara spetsiifika ideaalis vaid serveris ● võimalik klient-server suhtlus üle võrgu ● võimalik käivitada ühes masinas mitu X serverit (loomulikult ka mitu X klienti)

Tööjaamade tarkvara 2 X Window System: ajalugu ● graafilisi süsteeme enne X sündi: – 1973: Xerox Alto – 1981: Xerox Star – 1982: Andrew Project (Carnegie Mellon University) – 1983: Apple Lisa – 1984: Apple Macintosh – 1984: Blit

Tööjaamade tarkvara 3 X Window System: ajalugu ● enne 1984: eelkäija “W” (Stanford University) ● 1984 juuni: esimene X (MIT, DEC, IBM) ● ... kiire areng... ● 1985 jaanuar: X versioon 5 ● 1985 september: X versioon 9 ● kasutati mõndadel DEC ja IBM süsteemidel ● 1986 jaanuar: X10R3 - esimene “laiapinnaline” X

Tööjaamade tarkvara 4 X Window System: ajalugu ● 1986 sai selgeks, et on vaja luua korralikult ümberdisainitud X versioon ● 1986 mai algas DEC WSL avatud projekt X11 (protokolli) loomiseks - üks esimesi väga suure haardega vaba tarkvara projekte ● 1987: X11R1 ● 1988: loodi “The X Consortium” – mittetulunduslik tootjate ühendus – loodud juhtima X arendust – X11R2 (1988) - X11R6.3 (1996)

Tööjaamade tarkvara 5 X Window System: ajalugu ● 1997: juhtimine üle “The Open Group”'ile – probleemid litsentsimisega – X11R6.4, X11R6.5 ● 1999: The Open Group loob X.org

Tööjaamade tarkvara 6 X Window System: ajalugu ● 2004: X.org Foundation – suur muutus: juhtivaks jõuks arendajad, liikmeks võib saada igaüks – X11R6.7 - baseerus XFree86 4.4RC'l – nüüdsest lõppkasutajale kasutatavad tooted (varasemad X11 olid ainult aluseks tootjatele)

Tööjaamade tarkvara 7 X Window System ● DECwindows (DEC) ● OpenWindows (Sun) ● ● XFree86 ● X.Org ● ...

Tööjaamade tarkvara 8 X Window System: server ● põhialused: – on aknad (alad ekraanil), millesse saab joonistada, mida saab liigutada – on erinevad sisendseadmed: klaviatuur, hiir, millelt tekitatud sündmuseid server töötleb ja edastab ● X server ei ole: – lahutamatu osa operatsioonisüsteemist – kasutajaliides

Tööjaamade tarkvara 9 X Window System: server ● X serveri ülesanded: – sisendi käsitlemine ● sisend antakse edasi klientidele sündmuste (event) kujul – aknateenused ● kliendid saavad aknaid luua ja hävitada, aknaid saab luua teiste akende sisse ● kliendid saavad akna kohta päringuid esitada – tekstiteenused ● kliendid saavad tellida määratud šriftiga määratud asukohta teksti kirjutamist ● kliendid saavad esitada päringuid šriftide kohta Tööjaamade tarkvara 10 X Window System: server ● X serveri ülesanded: – graafika ● kliendid saavad tellida graafikaelementide joonistamist, rasteroperatsioone – ressursihaldus ● serveri ressursihaldur hoiab ressursside kogu: šriftid, värvid, rastrerpildid: neid saab kasutada rakendustele ühise ilme loomiseks jms.

Tööjaamade tarkvara 11 X Window System: kliendid ● klient on rakendus, mis kasutab oma väljundi näitamiseks X serverit ● klient saadab serverile päringuid ● klient saab serverilt sündmuseid ● eriliseks kliendiks on aknahaldur – loob klientidele ühtse välimuse ja käitumise – vahendab klientidele sündmuseid ● klientide vahelise suhtluse protokoll: ICCCM - Inter-Client Communication Conventions Manual Tööjaamade tarkvara 12 X: klient-server suhtlus Nelja tüüpi teated: ● päring (kliendilt serverile) ● vastus (serverilt kliendile) – kõigile päringutele ei vastata ● sündmus (serverilt kliendile) ● veateade (serverilt kliendile)

Tööjaamade tarkvara 13 X: praktiline kasutamine ● peab eksisteerima töötav X server – enamasti on selleks vastav haldur, mis hoolitseb kasutaja sisselogimise ja X serveri käivitamise eest (xdm, gdm, kdm) – käivitamine startx abil ● keskkonnamuutuja DISPLAY peab osutama soovitud serverile – lihtsamatel juhtudel juba paigas – üldkuju: host.ee:serverinumber.ekraaninumber

Tööjaamade tarkvara 14 X: praktiline kasutamine ● keskkonnamuutuja DISPLAY vaatamine, sättimine > echo $DISPLAY localhost:0.0 > setenv DISPLAY hostname.ee:0.0 ● server peab meid “usaldama” ● tuleb käivitada kliente – esimesena ehk aknahaldur, tavaliselt on see operatsioon automaatne

Tööjaamade tarkvara 15 X: aknahaldur () ● aknahaldur: eriline klient, mis määrab teiste akende välimuse ja käitumise ● näide X modulaarse olemuse eelistest ● , dtwm, , , ● .... aknahaldureid on massiliselt ● võimalik kasutada kliente ka ilma aknahaldurita

Tööjaamade tarkvara 16 X: aknad ● aknad on hierarhilises struktuuris ● juuraken ● iseseisev aken ● parameetreid (osad seotud X'ga, osad aknahalduriga) – asukoht ja suurus (geometry) – ontop – sticky – värviruum

Tööjaamade tarkvara 17 X: toolkit'id, keskkonnad ● ● Xaw ● tk ● ● GTK+

● KDE ● Gnome ● ● CDE Tööjaamade tarkvara 18 X: autentimine ● xhost – xhost +minuhost.ee – xhost -minuhost.ee – pole turvaline!! ● xauth ● MIT-magic-cookie – genereeritakse igal X serveri sessioonil uus – hestia.at.mt.ut.ee:0 MIT-MAGIC-COOKIE-1 5131464b636d642f6b5275487a447538

Tööjaamade tarkvara 19 X: autentimine ● sessioonis, kus on juba võti olemas: > xauth list ● sessioonis, kuhu tahame võtme lisada: > xauth add vastav_võti

Tööjaamade tarkvara 20 X: ssh tunnelid ● X protokoll on krütpeerimata – pole üle (lai)võrgu turvaline ● ssh lubab teha tunneleid ● automaatne X tunnel koos keskkonna sättimisega: > ssh -X [email protected] frogger> xclock &

Tööjaamade tarkvara 21 X: font server ● erinevaid kirju/šrifte/fonte palju ● vaja erinevaid lisateenuseid – eritüübiliste šriftide tugi (Type1, TrueType) – anti-alias tugi ● eraldi haldusprotsess, suhtlus X serveriga ● fontserveri port: 7100 ● fontpath - võib sisaldada nii lokaalseid katalooge kui fontservereid ● xfs Tööjaamade tarkvara 22 X: puudujääke ● kihilise arhitektuuri jõudlusprobleemid ● pole arvestatud heliga ● rakenduste omavaheline suhtlus siiski halvasti reguleeritud ● riistvaratugi MS Windowsist maas/kehvem ● sessioone ei saa “lahti ühendada”/”üle võtta” (nagu MS RDP) Enamusega neist probleemidest tegeletakse (või on juba mingi lahendus olemas)

Tööjaamade tarkvara 23