X Window System

X Window System[lower-alpha 1] 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.

Historia

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]

Arkkitehtuuri

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.

Ikkunointi

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]

ICCCM

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]

GLX

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, Xft

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ä

Ikkunanhallintaohjelmat

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öt

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

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.

Toteutukset

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

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

Tulevaisuus

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ös

Huomioita

  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

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

    Viitteet

    1. Chapter 1: Introduction to Xlib tronche.com. Viitattu 9.5.2022. (englanniksi)
    2. 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. Mike Azzara: X `Window Of Opportunity' Opens Wide 20.3.1989. UNIX Today!. Viitattu 11.9.2019. (englanniksi)
    10. 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. 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. 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. 1.1. Overview of the X Window System tronche.com. Viitattu 9.5.2022. (englanniksi)
    20. 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. 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 muualla

      This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.