X Window System

Wikipediasta
Siirry navigaatioon Siirry hakuun
KDE 3.5.

X Window System[a] on bittikarttanäytöille kehitetty siirrettävä ja verkkoläpinäkyvä ikkunointijärjestelmä. 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ä.[1] X on riippumaton käyttöjärjestelmästä ja laitteistoalustasta kuten suorittimesta.[1] Se on saatavilla useisiin käyttöjärjestelmiin.[1]

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

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.

Historia[muokkaa | muokkaa wikitekstiä]

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ä.[1]

X:n kehittäminen alkoi MIT:ssa 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ä.[1] 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ä.[2]

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.[1] Nykyistä protokollaa käyttävä X11 julkaistiin syyskuussa 1987.[3]

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.[4][5][6][7] X oli valmistajariippumaton ja myöhemmin myös Sun tuki sitä.[8]

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

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

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

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

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

Tammikuussa 2005 perustettiin X.Org Foundation, joka on perustettu yleishyödyllisenä järjestönä.[12] 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.[12]

Arkkitehtuuri[muokkaa | muokkaa wikitekstiä]

X:n asiakas-palvelinmalli.

X perustuu asiakas-palvelin-arkkitehtuuriin.[15] 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ä.[16] Verkkoprotokollan sijaan asiakas ja palvelin voivat käyttää jaettua muistia (MIT-SHM laajennuksella) nopeampaan kommunikointiin.[17]

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.

ICCCM[muokkaa | muokkaa wikitekstiä]

X11-ikkunointi on tietoisesti suunniteltu nimenomaan mekanismille eikä käytännölle.[18] 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.[18] 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.[19][18]

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

ICCCM:ää on kritisoitu vaikeaksi toteuttaa huolimatta siitä, että määrittely on lyhyt.[22] 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ää.[23]

GLX[muokkaa | muokkaa wikitekstiä]

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.[24]

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

XLFD, Xft[muokkaa | muokkaa wikitekstiä]

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

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

Käyttöliittymä[muokkaa | muokkaa wikitekstiä]

Ikkunanhallintaohjelmat[muokkaa | muokkaa wikitekstiä]

Koska X-palvelin toteuttaa vain mekanismin eikä käytäntöä on olemassa ikkunanhallintaohjelmia, jotka hallitsevat näytöllä näkyvää tilaa.[30] 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".[30] Yksi merkittävä ominaisuus ikkunanhallintaohjelmissa on keino käynnistää muita ohjelmia, joko syöttämällä ohjelman nimi tai käynnistysvalikon avulla.[30]

Työpöytäympäristöt[muokkaa | muokkaa wikitekstiä]

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äkirjastot[muokkaa | muokkaa wikitekstiä]

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.[31] Motif-kirjastolle on kehitetty avointa kloonia nimellä Lesstif, jonka kehitys lopetettiin kun Motif julkaistiin LGPL-lisenssillä.[32][33]

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.

Toteutukset[muokkaa | muokkaa wikitekstiä]

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

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

Tulevaisuus[muokkaa | muokkaa wikitekstiä]

X-ikkunointia on yritetty yksinkertaistaa ja tehostaa useita kertoja.[35] 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.[36] 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.[37]

X11-protokollan seuraajalle X12 on olemassa suunnitelmia mutta ei toteutusta.[38][39]

Katso myös[muokkaa | muokkaa wikitekstiä]

Huomioita[muokkaa | muokkaa wikitekstiä]

  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ähteet[muokkaa | muokkaa wikitekstiä]

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

Viitteet[muokkaa | muokkaa wikitekstiä]

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

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

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