Ero sivun ”X Window System” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
X.org -> X.Org, linkit päivitetty
Pb (keskustelu | muokkaukset) Ei muokkausyhteenvetoa |
p (X.org -> X.Org, linkit päivitetty) |
||
(27 välissä olevaa versiota 12 käyttäjän tekeminä ei näytetä) | |||
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 kä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 | == Rakenne ja käyttöliittymät == | ||
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. | |||
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. | |||
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]]). | |||
==Käyttö== | |||
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}}. | |||
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. | |||
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 | |||
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: | |||
$ [[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). | |||
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. | |||
# [[telinit]] 3 | |||
$ 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== | ==Historiaa== | ||
Rivi 10: | Rivi 82: | ||
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ö. | 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 | 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 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== | ==X tänään== | ||
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. | 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. | |||
X | |||
== Katso myös == | == Katso myös == | ||
*[[X. | *[[X.Orgin asetukset]] | ||
*[[Ikkunointiohjelma]] | *[[Ikkunointiohjelma]] | ||
*[[Työpöytäympäristö]] | *[[Työpöytäympäristö]] | ||
*[[X:n leikepöydät]] | |||
*[[RandR]] | |||
*[[Xnest]] | |||
*[[Xephyr]] | |||
*[[Gadget]] | *[[Gadget]] | ||
*[[Widget]] | *[[Widget]] | ||
*[[Cygwin]] (X-ympäristö Windowsille) | |||
== [[man]]-sivuja == | |||
* X(7) | |||
* Xserver(1) | |||
* Xorg(1) | |||
* XFree86(1) | |||
* XStandards(7) | |||
== | ==Aiheesta muualla== | ||
* [[wikipedia:fi:X_Window_System|X Wikipediassa]] | * [[wikipedia:fi:X_Window_System|X Wikipediassa]] | ||
* [ | * [https://www.x.org/ X.Orgin kotisivu ] | ||
* [https://www.xfree86.org XFree86:n kotisivu] | |||
* [ | * [https://support.apple.com/en-us/HT201341 X11 macOS:lle] | ||
* [ | |||
[[Luokka:Järjestelmä]] | [[Luokka:Järjestelmä]] | ||
[[Luokka: | [[Luokka:X]] |