Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| [[Kuva:Mix-xterm-tetrisbsd.png|200px|thumb|right|X Window Systemin hajautetun rakenteen ansiosta Linux-koneella ajettavia X-ohjelmia voidaan käyttää vaikkapa Windows-työpöydällä.]] | | [[Kuva:Mix-xterm-tetrisbsd.png|200px|thumb|right|X Window Systemin hajautetun rakenteen ansiosta Linux-koneella ajettavia X-ohjelmia voidaan näyttää vaikkapa Windows-työpöydällä.]] |
| '''X Window Systemistä''' (lyhyemmin ''X'' tai ''X11'') eli X-ikkunoinnista on muodostunut standardi Unix-sukuisten järjestelmien graafisena käyttöliittymänä. Se tarjoaa ikkunoihin pohjautuvan graafisen käyttöliittymät peruspalvelut kuten laitteiden hallinnan. X mahdollistaa vierekkäisten, päällekkäisten ym. ikkunoiden piirtämisen, mutta ei tarjoa käyttöliittymää esimerkiksi ikkunoiden liikuttamiseen, vaan tämän tehtävän hoitaa erillinen [[ikkunointiohjelma]]. X ei myöskään määrittele mitään erityistä käyttöliittymää, vaan se on vapaasti valittavissa.
| |
|
| |
|
| Alkuperäinen ikkunointijärjestelmä [[wikipedia:fi:MIT|MIT]]:llä oli nimeltään W, ja seuraavasta versiosta tuli X, kun X on aakkosissa W:n jälkeen. Vältä käyttämästä joskus esiintynyttä nimitystä "X Windows".
| | ==X Window System== |
|
| |
|
| == Rakenne ja käyttöliittymät ==
| | X Window Systemiä (lyh. X tai X11) eli X-ikkunointia pidetään yhtenä menestyneimmistä avoimen lähdekoodin projekteista. Siitä on muodostunut standardi Unix-sukuisten järjestelmien graafisena käyttöliittymänä. Joustavien verkko-ominaisuuksiensa ansiosta se tulee olemaan tulevaisuudessakin tärkeä osa järjestelmiä. Vältä käyttämästä joskus esiintynyttä nimitystä ”X Windows”. Alkuperäinen ikkunointijärjestelmä MIT:llä oli nimeltään W, ja seuraavasta versiosta tuli X, kun X on aakkosissa W:n jälkeen. |
| X Window System suunniteltiin alun perin toimimaan verkossa, joten se toimii asiakas–palvelin-toteutuksella. Käyttäjän työpöytäkoneella ajettavaa ohjelmistoa, joka on kosketuksissa laitteiston kanssa, sanotaan X-palvelimeksi, kun taas X:ää käyttöliittymäänsä käyttävät ohjelmat ovat X-asiakkaita. Etäkäytössä asiakas ja palvelin käyttävät verkkoprotokollia, samalla koneella ajettaessa nopeampia kommunikointitapoja. | |
|
| |
|
| X Window Systemin ja Unix-tyylisten järjestelmien rakenteen ansiosta vaikkapa seuraavanlainen tilanne on helppo toteuttaa: koneelta A käynnistetään ohjelma, niin että ohjelman ajettava tiedosto itsessään sijaitsee koneessa B, suoritus tehdään koneessa C, ja käytössä ovat koneen D näyttö, näppäimistö ja hiiri (ei kovin erikoinen tilanne [[X-pääte]]ympäristössä). Samalla näytöllä voi myös olla monella eri koneella ajettavien ohjelmien ikkunoita, eikä koneilla tarvitse olla samaa käyttöjärjestelmää.
| |
|
| |
|
| X ei sinällään määrittele mitään käyttöliittymää, vaan jokainen ohjelma määrittelee itse käyttöliittymänsä. Erinäisiä käytäntöjä toki on. X:n oheen käynnistetään yleensä [[työpöytäympäristö]] tai pelkkä [[ikkunointiohjelma]], joka huolehtii ikkunoiden asettelusta, mahdollisista tehtäväpalkeista, fokuksen antamisesta oikeille ohjelmille jne. X:ää voi kuitenkin käyttää ilman tällaisia ohjelmia eikä niillä itse X:n kannalta ole erikoisasemaa.
| | ==Historiaa== |
|
| |
|
| Ikkunointiohjelmaa käytettäessä se hoitaa ikkunoiden asennoimisen ja siirtelyn, ohjelmien ikkunoita ympäröivät kehykset painikkeineen ja usein käynnistää erillisiä hallintaikkunoita, joissa esimerkiksi eri [[virtuaalityöpöytä|virtuaalityöpöytiä]], ohjelmalistoja ja tehtäväpalkkeja. Ikkunointiohjelman asetustiedostossa määritellään myös oletuksena käynnistettävät sovellukset.
| | Vuonna 1984 MIT:ssä käynnistettiin projekti nimeltä Athena. Projektin tavoitteena oli luoda eri valmistajien epäyhteensopivien työasemien välille verkon yli toimiva graafinen sovellusympäristö jota voitaisiin käyttää opetuksen tukena. |
|
| |
|
| Sovellusten käyttöliittymä ei riipu käytettävästä ikkunointiohjelmasta tai työpöytäympäristöstä, vaikkakin sovellukset on voitu kirjoittaa kunnioittamaan näiden antamia vinkkejä ja ohjeita. Käytössä on muutamia [[kirjasto|ohjelmakirjastoja]], joiden avulla ohjelmat toteuttavat oman käyttöliittymänsä, ja osaa näistä kehitetään työpöytäympäristöjä huomioiden, niin että työpöytäympäristön asetuksilla voidaan määritellä ohjelmille yhtenäiset [[teema]]t ja fontit (katso [[GNOME tutuksi]] ja [[KDE tutuksi]]).
| | Projektissa syntyneellä sovelluksella voitiin ajaa paikallisia ohjelmia sekä tarvittaessa myös etäresursseja toisilta koneilta. Näin syntyi ensimäinen aidosti järjestelmäriippumaton graafinen ympäristö. |
|
| |
|
| ==Käyttö==
| | Kiinnostus yrityksissä X Window Systemiä kohtaan alkoi nousta 1986 vuoden tietämillä, ja lopulta vuonna 1988 [[MIT]] julkaisi siitä version 11 julkaisuversion 2 (X11R2). |
| X käynnistetään joko yhdessä [[graafinen kirjautumisohjelma|graafisen kirjautumisohjelman]] kanssa järjestelmän käynnistysskripteistä (katso [[init]]) tai käsin komennolla [[startx]]. startx:llä voi myös käynnistää X-istuntoja automaattisesti käynnistettyjen lisäksi. | |
|
| |
|
| X-istunnosta voi siirtyä tekstipohjaisiin virtuaalikonsoleihin näppäinyhdistelmällä Ctrl+Alt+F(1-6), esimerkiksi {{näppäin|Ctrl|Alt|F4}}. | | X Window Systemin kehitys siirtyi julkaisun myötä [http://www.xfree86.org X-konsortion] hallinnoimaksi projektiksi [[XFree86]]. Viimeisin X-konsortion julkaisuversio on 6 (X11R6), joka julkaistiin syyskuussa 1995. |
|
| |
|
| Ohjelmia voi käynnistää X-näytölle [[komentorivi]]ltä kertomalle niille X-palvelimen osoite:
| |
| env DISPLAY=:0 xterm &
| |
| xterm -display :0 &
| |
|
| |
|
| X:ää jo käyttävillä ohjelmilla on tieto [[ympäristömuuttuja]]ssa <tt>DISPLAY</tt>, joten niistä käsin käynnistettyinä ohjelmat osaavat automaattisesti käyttää oikeaa näyttöä. X:ää käyttävät ohjelmat yleensä tunnistavat yhteisen joukon [[valitsin|valitsimia]], millä määritellään esimerkiksi minne tai kuinka isona ohjelman kuuluu avata ikunansa.
| | ==X tänään== |
| | |
| Työpöytäympäristöillä ja ikkunointiohjelmilla on myös omat tapansa käynnistää ohjelmia valikoista tai ikoneita klikkaamalla. Käynnistäminen komentoriviltä on eduksi silloin, jos tahtoo käynnistää ohjelman tietyillä parametreilla tai ympäristömuuttuja-asetuksilla tai jos virheilmoituksia ei muuten saa talteen.
| |
| | |
| ===X:n sulkeminen ja uudelleenkäynnistäminen===
| |
| X sulkeutuu sen yhteydessä käynnistetyn ohjelman myötä. Käsin käynnistettäessä tämä ohjelma määritetään [[xinit]]- tai [[startx]]-komennossa ja näiden käynnistämissä skripteissä. Graafista kirjautumisohjelmaa käytettäessä X joko käynnistyy uudestaan uloskirjautumisen yhteydessä tai vain järjestelmän käynnistyessä.
| |
| | |
| X-istunnon on perinteisesti voinut pakottaa sulkeutumaan näppäinyhdistelmällä {{näppäin|Ctrl|Alt|Backspace}} (Askelpalautin).
| |
|
| |
|
| [[X.Org]]in versiosta 1.6 lähtien (julkaistu 25.2.2009) tämä onnistuu kuitenkin vain, jos [[xorg.conf]]in <tt>ServerFlags</tt>-osioon on lisätty asetus | | XFree86-projektin lisenssi vaihdettiin tammikuussa 2004 [[GPL]]-yhteensopimattomaksi, mikä johti projektin haarautumiseen. Tällöin (versio 4.4-rc2) siitä erosi [[X.Org]]-projekti, jonka käyttöön useimmat Linux-jakelijat ovat sittemmin siirtyneet. X.orgin kehitystä rahoittavat monet suuret yritykset kuten Sun Microsystems, Red Hat, SuSE ja Hewlett Packard. |
| Option "DontZap" "false"
| |
| Joissakin jakeluissa (mm. [[Arch Linux]], [[Mandriva]], [[openSUSE]]) on myös mahdollista käyttää asetusta
| |
| Option "ZapWarning" "true"
| |
| jolloin X:n sulkeminen onnistuu antamalla näppäinyhdistelmä kahdesti peräkkäin.
| |
|
| |
|
| Jos näppäinyhdistelmä ei toimi, X:n voi sulkea komentoriviltä, yleensä eri [[virtuaalikonsoli]]lta ({{näppäin|Ctrl|Alt|F1}}). Tällöin pitää löytää sopiva ohjelma, jonka sulkeminen saa istunnon päättymään ja suljettava tämä, mahdolisesti rootin oikeuksin. Se, mikä ohjelma on sopiva, riippuu siitä miten X on käynnistetty, mutta [[gdm]], [[xinit]] tai [[Xorg]] toimivat yleensä, jos ne löytyvät prosessilistasta:
| | X.Org:in kehitysversiossa on tehty laajennuksia alkuperäiseen versioon, kuten serveripuolen anti-aliasing fonteille, sekä [[IPv6]]-tuki. |
| $ [[ps]] -C Xorg
| |
| PID TTY TIME CMD
| |
| 1234 tty7 00:11:18 Xorg
| |
| $ [[sudo]] [[kill]] -TERM 1234
| |
|
| |
|
| Jos käytössä on [[graafinen kirjautumisohjelma]], tämä yleensä heti käynnistää X:n uudestaan. Virheellinen asetustiedosto kannattaa siis korjata ennen X:n sulkemista, esimerkiksi toiselta virtuaalikonsolilta (perinteiset [[tekstieditori]]t, kuten [[emacs]], [[vi]] ja [[nano]], toimivat myös ilman X:ää, toisin kuin gedit, kate ja kwrite).
| | XFree86-projektin kehitys jatkuu kaikesta huolimatta yhä aktiivisesti. |
| | Tällä hetkellä viimeisin julkaistu vakaa versio on XFree86 4.5.0, joka julkaistiin 16. maaliskuuta 2005. |
|
| |
|
| X:n uudelleenkäynnistymisen saa estettyä joko muuttamalla [[ajotaso]]a ([[Redhat]]-pohjaiset) tai muuttamalla rc-hakemistossa linkki [[Init-skriptit|init-skriptiin]] ([[Debian]]-pohjaiset). Tämän jälken suljetaan tarvittaessa graafinen kirjautumisohjelma.
| | ==Rakenteelliset erot== |
|
| |
|
| # [[telinit]] 3
| | X eroaa toteutukseltaan tavallisesta ikkunointijärjestelmästä. X suunniteltiin alunperin toimimaan verkossa, joten se toimii asiakas–palvelin-toteutuksella. Vastaavasti normaali lähestymistapa muilla ikkunointijärjestelmillä on luoda pelkkä standalone sovellus, jolla ikkunointi toteutetaan. Asiakas–palvelin-ajattelu saattaa tuntua hieman oudolta, sillä käyttäjän työpöytäkoneella ajettavaa ohjelmistoa, joka on kosketuksissa laitteiston kanssa sanotaan X-palvelimeksi, ja X:ssä toimivat ohjelmat ovat X-asiakkaita. |
| | | X Window Systemin ja Unix-tyylisten järjestelmien rakenteen ansiosta vaikkapa seuraavanlainen tilanne on helppo toteuttaa: koneelta A käynnistetään ohjelma, niin että ohjelman ajettava tiedosto itsessään sijaitsee koneessa B, suoritus tehdään koneessa C, ja käytössä ovat koneen D näyttö, näppäimistö ja hiiri. |
| $ ls /etc/rc2.d/*dm
| |
| /etc/rc2.d/S30gdm
| |
| $ sudo [[mv]] /etc/rc2.d/{S,K}30gdm
| |
| $ [[ps]] -C gdm
| |
| PID TTY TIME CMD
| |
| 5678 tty7 00:00:00 gdm
| |
| $ [[sudo]] [[kill]] -TERM 5678
| |
| | |
| Ajotaso 3 on normaalisti ajotaso ilman X:ää, 5 X:llä. Ajotaso 2 on Debianin oletusajotaso. Tässä esimerkissä linkki S30gdm (S="start") siirretään nimelle K30gdm (K="kill"). Katso että käytät oikeita numeroita. Jakeluilla on myös erillisiä työkaluja palvelujen säätöön.
| |
| | |
| X:n voi taas ottaa käyttöön, joko väliaikaisesti komennolla [[startx]] tai vaihtamalla ajotasoa tai linkin nimeä: | |
| | |
| $ startx
| |
| | |
| # [[telinit]] 5
| |
| | |
| $ sudo [[mv]] /etc/rc2.d/{K,S}30gdm
| |
| $ sudo /etc/init.d/gdm start
| |
| | |
| ==Tietoturva==
| |
| X tarjoaa monia tapoja, joilla ohjelmat voivat häiritä tai vakoilla toistensa toimintaa. Oletus on, että ajettavat ohjelmat ovat luotettavia ja hyvin käyttäytyviä. Normaalisti tämä ei ole ongelma, sillä jos koneella ajetaan [[haittaohjelmat|haittaohjelma]], sillä on riittävät oikeudet tehdä mitä tahansa kyseisenä käyttäjänä ilmankin X:ää. Ongelma syntyy, jos toisella koneella ajettava vihamielinen ohjelma pääsee käsiksi X:n palveluihin.
| |
| | |
| Perinteisesti X kuuntelee verkkoa, koska X-asiakkaathan ovat usein toisella koneella. Nykyään etäyhteydet hoidetaan [[ssh]]:lla, joka putkittaa X-yhteydet niin että ne X:lle näyttävät tulevan samalta koneelta. X:llä on [[xauth]]-tunnistusjärjestelmä, mutta verkon kuuntelu on turhaa, siksi valitsinta <tt>-nolisten tcp</tt> kannattaa käyttää käynnistettäessä "raakaa" X:ää esimerkiksi komennoilla <tt>X</tt>, <tt>[[Xnest]]</tt> tai <tt>[[Xephyr]]</tt>. Useimmissa jakeluissa <tt>--nolisten tcp</tt> on oletuksena päällä käytettäessä komentoja <tt>xinit</tt> tai <tt>startx</tt>. Missään tapauksessa ei pidä käyttää [[xhost]]-komentoa (tarvittaessa tiedoston .Xauthority voi kopioida toiselle käyttäjälle, [[root]]in tapauksessa symlinkki tai ympäristömuuttuja XAUTHORITY riittää).
| |
| | |
| Nykyisissä X-palvelimissa on myös mahdollista ajaa osa ohjelmista suojatussa ympäristössä, jossa ne eivät pääse käyttämään X:n vaarallisimpia ominaisuuksia. Tätä ominaisuutta kannattaa käyttää, jos etäkäyttää koneita, joiden ylläpitoon tai tietoturvaan ei luota. Etäkäytössä ei välttämättä tarvitse putkittaa X:ää ollenkaan. Katso [[ssh]] ja valitsimet -x, -X ja -Y (asetustiedostossa ForwardX11 ja ForwardX11Trusted).
| |
| | |
| ==Historiaa==
| |
| Vuonna 1984 MIT:ssä käynnistettiin projekti nimeltä Athena. Projektin tavoitteena oli luoda eri valmistajien epäyhteensopivien työasemien välille verkon yli toimiva graafinen sovellusympäristö jota voitaisiin käyttää opetuksen tukena.
| |
| | |
| Projektissa syntyneellä sovelluksella voitiin ajaa paikallisia ohjelmia sekä tarvittaessa myös etäresursseja toisilta koneilta. Näin syntyi ensimäinen aidosti järjestelmäriippumaton graafinen ympäristö.
| |
| | |
| Kiinnostus yrityksissä X Window Systemiä kohtaan alkoi nousta 1986 vuoden tietämillä, ja lopulta vuonna 1988 MIT julkaisi siitä version 11 julkaisuversion 2 (X11R2).
| |
| | |
| X Window Systemin kehitys siirtyi julkaisun myötä [http://www.xfree86.org X-konsortion] hallinnoimaksi projektiksi [[XFree86]]. Viimeisin X-konsortion julkaisuversio on 6 (X11R6), joka julkaistiin syyskuussa 1995. | |
| | |
| ==X tänään==
| |
| XFree86-projektin lisenssi vaihdettiin tammikuussa 2004 [[GPL]]-yhteensopimattomaksi, mikä muiden konfliktien ohella johti projektin haarautumiseen. Tällöin (versio 4.4-rc2) siitä erosi [[X.Org]]-projekti, jonka käyttöön useimmat Linux-jakelijat ovat sittemmin siirtyneet. X.Orgin kehitystä rahoittavat monet suuret yritykset kuten [[Sun Microsystems]], [[Red Hat]], [[Novell]] ja [[Hewlett Packard]].
| |
| | |
| X.Orgin versioissa on tehty laajennuksia alkuperäiseen versioon, kuten palvelinpuolen anti-aliasing-fontit, [[IPv6]]-tuki sekä näyttöasetusten muuttaminen ajon aikana [[RandR]]-protokollan avulla.
| |
|
| |
|
| == Katso myös == | | == Katso myös == |
| *[[X.Orgin asetukset]] | | *[[Gadget]] |
| *[[Ikkunointiohjelma]] | | *[[Ikkunointiohjelma]] |
| *[[Työpöytäympäristö]] | | *[[Työpöytäympäristö]] |
| *[[X:n leikepöydät]]
| |
| *[[RandR]]
| |
| *[[Xnest]]
| |
| *[[Xephyr]]
| |
| *[[Gadget]]
| |
| *[[Widget]] | | *[[Widget]] |
| *[[Cygwin]] (X-ympäristö Windowsille) | | *[[X.orgin asetukset]] |
| | |
| == [[man]]-sivuja ==
| |
| * X(7)
| |
| * Xserver(1)
| |
| * Xorg(1)
| |
| * XFree86(1)
| |
| * XStandards(7)
| |
|
| |
|
| ==Aiheesta muualla== | | ==Linkkejä== |
| * [[wikipedia:fi:X_Window_System|X Wikipediassa]] | | * [http://www.pexus.com/ X-Deep/32 - ilmainen X-palvelin MS Windowsille] |
| * [https://www.x.org/ X.Orgin kotisivu ] | | * [http://www.x.org/ X.orgin kotisivu ] |
| * [https://www.xfree86.org XFree86:n kotisivu] | | * [http://www.xfree86.org XFree86:n kotisivu] |
| * [https://support.apple.com/en-us/HT201341 X11 macOS:lle] | | * [http://www.apple.com/macosx/features/x11/ X11 Mac OS X:lle] |
|
| |
|
| [[Luokka:Järjestelmä]] | | [[Luokka:Työpöytä]] |
| [[Luokka:X]]
| |