X Window System

X Window System[a] on bittikarttanäytöille kehitetty verkkoläpinäkyvä ikkunointijärjestelmä.[1] Avoimeen lähdekoodiin perustuva X Window System syrjäytti kilpailijansa jo suhteellisen varhain ja muodostui ikkunointijärjestelmien de facto-standardiksi Unixeissa, Unixin kaltaisissa ja OpenVMS-käyttöjärjestelmissä.[2] X on riippumaton käyttöjärjestelmästä ja laitteistoalustasta kuten suorittimesta.[2] Se on saatavilla useisiin käyttöjärjestelmiin.[2]

KDE 3.5.

X on standardi, protokolla sekä referenssitoteutus, jonka uusimmasta pääversiosta käytetään nimeä X11.[2]

X osaa piirtää suorakulmion muotoisia, päällekkäisiä, hierarkkisia ikkunoita, joihin voidaan piirtää tekstiä ja grafiikkaa. Lisäksi se tukee erilaisia syöttölaitteita, kuten hiiriä ja näppäimistöjä. X ei määrää mitään käyttöliittymää, vaan sitä voi vapaasti vaihtaa.

HistoriaMuokkaa

 
X-asiakasohjelman ajaminen SSH-yhteyden yli.

X:n edeltäjä oli W Window System (W)-niminen ikkunointijärjestelmä, jota käytettiin Stanfordin yliopiston kokeellisen V-käyttöjärjestelmän päällä.[2]

X:n kehittäminen alkoi MIT:ssä vuonna 1984 Jim Gettysin ja Bob Scheiflerin yhteistyöllä. Gettys oli mukana IBM:n, MIT:n ja DEC:n yhteisprojektissa. Project Athenan tavoitteena oli tarjota yhtenäinen tapa käyttää eri valmistajien epäyhteensopivia järjestelmiä.[2] Project Athenassa visiona oli että opiskelijat ja opetushenkilökunta voisivat käyttää mitä hyvänsä tietokonetta, joka olisi kätevin tai sopivin heidän työhönsä.[3]

X1 otettiin käyttöön kesäkuussa 1984. Seuraavat julkaisut seuraavana vuonna olivat X6, X9 ja X10. Useiden tahojen pyynnöstä X10R3 (Version 10 Release 3) julkaistiin tammikuussa 1986 MIT:n ulkopuolelle ja oli ensimmäinen laajamittaiseen käyttöön levinnyt versio.[2] Nykyistä protokollaa käyttävä X11 julkaistiin syyskuussa 1987.[4]

DEC tuki X Window Systemiä rahallisesti ja tarjoamalla työntekijöitä toivoen sen muodostuvan standardiksi, koska DEC pyrki siirtämään kilpailua pois graafisen käyttöympäristön alalta kohti hardwarea, jossa se katsoi olevansa vahvempi. Tuki X Window Systemille oli suunnattu etenkin Sun Microsystemsin NeWS -tuotetta vastaan, joka oli samantyyppinen, mutta perustui suljettuun lähdekoodiin.[5][6][7][8] X oli valmistajariippumaton ja myöhemmin myös Sun tuki sitä.[9]

Vuonna 1988 perustettiin MIT X Consortium yleishyödyllisenä yhteisönä.[2] X Consortiumin perustajiin kuuluivat DEC, DG, IBM ja 13 muuta jäsentä.[9] Organisaatio kehitti X:ää eteenpäin ja teki julkaisut X11R2:sta (1988) julkaisuun X11R6 (1996) asti.[2]

Vuonna 1992 MIT ja MIT X Consortiumin jäsenet päättivät siirtää hallinnan erilliseen riippumattoman organisaatioon.[10] Uusi organisaatio X Consortiumin Inc perustettiin vuonna 1993 ja kaikki oikeudet siirrettiin uuteen organisaatioon 1. tammikuuta 1994.[10] Uusi organisaatio julkaisi X11R6-version saman vuoden toukokuussa.[10]

Vuonna 1992 Yggdrasil Linux/GNU/X -jakelu yhdisti Linux-ytimen, GNU-ohjelmiston ja X-ikkunointijärjestelmän yhdeksi jakeluksi.[11]

Vuonna 1996 X Consortium ilmoitti siirtävänsä vastuun X:stä The Open Groupille vuoden 1997 alusta lähtien.[10] Open Group oli muodostettu Open Software Foundationin (OSF) ja X/Openin yhdistyessä.[12] Vuonna 1998 Open Group julkaisi X11R6.4, jonka lisenssiehtojen muutos ei kelvannut useille kehittäjille.[13] Myöhemmin samana vuonna Open Group julkaisi saman version uudelleen eri lisenssillä.[13] Toukokuussa 1999 Open Group perusti X.Orgin, joka teki julkaisut X11R6.5.1:stä eteenpäin.[2][14]

Varhaisesta 1990-luvusta lähtien varhaiselle 2000-luvulle kehitystä oli tapahtunut XFree86-toteutuksen parissa.[15] Projekti oli nimetty sanaleikkinä X386-toteutuksen mukaan (Free kuulostaa samalta kuin englanninkielen kolmea tarkoittava sana three), jonka uudemmat versiot myytiin kaupallisesti.[15] XFree86 oli yleinen Linux- ja BSD-alustoilla käytetty toteutus.[15] Kehittäjien välisen konfliktin ja kiistaa aiheuttaneen lisenssimuutoksen johdosta XFree86-versio poistettiin useista jakeluista.[15] Kehitys on jatkunut Xserver- ja X.Org-toteutuksien parissa.[15]

Tammikuussa 2005 perustettiin X.Org Foundation, joka on perustettu yleishyödyllisenä järjestönä.[13] Järjestö julkaisi X11R6.9- ja X11R7.0-versiot joulukuussa 2005, joista jälkimmäisessä on käytössä GNU-projektin käännöstyökalut.[13]

ArkkitehtuuriMuokkaa

 
X:n asiakas-palvelinmalli.

X perustuu asiakas-palvelin-arkkitehtuuriin.[16] Laite tai ohjelma, joka piirtää ikkunoita ja grafiikkaa ruudulle, on X-palvelin (X Window System display server). Ohjelmat, jotka haluavat piirtää ikkunansa ruudulle tai ottavat muuten yhteyden palvelimeen, ovat asiakkaita. X:n verkkoläpinäkyvyys merkitsee sitä, että palvelin ja asiakas voivat olla eri tietokoneilla ja toimia käyttäjälle läpinäkyvästi.

Asiakas ja palvelin voivat käyttää Unix domain socket -kommunikaatiota tai TCP/IP-yhteyttä.[17] Verkkoprotokollan sijaan asiakas ja palvelin voivat käyttää jaettua muistia (MIT-SHM laajennuksella) nopeampaan kommunikointiin.[18]

X-palvelinta voidaan suorittaa Unix- tai Linux-työasemalla tai se voi olla yksi ohjelma tai ikkuna Windows-käyttöjärjestelmän työpöydällä. Pelkkään X:n käyttöön tarkoitettuja X-päätelaitteita oli ennen myynnissä, mutta nykyisin halvat henkilökohtaiset tietokoneet Linux-käyttöjärjestelmällä ovat korvanneet ne.

 
Network Computing Devices NCD-88k X-pääte.

IkkunointiMuokkaa

X Window System tukee yhtä tai useampaa näyttöä, joilla voi olla päällekkäisiä ikkunoita tai ali-ikkunoita.[19] X Window Systemissä näyttö (engl. screen) on fyysinen tietokonenäyttö (engl. monitor), joka voi olla värillinen, harmaasävyinen tai mustavalkoinen.[19] Työasemassa voi olla useita näyttöjä: joukko näyttöjä, jota yksi käyttäjä ohjaa on työpöytä tai näyttö (engl. display, huom. suomeksi päällekkäisiä termejä).[19]

Ikkunat järjestetään hierarkioihin, jossa ylimmäisenä on juuri-ikkuna, joka kattaa jokaisen näytön.[19] Juuri-ikkuna on osittain tai täysin lapsi-ikkunoiden peittämä.[19] Kaikilla ikkunoilla paitsi juuri-ikkunalla on vanhempi.[19] Lapsi-ikkunoilla voi olla omia lapsi-ikkunoita.[19]

ICCCMMuokkaa

X11-ikkunointi on tietoisesti suunniteltu nimenomaan mekanismille eikä käytännölle.[20] X-asiakasohjelma kommunikoi palvelimen kanssa X Window System Protocol, Version 11 -protokollan avulla ja voi toimia oikein yksistään, mutta ei toimi oikein muiden samaa palvelinta käyttävien ohjelmien kanssa.[20] Tästä johtuen asiakasohjelmien väliseen kommunikaatioon on kehitetty ICCCM-määrittely (engl. Inter-Client Communication Conventions Manual). ICCCM kuvailee miten valinnat, ikkunoiden ominaisuudet ja resurssit välitetään.[21][20]

ICCCM liittyy muun muassa leikkaa-ja-liimaa -toiminnon toteuttamiseen asiakasohjelmien välillä.[22] Freedesktop.orgin mukaan X-asiakasohjelmat eivät ole toteuttaneet leikepöytää johdonmukaisella tavalla ja määrittelee lisäohjeita.[23]

ICCCM:ää on kritisoitu vaikeaksi toteuttaa huolimatta siitä, että määrittely on lyhyt.[24] ICCCM:n ohjeita myös rikotaan tarkoituksella: ikoneille sallitaan vain yksi bitti väreille (musta tai valkoinen) ja muutoin olisi käytettävä toista tapaa, jossa on oma rajoitteensa; käytännössä ohjelmat sallivat useampia värejä kuin mitä ICCCM:n mukaan voi käyttää.[25]

GLXMuokkaa

GLX on laajennus X Window Systemiin OpenGL:n käyttöä varten. X-ikkunoinnin verkon yli käyttöä varten OpenGL-renderöintikomennot voidaan kapseloida X-protokollaan. Koska 3D-grafiikan renderöinnissä suorituskyky on tärkeää voidaan useat vaiheet ohittaa kun käytetään suoraa renderöintiä (kun prosessilla on suora pääsy grafiikkaliukuhihnaan.[26]

EGL on Khronos Groupin rajapinta ikkunointijärjestelmän kanssa toimintaan, jota voidaan käyttää eri alustoilla ja eri ikkunointijärjestelmillä.[27]

XLFD, XftMuokkaa

XLFD (X Logical Font Description) on X-ikkunoinnin tapa kirjaintyyppien kuvaamiseen, joka on tarkoitettu toimimaan eri X-palvelimien, tiedostojärjestelmien ja kirjainkokoelmien kanssa.[28] Xft on kirjasto, joka on suunniteltu toimimaan FreeType-kirjaston kanssa.[29] Xft ei sisällä konfigurointia vaan on tarkoitettu toimimaan fontconfigin kanssa.[30]

X-ikkunoinnille on myös xfs (X Font Server) -palvelinohjelma, joka jakaa kirjaintyyppejä X-palvelimille.[31]

KäyttöliittymäMuokkaa

IkkunanhallintaohjelmatMuokkaa

Koska X-palvelin toteuttaa vain mekanismin eikä käytäntöä on olemassa ikkunanhallintaohjelmia, jotka hallitsevat näytöllä näkyvää tilaa.[32] Ikkunanhallintaohjelmat ovat X:n asiakasohjelmia, jotka päättävät minne ikkunat asetetaan, tarjoaa mekanismit ikkunoiden hallintaan kuten koon ja sijainnin päättämiseen ja ikkunoiden "koristeluun".[32] Yksi merkittävä ominaisuus ikkunanhallintaohjelmissa on keino käynnistää muita ohjelmia, joko syöttämällä ohjelman nimi tai käynnistysvalikon avulla.[32]

TyöpöytäympäristötMuokkaa

X11:lle on kehitetty monia yhtenäisen käyttöliittymän antavia työpöytäympäristöjä (desktop environment). Aikaisimpia olivat Sunin kehittämä ja käyttämä OpenWindows ja DECin VMS:stä kotoisin oleva DECwindows. Lähes kaikki kaupalliset Unix-valmistajat siirtyivät kuitenkin The Open Groupin kehittämään Common Desktop Environmentiin (CDE). Muita työpöytäympäristöjä oli muun muassa HP:n VUE-ympäristö (Visual User Environment).

Yhtenäisen käyttöliittymän tarjoamiseen Matthias Ettrich kertoi lokakuussa 1996 KDE-projektistaan. KDE 1.0 julkaistiin 12. heinäkuuta 1998. KDE käytti Qt-käyttöliittymäkirjastoa, jonka lisenssi ei ollut avoin. Toinen ryhmä Miguel de Icazan johdolla aloitti siksi elokuussa 1997 GNOME-projektin (GNU Network Object Model Environment), joka on nykyisin GNU-projektin virallinen työpöytäympäristö.

KäyttöliittymäkirjastotMuokkaa

 
Käyttöliittymäkirjastot.

X11-ohjelmointia tehdään sen alimmalla tasolla Xlib-kirjaston avulla. Historiallisesti on kehitetty useita kirjastoja helpottamaan ohjelmointityötä. Yksi varhaisimmista on X Athena Widgets (Xaw). Tämä kirjasto on useiden X:n mukana toimitettavien pikkuohjelmien pohjana. 1990-luvun alussa Unixissa kilpailivat kaksi kirjastoa, Sunin ja AT&T:n OPEN LOOK (Xview) ja Motif (Xm), jota tukivat IBM, DEC, HP ja SCO. Motifista tuli 1993 kaupallisten Unixien standardi ja CDE-ympäristön pohja.[33] Motif-kirjastolle on kehitetty avointa kloonia nimellä Lesstif, jonka kehitys lopetettiin kun Motif julkaistiin LGPL-lisenssillä.[34][35]

GIMP-kuvankäsittelyohjelman yhteydessä kehitettiin avoimen lähdekoodin GTK-kirjasto Motifin korvaajaksi. Myös norjalaisen TrollTechin Qt-kirjastosta tuli suosittu. Tk-kirjastoa on käytetty komentosarjakielten kanssa.

ToteutuksetMuokkaa

Virallisen referenssitoteutuksen lisäksi on muita toteutuksia, joista osa on kaupallisia (maksullisia):[36]

  • OpenText (ennen Hummingbird) Exceed
  • X-Win32
  • WinaXe
  • Xmanager

TulevaisuusMuokkaa

X-ikkunointia on yritetty yksinkertaistaa ja tehostaa useita kertoja.[37]Linux-käyttöjärjestelmille on kehitetty Wayland-ohjelmistoa korvaamaan X11-ikkunointijärjestelmä: Wayland hyödyntää useita kehitettyjä tekniikoita ja X-palvelimen ominaisuudet ovat suurelta osin jo siirtyneet käyttöjärjestelmän ytimeen tai jaettuihin kirjastoihin.[38] X-ikkunoinnin kehitysaikana jaettujen kirjastojen käyttö ei ollut mahdollista ja muistirajoituksien vuoksi tehtiin X-palvelin: myöhemmin jaettujen kirjastojen tuki on kehittynyt ja koodin käyttömahdollisuudet ovat parantuneet.[39]

X11-protokollan seuraajalle X12 on olemassa suunnitelmia mutta ei toteutusta.[40][41]

Katso myösMuokkaa

HuomioitaMuokkaa

  1. X Consortium, Inc. suosittelee käytettäväksi nimiä: X, X Window System, X Version 11, X Window System, Version 11 tai X11lähde?

LähteetMuokkaa

  • Barkakati, Nabajyoti: X Window System programming. Indianapolis (Ind.): SAMS Publishers, 1994. ISBN 0-672-30542-9. (englanniksi)

ViitteetMuokkaa

  1. Chapter 1: Introduction to Xlib tronche.com. Viitattu 9.5.2022. (englanniksi)
  2. a b c d e f g h i j The X Window System: A Brief Introduction linfo.org. Viitattu 25.11.2017.
  3. James Gettys: SNAP Computing and the X Window System (PDF) kernel.org. 2005. Viitattu 11.7.2021. (englanniksi)
  4. Larabel, Michael: Today Marks 30 Years Since The Release Of X11 Phoronix. Viitattu 17.9.2017.
  5. Raymond, Eric S., "The Magic Cauldron" kirjassa The Cathedral & The Bazaar, O'Reilly, 2001 (1. painos 1999), Sebastopol, Yhdysvallat
  6. History of Windowing Systems cs.umd.edu. Viitattu 11.9.2019. (englanniksi)
  7. 1. Yet Another Language? docstore.mik.ua. Viitattu 11.9.2019. (englanniksi)
  8. The X Windowing System – Internet Archive
  9. a b Mike Azzara: X `Window Of Opportunity' Opens Wide 20.3.1989. UNIX Today!. Viitattu 11.9.2019. (englanniksi)
  10. a b c d X Consortium Definition linfo.org. Viitattu 11.9.2019. (englanniksi)
  11. The Daemon, the GNU and the Penguin, by Dr. Peter H. Salus - Ch. 20 Groklaw. Arkistoitu 8.11.2005. Viitattu 25.11.2017.
  12. The Open Group Definition linfo.org. Viitattu 17.8.2019. (englanniksi)
  13. a b c d X.Org Definition linfo.org. Viitattu 11.9.2019. (englanniksi)
  14. Chapter 1. Introduction to the X Window System oreilly.com. Viitattu 14.9.2020. (englanniksi)
  15. a b c d e XFree86 Definition linfo.org. Viitattu 11.9.2019. (englanniksi)
  16. 3. The X Window System Architecture: overview tldp.org. Viitattu 8.11.2021. (englanniksi)
  17. https://xwindow.angelfire.com/page22.html
  18. Jonathan Corbet & Keith Packard: MIT-SHM—The MIT Shared Memory Extension How the shared memory extension works xfree86.org. Viitattu 2.12.2021. (englanniksi)
  19. a b c d e f g 1.1. Overview of the X Window System tronche.com. Viitattu 9.5.2022. (englanniksi)
  20. a b c 1. Introduction tronche.com. Viitattu 8.11.2021. (englanniksi)
  21. Adrian Nye: X Protocol Reference Manual for X11 Version 4, Release 6, s. 393. O'Reilly. ISBN 1-56592-083-X. Teoksen verkkoversio. (englanniksi)
  22. 2. Peer-to-Peer Communication by Means of Selections tronche.com. Viitattu 8.11.2021. (englanniksi)
  23. clipboards-spec specifications.freedesktop.org. Viitattu 8.11.2021. (englanniksi)
  24. Re: [SLUG Ximian / Gnome and Xalf] raw.githubusercontent.com. Viitattu 8.11.2021. (englanniksi)
  25. Re: ICCCM compliance? lists.debian.org. Viitattu 8.11.2021. (englanniksi)
  26. OpenGL Graphics with the X Window System (PDF) khronos.org. Viitattu 17.11.2021. (englanniksi)
  27. EGL Overview khronos.org. Viitattu 17.11.2021. (englanniksi)
  28. X Logical Font Description Conventions x.org. Viitattu 17.11.2021. (englanniksi)
  29. Xft x.org. Viitattu 17.11.2021. (englanniksi)
  30. 2. Installing fonts x.org. Viitattu 17.11.2021. (englanniksi)
  31. xfs x.org. Viitattu 17.11.2021. (englanniksi)
  32. a b c 4. Window Managers tldp.org. Viitattu 9.11.2021. (englanniksi)
  33. OPEN LOOK O'Reilly. Viitattu 28.11.2017.
  34. Motif motif.ics.com. Viitattu 28.11.2017.
  35. The LessTif Homepage lesstif.sourceforge.net. Viitattu 28.11.2017.
  36. X servers for Windows teamdynamix.umich.edu. Viitattu 6.11.2020. (englanniksi)
  37. Byfield, Bruce: Is Wayland the New X? Linux Magazine. Viitattu 13.2.2017.
  38. Wayland FAQ wayland.freedesktop.org. Viitattu 17.9.2017.
  39. Jonathan Corbet: LPC: Life after X lwn.net. 5.11.2010. Viitattu 14.10.2021. (englanniksi)
  40. Griffith, Eric: The Wayland Situation: Facts About X vs. Wayland Phoronix. Viitattu 13.2.2017.
  41. X12 x.org. Viitattu 13.2.2017.

Aiheesta muuallaMuokkaa

 
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta X Window System.