X Window-systeem
Dit artikel is ter verbetering opgenomen in het Linux-project . Help het bewerken en neem deel aan de discussie ! |
De volgende verbeteringen zouden goed zijn: De stuurprogrammaproblemen van de Nouveau-stuurprogramma worden niet genoemd, evenals de beperkingen op het gebied van taalwisseling. Dat moet worden toegevoegd. - A. Abdel-Rahim ( discussie ) 10:57, 20 maart. 2020 (MET)
X Window-systeem | |
---|---|
![]() | |
Basis data | |
Onderhouder | Stichting X.Org |
ontwikkelaar | X.Org Foundation , Keith Packard |
Jaar van uitgave | 1984 |
Huidige versie | X11R7.7 (6 juni 2012, daarin: X.Org-Server 1.20.7 (14 januari 2020) [1] ) |
besturingssysteem | unixoide ( BSD , macOS , Linux enz.), VMS |
programmeertaal | C. |
categorie | Grafische gebruikersinterface , netwerkprotocol |
Licentie | MIT-licentie |
Duits sprekend | Nee |
www.x.org |




Het X Window-systeem (ook X-versie 11 , X11 , X ) is een netwerkprotocol en software die vensters op bitmapweergaven op de meeste Unix-achtige besturingssystemen en OpenVMS mogelijk maakt . X11 is geïmplementeerd op alle gangbare besturingssystemen.
Het biedt een standaard bouwpakket en het protocol voor het bouwen van een grafische gebruikersinterface . Dit omvat het tekenen en verplaatsen van vensters op het scherm, evenals het verwerken van gebruikersinvoer met de muis en het toetsenbord. X schrijft geen speciale gebruikersinterface voor , maar laat dit over aan zijn clientprogramma 's. Daarom kunnen op X gebaseerde omgevingen sterk verschillen in hun uiterlijk. Dit wordt tegengegaan met behulp van desktopomgevingen - de bekendste, KDE en Gnome worden rechts getoond. Eindgebruikers komen op moderne Unix-desktops nauwelijks in aanraking met de kernprogramma's van het X Window System.
Eerdere weergaveprotocollen konden alleen ingebouwde of direct aangesloten beeldschermen beheren. Daarnaast is X specifiek ontworpen als client-serversysteem , dat zowel lokaal als netwerktransparant gebruik mogelijk maakt.
De X.Org Foundation heeft vandaag de leiding over het project en heeft op 6 juni 2012 versie 7.7 van de referentie-implementatie uitgebracht als vrije software onder de MIT-licentie . Een andere implementatie die in de jaren negentig veel werd gebruikt, is XFree86 . Wayland zal als opvolger dienen.
verhaal
X is in 1984 ontwikkeld in het Athena-project in samenwerking metMIT , DEC en IBM . [2] De eerste versie werd gepresenteerd op 19 juni 1984, en in 1986 werd X 10.4 met groot succes verspreid onder alle geïnteresseerden tegen een kleine vergoeding, wat de eerste keer was dat X op grote schaal werd gebruikt op de Unix-computers van die tijd . De X10 was echter niet compatibel met de latere X11. [3] In september 1987 volgde uiteindelijk de eerste release van X11.
Toen de populariteit in 1988 groeide, werd het niet-commerciële X-Consortium opgericht, dat de verdere ontwikkeling overnam. Het bracht verschillende versies uit, de laatste grote was de X11R6 in 1994. Daarna nam The Open Group de ontwikkeling en standaardisatie over. Tegelijkertijd werd de gratis X-implementatie XFree86 steeds populairder en werd de de facto standaard voor de X-implementatie. In 2003 waren er echter project-interne en licentieproblemen met XFree86, wat uiteindelijk leidde tot de ontbinding van het ontwikkelteam. Onder de paraplu van de toen nieuw opgerichte X.Org Foundation werd een spin-off van het oude XFree86 verder ontwikkeld, die grotendeels in zijn voetsporen volgde onder de naam X.Org-Server . Sinds ongeveer 2005 wordt het beschouwd als de meest verspreide X-server en dus de meest verspreide X-implementatie.
technologie


De X-server bestuurt de invoer- en uitvoerapparaten zoals aanwijsapparaten (bijv. muis ), toetsenbord, monitor en grafische kaart. Om dit te doen, communiceert het in theorie met de kernel van het besturingssysteem, maar in de praktijk wordt de kernel ook omzeild. Het onderliggende concept is een uitbreiding van het terminalconcept met grafische gebruikersinterfaces: voor grafische invoer (muis) en uitvoer (venstertechnologie) vertrouwt een programma op de diensten van een ander gespecialiseerd programma (X-server); communicatie vindt altijd plaats via de Netwerk.
De weergave bij X is die van een op rasterafbeeldingen gebaseerde vensterbeheerder die verschillende functies biedt. Dit omvat het tekenen en verplaatsen van de vensters, gebeurtenisgeoriënteerde afhandeling van een aanwijsapparaat, b.v. B. een muis, de interprocescommunicatie en deels ook de beheerfuncties voor print en audio output. X is dus een minimaal systeem waarin alleen primitieven zoals lijnen, patronen, etc. worden voorzien om te tekenen.
Het daadwerkelijke uiterlijk en gedrag van het window-systeem wordt dus niet bepaald door X, maar door de windowmanager , die net als een normale applicatie gewoon als client van de X-server draait. Hij is echter niet verantwoordelijk voor het uiterlijk van de programma's zelf.Dit wordt meestal gedaan door de zogenaamde GUI-toolkit , die de typische elementen van een grafische gebruikersinterface tekent en beheert, zoals B. Menu's en knoppen nemen het over. Zie ook desktopomgeving .
communicatiemodel
X is gebaseerd op een client-servermodel :
- De X-server draait op de computer op het werkstation en stelt zijn (grafische) diensten ter beschikking aan de X-clients. Het bevat het stuurprogramma voor de grafische kaart, evenals stuurprogramma's voor toetsenbord, muis en andere invoerapparaten (zoals grafische tablets) en communiceert met de X-client via interprocescommunicatie.
- De X-client is het applicatieprogramma dat gebruikmaakt van de grafische invoer-/uitvoerservices van de X-server. Het kan op dezelfde of op een externe computer worden uitgevoerd (mits er een netwerkverbinding tussen de twee is). De X-client gebruikt de diensten van de X-server om een grafische weergave te verkrijgen en ontvangt hiervan de verschillende gebeurtenissen (gebeurtenissen) zoals toetsaanslagen, muisbewegingen, klikken, enz.
X-terminal
Het op tekst gebaseerde terminalsysteem dat bekend is in de mainframewereld (er zijn meestal propriëtaire zoals IBM 5250 en 3270 ; onder Digital VMS de bekende seriële terminals zoals bijvoorbeeld VT100 ) beleefde zijn grafische ontwikkeling tot de X-Terminal ; een computer waarop niets anders dan een X-server draait. Deze X-Terminals worden vaak gebruikt om toegang te krijgen tot rekenintensieve applicaties met low-performance computers: de applicatie zelf draait op een server, de X-Terminal geeft alleen de grafische gebruikersinterface weer.
Inmiddels is het gebruikelijk geworden om standaard pc- hardware te gebruiken in plaats van speciale hardware voor X-terminals. Hiermee kunnen de functies van X-Terminals goedkoop worden geïmplementeerd, bijvoorbeeld in de vorm van thin clients .
3D-versnelling
Om snelle 3D-versnelling mogelijk te maken, biedt het X Window-systeem de Direct Rendering Infrastructure (DRI) -interface, die programma's kunnen gebruiken om rechtstreeks toegang te krijgen tot de 3D-hardware. In het geval van gratis stuurprogramma's gebeurt dit via de OpenGL- implementatie Mesa 3D , in het geval van propriëtaire stuurprogramma's via propriëtaire implementaties van OpenGL.
Met behulp van 3D-extensies zoals AIGLX en Xgl , de X.Org server ondersteunt ook 3D-effecten op het bureaublad zelf.
Versterken
Het X-System is vanaf het begin ontworpen voor een efficiënte netwerkwerking. De communicatie tussen client en server vindt plaats via een gestandaardiseerd protocol dat slechts relatief lage overdrachtssnelheden vereist. Hoewel de broncode van het X-systeem objectgeoriënteerd is, is deze nog steeds in C geschreven, zodat deze op bijna elke Unix-computer kan worden vertaald. In tegenstelling tot de huidige MS Windows- versies maakt het X-systeem geen deel uit van het besturingssysteem, daarom heeft een crash van X meestal geen invloed op de integriteit ervan : als de X-server crasht of niet meer reageert, kunnen de clients reageren en z . Wacht bijvoorbeeld tot de X-server opnieuw is opgestart of beëindigd (wat meestal het geval is). Verder heeft de windowmanager (de "gebruikersinterface") in principe dezelfde status als een X-client: de ene windowmanager kan tijdens het gebruik door een andere worden vervangen. Zelfs zeer kleine windowmanagers (bijv. twm , ongeveer 140 KB ) kunnen comfortabel worden gebruikt.
De doordachte, hiërarchische opbouw van het systeem maakt bijvoorbeeld het volgende mogelijk:
- Bedien meerdere beeldschermwerkstations op één X-server.
- Voer voor ontwikkelings- en testdoeleinden een X-server uit in een venster van een andere X-server.
- Programma's uitvoeren op een computer met totaal andere hardware en software dan de besturingscomputer.
Vergeleken met hardware vindt de verdere ontwikkeling van X plaats op grote tijdschaal en met slechts kleine wijzigingen. Compatibiliteitsproblemen doen zich dus niet voor als alleen standaardbibliotheken worden gebruikt. Een groot aantal X-clients gebruikt tegenwoordig echter extensies zoals Xft , XVideo of Xinerama .
De strikte scheiding van het X Window-systeem van de gebruikersinterface leidt tot een relatief flexibel systeem, dat echter ook erg inconsistent kan lijken: aangezien het ontwerp van de gebruikersinterface-elementen, in tegenstelling tot Windows of Mac OS, niet uit de set komt ontwerp van de belangrijkste GUI-toolkit , maar er zijn verschillende toolkits (inclusief Qt en GTK + ) met verschillende eigenschappen die verschillende ontwerpen gebruiken, het kan voorkomen dat elk van de gebruikte programma's een ander uiterlijk en gedrag vertoont.
zwakke punten
Met xinput list
en xinput test id
functioneert de X-server als keylogger , waarbij zelfs het sudo- wachtwoord kan worden uitgelezen. Voorwaarde voor dit type aanval is dat er al een X-server met root
draait. Veel Linux-distributies verhinderen daarom dat je in de standaardconfiguratie als root
inlogt. [4] Er wordt al enkele jaren gewerkt aan Wayland , dat de X-server moet vervangen. Wayland zou aanzienlijk minder beveiligingslekken bevatten dan X. [5] [6]
Benaderingen voor verbetering
Transmissiesnelheid:
Er zijn verschillende benaderingen ontwikkeld om de transmissiesnelheid te verbeteren:
- Compressie van de transmissiegegevens,
- Creëren van een cache voor reeds overgedragen gegevens en
- Vermindering van de invloed van de pakketcyclustijd tussen X-client en X-server door efficiëntere programmering.
Verschillende projecten proberen deze technieken te implementeren. De XCB- bibliotheek is een nieuwe versie van de Xlib- bibliotheek, die het dataverkeer tussen client en server in de X-server regelt. Bij de ontwikkeling van XCB wordt bijzonder belang gehecht aan verhoogde efficiëntie.
Bekend is ook het NX- project van het Italiaanse NoMachine, met behulp van een cache en datacompressie kan X ook via modemlijnen worden gebruikt.
Het Low Bandwidth X-project van Keith Packard heeft in het verleden op dit gebied gewerkt. Het idee was om een uitbreiding van het X-protocol te creëren om de netwerktransparantie zelfs voor lage bandbreedtes bruikbaar te maken. Met de release van X11R6.3 door het X Consortium in december 1996, werd LBX een volledige uitbreiding van het X-protocol. Maar omdat het nooit op grote schaal werd gebruikt en slechts een oplossing kon bieden voor een deel van de problemen, werd het project in de loop van 2000 dood verklaard door Keith Packard. [7]
Verhoogde uniformiteit
Ook bij een aantal projecten werd gestreefd naar meer uniformiteit. Benaderingen waren het creëren van een bureaubladoppervlak met uniforme oppervlakbibliotheken of het vervangen van X door een op een hoger niveau opgezet systeem, waarbij vanaf het begin een uniforme behandeling van oppervlakte-elementen was inbegrepen. Het Fresco-project en het Y Window-systeem hebben elk oplossingen ontwikkeld om de tweede benadering te implementeren, maar de projecten zijn momenteel slapend.
Een andere aanpak die actief is nagestreefd, is het streven naar consistentie tussen de verschillende toolkits door middel van gemeenschappelijke richtlijnen voor gebruikersinterfaces en softwaregedrag. Deze aanpak wordt voornamelijk nagestreefd in het kader van het freedesktop.org- project. B. aan uniforme normen voor iconen.
anderen
Begin jaren negentig was de volledige X11- distributie vaak het grootste bestand (ongeveer 10 tot 50 MB ) op Unix-computers. Omdat het ook gratis was , werd het vaak gebruikt, of op zijn minst bedreigd, als postbom . "Zal ik een X11R3 sturen" stond daarom in Usenet , een running gag order. Beginners vestigen de aandacht op misstanden.
De X11-kleuren vormen tegenwoordig de basis van de kleurnamen in CSS .
Zie ook
- X-displaymanager
- Cygwin / X (Windows-implementatie)
- Xming (Windows-implementatie)
- XQuartz (macOS-implementatie)
- Kwartscomposiet
- Rio (software)
- Categorie: X-server
literatuur
- Xlib-programmeerhandleiding . O'Reilly & Associates
web links
Individueel bewijs
- ↑ Michael Larabel: X.org-server 1.20.7 uitgebracht met een handvol fixes voor GLAMOR + modesetting. phoronix.com internetportaal, 14 januari 2020 (Engels)
- ↑ Jürgen Seeger: Het X Window-systeem wordt 30. Op 19 juni 1984 liep het eerste prototype van het netwerkbrede, grafische venstersysteem X, dat tot op de dag van vandaag standaard is op Unix- en Linux-systemen. In: Heise online . 20 juni 2014, geraadpleegd op 20 juni 2014 .
- ^ Het X Window-systeem . In: Guidebook , per 25 juni 2005 (Engels); oorspronkelijk in byte , uitgave 1/89, blz. 353-360; geraadpleegd op 31 mei 2013.
- ↑ Michael Plura: ontgrendeld: rootrechten met X.Org - iX Magazin. In: heise.de. 29 oktober 2018. Ontvangen op 29 oktober 2018 .
- ↑ De blog van The Invisible Things Lab: The Linux Security Circus: over GUI-isolatie. In: theinvisiblethings.blogspot.com. 23 april 2011. Ontvangen op 28 oktober 2018 .
- ↑ Linux en BSD: beveiligingslek in X.org maakt rootrechten mogelijk - Golem.de .
- ↑ Bij LBX postmortaal. Keithp.com, vanaf 2000 (Engels), geraadpleegd op 31 mei 2013.