X fönstersystem | |
---|---|
Sorts | fönstersystem |
Utvecklaren | X.Org Foundation |
Första upplagan | 1984 |
senaste versionen | |
Licens | MIT-licens [3] |
Hemsida | x.org |
Mediafiler på Wikimedia Commons |
X Window System är ett fönstersystem som tillhandahåller standardverktyg och protokoll för att bygga ett grafiskt användargränssnitt . Används i UNIX-liknande operativsystem .
X Window System tillhandahåller de grundläggande funktionerna i den grafiska miljön: rita och flytta fönster på skärmen, interagera med inmatningsenheter som till exempel en mus och tangentbord . X Window System specificerar inte detaljerna i användargränssnittet - det görs av fönsterhanterare , av vilka många har utvecklats. Av denna anledning kan utseendet på program i X Window System-miljön variera mycket beroende på funktionerna och inställningarna för en viss fönsterhanterare.
X Window System ger nätverkstransparens : grafiska applikationer kan köras på en annan dator i nätverket , och deras gränssnitt kommer att överföras över nätverket och visas på användarens lokala dator. I samband med X Window System har termerna "klient" och "server" följande betydelser: "server" betyder användarens lokala skärm ( display server ), och "klient" är programmet som använder denna display (det kan köras på en fjärrdator).
X Window System utvecklades vid Massachusetts Institute of Technology (MIT) 1984 . Från och med februari 2016 dök protokollversionen - X11R7.7 - upp i juni 2012 . Projekt X leds av X.Org Foundation . Referensen (eller exemplifierande) implementering ( referensimplementering ) av systemet är fritt tillgänglig under villkoren för MIT-licensen och liknande licenser [4] .
X Window System kallas ofta för X11 eller helt enkelt X (i vardagsspråket "xes" ).
X Window System använder en klient-server- modell: X-servern kommunicerar med olika klientprogram . Servern accepterar förfrågningar om att visa grafik (Windows) och skickar tillbaka användarinmatning (från tangentbordet , musen eller pekskärmen ). X-servern kan vara:
Protokollet med vilket servern och klienten kommunicerar är transparent för nätverket : klienten och servern kan vara på samma maskin eller på olika. I synnerhet kan de arbeta på olika arkitekturer under olika operativsystem - resultatet blir detsamma. Klienten och servern kan till och med kommunicera säkert över Internet genom att tunnla anslutningen genom en krypterad nätverkssession.
För att köra ett fjärrklientprogram som matar ut grafik till en lokal X-server, öppnar användaren vanligtvis en terminalemulator och ansluter till fjärrmaskinen med telnet eller SSH . Den utfärdar sedan ett kommando som anger till vilken skärm grafik ska ritas (till exempel när du använder bash ). Slutligen startar användaren klientprogrammet. Den kommer att ansluta till den lokala X-servern och visa grafik på den lokala skärmen och acceptera input från lokala inmatningsenheter. Ett annat alternativ är att använda ett litet hjälpprogram som ansluter till en fjärrdator och kör önskad klientapplikation på den. export DISPLAY=[имя компьютера пользователя]:0
Att använda fjärrklienter kan vara användbart, till exempel i följande situationer:
1984 dokumenterade Bob Scheifler och Jim Gettys de tidiga principerna för att bygga X:
Sedan dess har Project X till stor del följt dessa principer. Demoimplementeringen är utformad för att utökas och förbättras, samtidigt som den förblir nästan helt kompatibel med 1987 års protokoll .
X Window System specificerar inte medvetet hur användargränssnittet för en applikation ska se ut - knappar, menyer, fönstertitlar, etc. Dessa frågor behandlas på nivån för fönsterhanterare , gränssnittsverktygssatser , skrivbordsmiljöer och på nivån för individuella ansökningar. Av denna anledning har den visuella representationen av X-gränssnitt utvecklats enormt över tiden.
Fönsterhanteraren styr placeringen och utseendet på programfönster. Det kan producera ett gränssnitt som liknar Microsoft Windows eller Macintosh (som Kwin- fönsterhanterare i KDE och Metacity i GNOME- arbete ), eller en helt annan stil (som ramfönsterhanterare som Ion ). En fönsterhanterare kan vara enkel och minimalistisk (som twm , den grundläggande fönsterhanteraren som levereras med X), eller så kan den erbjuda funktionalitet nära en komplett skrivbordsmiljö (som Enlightenment ).
Många användare använder X tillsammans med en komplett skrivbordsmiljö som inkluderar en fönsterhanterare, olika applikationer och en konsekvent gränssnittsstil. De mest populära skrivbordsmiljöerna är GNOME och KDE . Single UNIX Specification specificerar CDE - miljön . Freedesktop.org - projektet försöker tillhandahålla interoperabilitet mellan olika miljöer, såväl som de komponenter som krävs för ett konkurrenskraftigt X-baserat skrivbord.
Referensimplementeringen från X.Org Foundation, kallad X.Org Server , är den kanoniska implementeringen av X Window System. Eftersom det distribueras under en mycket liberal licens har flera varianter av det dykt upp (både gratis och proprietärt ). Kommersiella UNIX -leverantörer tar ofta en demoimplementering och anpassar den till sin egen hårdvara , vanligtvis kraftigt modifierade den och lägger till proprietära tillägg.
Fram till 2004 var XFree86 - projektet den vanligaste X-varianten för gratis UNIX-liknande operativsystem. XFree86 har sitt ursprung som en port av X till 386 - kompatibla persondatorer. I slutet av 1990-talet hade detta projekt blivit den huvudsakliga källan till teknisk innovation i X Window System och ledde de facto utvecklingen av X [5] . Men 2004 ändrade XFree86 licensvillkoren, och implementeringen av X.Org Server (som är en gaffel av XFree86, men med en gratis licens) blev vanligare.
Även om X Window System oftast förknippas med UNIX, kan X-servrar även existera i andra grafiska miljöer. OpenVMS , Hewlett-Packards operativsystem, använder version X som standard skrivbordsmiljö tillsammans med en CDE som kallas DECwindows . Apples Mac OS X 10.3 (Panther) och senare inkluderar X11.app , baserad på XFree86 4.3 och X11R6.6, med bättre integration i Mac OS X.
Microsoft Windows inkluderar inte stöd för X, men det finns många tredjepartsimplementationer, både gratis ( Cygwin/X , Xming , X-Deep/32 , WeirdMind , WeirdX ) och proprietära ( Xmanager , WiredX , Exceed , X-Win32 ). De används vanligtvis för att hantera fjärranslutna X-klienter.
För det äldre DOS- operativsystemet finns det också en implementering av X-servern, DesqView/X , som även nu tillåter skapandet av ganska enkla tunna klienter .
När X Window System körs i ett annat fönstersystem (som Microsoft Windows eller Mac OS fönsterundersystem) körs det vanligtvis i rotlöst fönsterläge . Detta innebär att rotfönstret (skärmbakgrunden och tillhörande menyer) hanteras av det externa fönstersystemet, inte av själva X Window System. Men det yttre fönstersystemet styr också geometrin för X-fönsterna som skapas inuti det. Vissa servrar (som Exceed, Xming eller Cygwin/X) kan dock också skapa ett rotfönster, i vilket fall klienterna visas i ett separat fönster på det externa systemet.
En X-terminal är en dedikerad maskinvara som driver en X-server och fungerar som en tunn klient . Denna arkitektur har blivit populär när det gäller att bygga billiga terminalparker där många användare delar en enda stor applikationsserver samtidigt . Denna användning av X Window System är väl i linje med de ursprungliga avsikterna hos utvecklarna på MIT .
X-terminaler kan lära sig nätverket (inom den lokala sändningsdomänen ) med XDMCP- protokollet , samtidigt som de sammanställer en lista över värdar på nätverket från vilka de kan starta klienter. X -displayhanteraren måste köras på ursprungsnoden .
För närvarande används inte dedikerade (hårdvara) X-terminaler i stor utsträckning: vanligtvis tillhandahåller en persondator med en X-server samma funktionalitet till en lägre kostnad.
X-servern består av en uppsättning tillägg , som var och en implementerar vissa funktioner: från att rita geometriska primitiver till att påskynda bearbetningen och visa tredimensionell grafik med videoutrustningens kapacitet. Nästan var och en av dessa moduler kan inaktiveras eller konfigureras i konfigurationsfilen .
VESA Display Data Channel (DDC™) är en standard för utbyte av information mellan en bildskärm och ett grafikkort , vilket gör att bildskärmen kan kommunicera stödda upplösningar , uppdateringsfrekvenser , bildskärmstillverkare etc. DDC-modulen stöder version 1 och 2 av DDC-specifikationen . I enlighet med mottagen data ställer den in huvudskärmens parametrar eller varnar för inkonsekvenser i de parametrar som specificeras av användaren.
X Resize, Rotate and Reflect Extension är ett X-servertillägg som implementerar funktionerna att skala, rotera och reflektera rotfönstret. Används när du ändrar upplösningen, när du ändrar bildskärmen dynamiskt (till exempel när du byter från den inbyggda laptopskärmen till en extern bildskärm). Skickar varningar till program som körs om skärmkonfigurationsändringar.
X Rendering Extension tillhandahåller funktioner för sammansättning och visning av bilder på skärmen. Gör att du kan beskära en bild, använda en färgmask med hjälp av en alfakanal , använda olika filter, förbereda och visa textinformation och visa grundläggande geometriska former.
Shape - tillägget är avsett att förbättra utseendet på användargränssnittet . Bland dess funktioner är skuggkastning av gränssnittselement för att skapa en illusion av tredimensionalitet; fönster och knappar med rundade kanter; förmågan att skapa olika former än rektangulära.
Xinerama - tillägget gör att flera bildskärmar kan representeras som en enda skärm. Med den kan du visa en konsekvent bild på stora skärmar som består av många bildskärmar. Många fönsterhanterare som för närvarande existerar stöder dock inte eller stöder inte Xinerama-specifikationen helt och visar därför en otillräcklig visning när du använder detta tillägg.
X-videotillägg - ett tillägg som låter dig snabba upp utmatningen av videoklipp till skärmen med hjälp av grafikkortets (eller snarare dess drivrutin ) funktioner och därigenom minska belastningen på den centrala processorn . Många grafikkort låter dig mata ut videobilder i YUV -färgkodningsformat (YUY2, I420, etc.), som används i standarderna för PAL , SÉCAM , NTSC analoga färg -TV- system , utan att först konvertera dem till displayens färgöverföringsformat (RGB16 / 24 / 32), såväl som omvänd kodning. Xv-tillägget ger information om tillgängliga grafikkort, antalet tillgängliga portar (varje port kan endast användas av en applikation), färgkodningsformat som stöds. All denna information kan ses med hjälp av verktyget . xvinfo
I The UNIX-HATERS Handbook ( 1994 ) ägnas ett helt kapitel [6] åt problemen med X i slutet av 1980-talet och början av 1990 -talet . Artikeln "Why X Is Not Our Ideal Window System" [7] ( 1990 ) diskuterar protokollfrågor i detalj och ger rekommendationer för förbättringar.
Idag ligger prestandagränsen för grafiska datorsystem inom området för de mest avancerade grafikfunktionerna. Hårdvarutillverkare implementerar vanligtvis dessa avancerade funktioner i proprietära drivrutiner , och dessa drivrutiner är vanligtvis skrivna främst för Microsoft Windows-system (som de vanligaste på konsumentmarknaden). Drivrutiner för många äldre grafikkort har omvandlats av XFree86- och X.Org Server - projekten . Vissa tillverkare behandlar dock sina högpresterande videoutvecklingar som affärshemligheter eller som patentskyddade uppfinningar som de inte vill avslöja.
Många nuvarande implementeringar av X styr videohårdvara direkt. En instabil X-server kan göra skärmen oanvändbar även när själva operativsystemet fortsätter att fungera normalt; detta kan kräva en omstart av hela systemet. Direct Rendering Infrastructure (DRI) är utformad för att lösa detta problem.
X Window System inkluderar avsiktligt inte användargränssnittsspecifikationer , inte heller mycket inter-program interaktion. Av denna anledning har väldigt olika gränssnitt uppstått, liksom applikationer som inte alltid fungerar korrekt med varandra. Det finns en ICCCM Client Interaction Specification , men den är känd för att vara svår att implementera korrekt. Efterföljande försök till standardisering – som Motiv-verktygslådan och CDE – fixade inte saker. Allt detta hindrar både användare och programmerare [8] . Utvecklare i dessa dagar tenderar att uppnå en konsekvent stil över applikationer genom att fokusera på en specifik skrivbordsmiljö eller verktygslåda. Det undviker också att arbeta direkt med ICCCM.
X-protokollet ger inga möjligheter att arbeta med ljud i det officiella paketet , men det finns en tillägg till protokollet för att använda ljud över ett nätverk . Support för ljudutrustning och återgivning av ljud är operativsystemets ansvar. Eftersom användarna i allt högre grad behöver ljud har denna situation lett till olika inkompatibla ljudsubsystem. Tidigare ignorerade många programmerare nätverksproblem och använde helt enkelt operativsystemets lokala ljud - API :er . Den första generationen av klient/server ljudsystem inkluderade rplay och Network Audio System . Mer moderna system är PulseAudio , esound i GNOME och aRts i KDE . Utvecklingen av ett nytt system, Media Application Server , har också påbörjats .
Tills nyligen innehöll inte X Window System en bra lösning för att skriva ut innehållet på skärmar. Många X-klienter skriver ut i PostScript -format oberoende av X-servern. Xprint -mekanismen dök upp först i X11R6.3; dess klientsida fungerade bra, till skillnad från många implementeringar på serversidan. Versioner X11R6.8 och högre fungerar normalt [9] och vinner popularitet i UI -verktygssatser .
I X Window System finns det inget sätt att koppla bort en X-klient eller session från en server och ansluta den till en annan server (som i VNC ). Arbetet med att lägga till denna funktion till X pågår redan. Det finns lösningar ( VNC-visare:0 ) som gör skärmen för den aktuella X-servern tillgänglig via VNC. Eller så kan du använda en X-klientanslutning till en proxyserver för X-server ( xpra , guievict , xmove , lbxproxy ).
Data som överförs över nätverket mellan X-servern och fjärranslutna X-klienter krypteras inte som standard . En angripare kan använda en sniffer för att fånga upp och läsa denna data. För att förhindra detta tunnlas X vanligtvis över SSH . De flesta SSH-implementeringar stöder X-applikationstunnling, även om dessa funktioner ibland är inaktiverade som standard.
Maskinvaruoberoende och separation av klienter från servrar påverkar systemets prestanda . Nätverkstransparens X kräver att klienter och server fungerar separat från varandra. Tidigare reducerade detta avsevärt prestandan för ett fristående system - jämfört med Microsoft Windows och Mac OS , där fönsterundersystemet är inbäddat djupt i själva operativsystemet. För normal drift av X Window System rekommenderades 4 till 8 MB RAM - betydligt mer (vid den tiden) än för Windows eller Mac OS.
Enligt ideologin för X Window System utförs all rendering av fönsterelement av X-servern. Men hittills har ganska många applikationer skapats (främst med hjälp av bibliotek som GTK + och Qt) som renderar element på klientsidan och överför dessa renderade element redan som en X-bild till servern. Samtidigt ställs ökade bandbreddskrav på nätverkskanaler.
Aktuella versioner av Windows och Mac OS X har en intern grafikdelsystemseparation som liknar X:s klient/serverseparation och har ungefär samma resurskrav som X med KDE eller GNOME . Det senare är ett mycket kontroversiellt uttalande, till exempel överstiger CPU-belastningen från X-serversidan avsevärt CPU-belastningen från Windows -grafikundersystemet . Minnesförbrukningen är också märkbart högre. Det mesta av overheaden i X kommer nu från nätverkslatens mellan klient och server. Det finns en vanlig missuppfattning att när du använder X Window System lokalt , påverkar dess nätverksfunktioner (onödiga i det här fallet) prestanda negativt. I själva verket använder moderna implementeringar av X lokala sockets och delat minne i ett sådant fall (t.ex. MIT-SHM ), vilket endast kräver mycket lite overhead.
UNIX-liknande operativsystem använder nästan universellt X Window System för grafikutdata. Ändå känner historien till flera försök att skapa ett alternativ eller ersättning för X. Bland dem: Sun Microsystems ' NEWS , som inte blev populärt på marknaden, och NeXT :s Display PostScript , som senare blev Apple Aqua för Mac OS X.
Det har också gjorts försök att lösa X:s problem genom att helt ersätta det; inklusive projekten Berlin / Fresco och Y Window System . Dessa projekt har dock praktiskt taget ingen spridning fått. För tillfället pågår ett utvecklingsprojekt som syftar till att minska systemkraven - MicroXwin . X.org Foundation arbetar för närvarande med att åtgärda brister i X11 genom att uppdatera undersystemen - särskilt stöd för flera markörer, och därför multitouch, har dykt upp, och inmatningsundersystemet har förbättrats avsevärt, vilket har blivit känt som Xinput2 , som har tagit bort restriktioner för nyckelskanningskoder. Trots detta dyker det upp alternativ till X11. Speciellt har Intel fullt upp med att utveckla det nya Wayland- protokollet , som är planerat som ett alternativ till X11, men till skillnad från X11 inte ger fjärråtkomst till applikationer på protokollnivå. Ubuntu- utvecklare planerade att byta till Wayland i 13.04-utgåvan, men tillkännagav senare sin egen utveckling - Mir - sitt eget grafikundersystem, som är en gaffel av SurfaceFlinger-grafikundersystemet från Android OS, vidareutvecklat av Canonicals resurser som ett oberoende projekt. I den 18:e utgåvan av Fedora -distributionen ingår Wayland som ett valfritt paket.
Andra konkurrenter försöker undvika omkostnader för X genom att arbeta direkt med hårdvaran . Exempel på sådana projekt är DirectFB och den mycket lilla FBUI . Mekanismen för Direct Rendering Infrastructure (ett försök att skapa ett tillförlitligt kärngränssnitt till videobufferten ) kan göra dessa projekt onödiga.
Det finns andra sätt att uppnå nätverkstransparens för grafiktjänster:
Före X fanns det flera rasterdisplaysystem. Från Xerox kom Alto ( 1973 ) och Star ( 1981 ). Lisa ( 1983 ) och Macintosh ( 1984 ) utvecklades hos Apple . I UNIX -världen fanns Rob Pikes Blit - terminal ( 1984 ) och Andrew -projektet ( 1982 ).
X fick sitt namn som efterträdaren till W Window System (i det latinska alfabetet , bokstaven X följer omedelbart efter bokstaven W). W-systemet körde operativsystemet V . W använde ett nätverksprotokoll med stöd för terminal- och grafiska fönster, medan servern hade listor över skärmar.
Den ursprungliga idén för X Window System uppstod vid Massachusetts Institute of Technology (MIT) 1984 som ett samarbete mellan Jim Gettis (av Athena- projektet ) och Bob Scheifler (av MIT Computer Science Lab). Scheifler behövde en användbar skärmmiljö för att felsöka Argus-systemet. Athena-projektet (ett gemensamt projekt mellan DEC , MIT och IBM för att ge enkel tillgång till datorer för studenter) behövde en plattformsoberoende grafiklösning för att sammanföra deras heterogena system bestående av produkter från olika leverantörer. Vid den tiden arbetade Andrew- projektet vid Carnegie Mellon University på ett fönstersystem, men inga licenser fanns tillgängliga för det och inga alternativ fanns.
Projektet löste dessa problem genom att skapa ett protokoll som stödde både lokala applikationer och anropande av fjärrapplikationer. I mitten av 1983 var den initiala UNIX- porten för W fem gånger långsammare än V -systemet . I maj 1984 ersatte Scheifler det synkrona protokollet med ett asynkront, och visningslistorna med direkt grafikutgång. Så kom X Window System version 1.x, ett av de första fönstersystemen som gav hårdvaruoberoende .
Scheifler, Gettys och Ron Newman började jobba och X växte snabbt. Version 6 släpptes i januari 1985. DEC , som förberedde sig för att släppa sin första Ultrix- arbetsstation vid den tiden , beslutade att X var det enda fönstersystemet som kunde färdigställas i tid. DEC-ingenjörer portade X6 till QVSS-skärmen på MicroVAX .
Under andra kvartalet 1985 implementerades färgstöd i X för att köras under DEC VAXstation -II/GPX. Denna version blev känd som version 9. Tidigare licensierade MIT X6 till vissa tredjepartsgrupper mot en avgift. Det har dock nu beslutats att distribuera X9 och framtida versioner fritt under vad som kallas MIT-licensen . X9 dök upp i september 1985.
En grupp vid Brown University överförde version 9 till IBM RT/PC , men problem med att läsa oordnade data på RT ledde till en inkompatibel ändring av protokollet, vilket resulterade i att version 10 släpptes i slutet av 1985. År 1986 började förfrågningar komma in från externa organisationer för att använda X. X10R2 släpptes i januari 1986, X10R3 i februari. X10R3 var den första versionen som blev allmänt antagen; DEC och Hewlett-Packard släppte produkter baserade på det. Andra grupper har portat X10 till Apollo , till Sun -arbetsstationer och till och med till IBM PC AT . Samtidigt demonstrerade Autofact den första kommersiella applikationen baserad på X, ett tekniskt system som körs på VAX och visas på persondatorer med en X-server. Den senaste versionen av X10 - X10R4 - dök upp i december 1986.
Även om X10 hade en del intressant och kraftfull funktionalitet, blev det tydligt att X-protokollet behövde göras mindre hårdvaruberoende innan X Window System blev för utbrett. Men MIT ensamt skulle inte kunna hantera en så stor protokollförändring. Smokey Wallace från DEC WSL- labbet och Jim Gettys föreslog att DEC WSL skulle utveckla X11 och göra den fritt tillgänglig på samma villkor som X9 och X10. Denna process började i maj 1986; protokollet var klart i augusti. Alfatestning av programvaran började i februari 1987 ; betatestning - i maj. Slutligen, den 15 september 1987, släpptes X11 officiellt.
Utformningen av X11-protokollet, som leddes av Scheifler, diskuterades flitigt på det tidiga Internets öppna e-postlistor . Således kan X betraktas som ett av de första storskaliga gratisprogramvaruprojekten .
1987 , när framgången med X11 blev uppenbar, ville MIT avstå från ytterligare kontroll över X-projektet. Men vid ett möte med nio leverantörer i juni 1987 sa leverantörerna till MIT att en neutral part behövdes för att förhindra X från att sönderfalla på marknaden. I januari 1988 bildades en ideell grupp kallad MIT X Consortium ( MIT X Consortium ). Dess mål var att hantera den fortsatta utvecklingen av X i en neutral atmosfär, med hänsyn till både kommersiella och utbildningsintressen. Scheifler blev direktör för konsortiet. Jim Fulton och Keith Packard gick med som seniorutvecklare i januari respektive mars 1988. Samtidigt arbetade Jim främst med Xlib , typsnitt , fönsterhanterare och verktyg , och Keith var engagerad i att omarbeta servern. Donna Converse och Chris Peterson gick med senare samma år; deras fokus låg på verktygssatser och gränssnittssatser , och de arbetade nära med Ralph Swick från MIT :s Athena -projekt. MIT X Consortium har släppt flera betydande uppdateringar till X11; den första av dessa (X11R2) kom ut i februari 1988.
1993 bildades efterträdaren till MIT X Consortium, nonprofit X Consortium, Inc .. Under hennes ledning , den 16 maj 1994, släpptes X11R6-versionen. 1995 tog företaget över utvecklingen av verktygslådan Motif och CDE- miljön för UNIX- system. X-konsortiet upplöstes i slutet av 1996 med lanseringen av den senaste versionen, X11R6.3, vilket lämnade efter sig ett ökande kommersiellt inflytande i utvecklingen. [11] [12]
I mitten av 1997 överlät X-konsortiet ledarskapet för X-projektet till The Open Group , som bildades 1996 genom sammanslagningen av Open Software Foundation och X/Open .
The Open Group släppte X11R6.4 i början av 1998 . Med den här versionen beslutades det att släppa den traditionella liberala licensen eftersom The Open Group ville ge ekonomiskt stöd för utvecklingen av X. [13] De nya villkoren hindrade många projekt (som XFree86 ) och även vissa kommersiella leverantörer från att acceptera denna version. Efter att XFree86 hotade att splittra [14] ändrade The Open Group distributionen av X11R6.4 tillbaka till en traditionell licens i september 1998. [15] Den senaste versionen under The Open Group var X11R6.4 patch 3.
XFree86 -projektet har sitt ursprung 1992 från X386-servern för IBM PC -kompatibla datorer. X386 skrevs av Thomas Roell och Mark Snitily, donerades till MIT Consortium X av Snitily Graphics Consulting Services (SGCS) och införlivades i X11R5 1991 . Med tiden utvecklades XFree86 från bara en fristående port av X till den ledande och mest populära implementeringen av systemet, och blev de facto ledare inom X-utveckling. [16]
I maj 1999 grundades X.Org av The Open Group . X.Org kontrollerade utgåvan av versionerna X11R6.5.1 och högre. Vid denna tidpunkt stoppade utvecklingen av X praktiskt taget [17] ; teknisk innovation skedde främst inom ramen för XFree86-projektet [18] . 1999 gick XFree86-teamet in i X.Org som hedersmedlem [19] , uppmuntrat av olika hårdvaruföretag [20] som var intresserade av att använda XFree86 med Linux och i dess status som den mest populära versionen av X.
X.Org och XFree86 har börjat diskutera en omorganisation för att säkerställa full utveckling av X [21] [22] [23] . Jim Gettis har drivit på för en öppen utvecklingsmodell sedan åtminstone 2000 [12] . Gettys, Packard och andra började länge diskutera de förändringar som skulle krävas för att gå mot effektiv X-utveckling med öppen källkod.
Fram till 2003 , medan populariteten för Linux (och därmed förekomsten av X) växte, var X.Org vilande [24] och den mesta utvecklingen skedde i XFree86. XFree86-projektet led av en alltför sluten utvecklingsmodell: programmerare kunde inte få skrivåtkomst till CVS- förvaret, och leverantörer var tvungna att underhålla omfattande patchuppsättningar [25] . I mars 2003 utvisade XFree86-organisationen Keith Packard , som hade gått med i XFree86 efter kollapsen av MIT X-konsortiet; detta gjordes i en mycket ovänlig miljö [26] [27] [28] .
Slutligen, i februari 2004, släppte XFree86-projektet version 4.4 under en mer begränsad licens : det lade till en klausul som liknar reklamklausulen i den ursprungliga BSD-licensen . Många projekt som förlitade sig på X fann en sådan licens oacceptabel. FSF och Debian ansåg att den tillagda klausulen var oförenlig med villkoren i GNU GPL [29] . Andra grupper (som OpenBSD ) ansåg att det var emot XFree86s ursprungliga anda att införa ytterligare licensbegränsningar. På grund av dessa licensproblem skapade XFree86s stängda karaktär den rätta atmosfären för en gaffel .
I början av 2004 grundade representanter från X.Org och freedesktop.org X.Org Foundation . The Open Group gav honom kontroll över domännamnet x.org . Detta var en game changer för X-utveckling. Medan förvaltarna av X sedan 1988 (inklusive den tidigare X.Org) var leverantörsorganisationer, grundades X.Org Foundation av mjukvaruutvecklarna själva och använde en öppen utvecklingsmodell baserad på input från utsidan. Medlemskap har öppnats upp för privatpersoner och företagsmedlemskap presenteras i form av sponsring. X.Org Foundation stöds för närvarande av flera stora företag som Hewlett-Packard och Sun Microsystems .
Foundation släppte X11R6.7 - X.Org Server - i april 2004. Denna version baserades på XFree86 4.4RC2 (den senaste versionen av XFree86 släpptes under den gamla licensen ), med X11R6.6-ändringar tillagda. Genom att anta en öppen utvecklingsmodell och bibehålla GNU GPL -kompatibilitet har projektet lockat många tidigare XFree86-utvecklare [29] .
X11R6.8 släpptes i september 2004. Det inkluderade betydande innovationer, inklusive preliminärt stöd för genomskinliga fönster och andra komplexa visuella effekter, skärmförstorare och miniatyrer, och integration med 3D-displaysystem (som Sun's Looking Glass -projektet och Croquet -projektet ). Utseendepolicy tillhandahålls av tredjepartsprogram som kallas komposithanterare .
Tack vare X.Org Foundation och freedesktop.org har utvecklingen av X Window System accelererat igen. Utvecklarna planerar att släppa nuvarande och framtida versioner som färdiga att använda produkter, och inte bara som bas för produkter byggda av leverantörer.
Den 21 december 2005 släppte stiftelsen [30] X11R6.9, ett monolitiskt källträd för äldre system, och X11R7.0, samma källkod uppdelad i oberoende moduler som kan underhållas som separata projekt [31] . Version X11R7.1 släpptes den 22 maj 2006, ungefär fyra månader efter 7.0, och innehåller betydande förbättringar [32] .
I framtiden är X-servern planerad att komma åt videohårdvara exklusivt via OpenGL och Direct Rendering Infrastructure (DRI) på kombinationer av hårdvara och operativsystem som stöder sådan åtkomst. DRI-infrastrukturen dök först upp i XFree86 version 4.0 och blev standard i X11R6.7 och senare [33] . Många operativsystem har börjat lägga till stöd för kärnan . Arbete inom detta område pågår.
Datorexperter förkortar ofta det fullständiga namnet "X Window System" till "X11" eller helt enkelt "X". Termen "X Windows" (på samma sätt som " GNU/Linux " eller " Microsoft Windows ") är officiellt utfasad och anses vara felaktig, även om den har använts flitigt sedan början av Xs historia, inklusive medvetet för litterär effekt ( till exempel i boken " The UNIX -HATERS Handbook ").
Version | Utgivningsdatum | Stora ändringar |
---|---|---|
X1 | juni 1984 | Namnet "X" används för första gången. Grundläggande förändringar som skiljer produkten från W . |
X6 | januari 1985 | Första versionen licensierad till flera externa företag. |
X9 | september 1985 | Färgstöd. Första utgåvan under MIT-licensen . |
X10 | slutet av 1985 | IBM RT/PC , AT (under DOS ) och andra. |
X10R2 | januari 1986 | |
X10R3 | februari 1986 | Första utgåvan utanför MIT . uwm blir standardfönsterhanteraren . |
X10R4 | december 1986 | Senaste versionen av X10. |
X11 | 15 september 1987 | Första utgåvan av det aktuella protokollet . |
X11R2 | februari 1988 | Första utgåvan under MIT X Consortium. [34] |
X11R3 | 25 oktober 1988 | XDM . |
X11R4 | 22 december 1989 | XDMCP ; twm blir standardfönsterhanteraren; förbättringar av tillämpningar; Formförlängning; nya typsnitt . |
X11R5 | 5 september 1991 | PEX ; Xcms (färghantering); teckensnittsserver; X386; xvideo förlängning . |
X11R6 | 16 maj 1994 | ICCCM version 2.0; Inter-Client Exchange; X Session Management; X Synkroniseringstillägg; X Bildförlängning; XTEST förlängning; X-ingång; X stora förfrågningar; XC-MISC; ändringar i XFree86 . |
X11R6.1 | 14 mars 1996 | X Dubbelbuffertförlängning; X tangentbordsförlängning; X Record extension. |
X11R6.2 X11R6.3 (Broadway) |
23 december 1996 | WWW funktionalitet ; LBX . Senaste releasen leds av X Consortium. X11R6.2 är en delmängd av X11R6.3 där de enda skillnaderna från R6.1 är Xprint och Xlibs implementering av vertikal skrivning och stöd för användardefinierade tecken. [35] |
X11R6.4 | 31 mars 1998 | Xinerama . [36] |
X11R6.5 | X.Org intern release ; inte gjorts tillgänglig för allmänheten. | |
X11R6.5.1 | 20 augusti 2000 | |
X11R6.6 | 4 april 2001 | Bugfixar ; _ ändringar i XFree86. |
X11R6.7.0 | 6 april 2004 | Första versionen av X.Org Server av X.Org Foundation som en gaffel av XFree86 4.4 RC2. Den främsta anledningen till detta var att vissa projektdeltagare inte var överens om den nya XFree86 4.4-licensen. Många av de tidigare XFree86-utvecklarna gick senare med i X.Org Server-projektet.
Ta bort XIE, PEX och libxml2. [37] |
X11R6.8.0 | 8 september 2004 | Fönster genomskinlighet; XDamage; Distribuerad Multihead X; XFixes ; Sammansatt; xevie. |
X11R6.8.1 | 17 september 2004 | Åtgärda en sårbarhet i libxpm . |
X11R6.8.2 | 10 februari 2005 | Fixa buggar, uppdatera drivrutiner . |
X11R6.9 X11R7.0 |
21 december 2005 | För första gången lades ett modulärt byggsystem till. 6.9.0 använde fortfarande det gamla Imake- byggsystemet , medan 7.0.0-systemen redan använde Autotools . Som ett resultat erhölls en modulversion 7.0 och en monolitisk version 6.9
från en uppsättning källkoder . EXA , signifikant kodrefaktorering . [38] |
X11R7.1 | 22 maj 2006 | EXA-förbättringar; Kdrive integration ; AIGLX ; förbättringar av stöd för olika operativsystem och plattformar. [39] |
X11R7.2 | 15 februari 2007 | Borttagning av LBX [40] och inbyggd tangentbordsdrivrutin, X-ACE , XCB , AutoConfig-förbättringar. |
X11R7.3 | 6 september 2007 | X11R7.3: XServer 1.4, automatisk identifiering av HAL -enheter , DTrace-användning, PCI -domänstöd .
Xorg server 1.4 - se Server14Branch för mer information. höjdpunkter:
|
X11R7.4 | 23 september 2008 | XServer 1.5.1, XACE , PCI-omarbetning, EXA-optimeringar, _X_EXPORT, GLX 1.4, snabbare start och avstängning. [42] |
X11R7.5 | 26 oktober 2009 | XServer 1.7.0 [43] , Xi 2, XGE, E-EDID- stöd , RandR 1.3, MPX , förutsägbar pekaracceleration, användning av DRI2- minneshanterare , användning av SELinux , borttagning av föråldrade bibliotek och tillägg. |
X11R7.6 | 20 december 2010 [44] | XServer 1.9.0, byte från enhetshantering från HAL-undersystemet (Hardware Abstraction Layer) till att använda udev-biblioteket, möjligheten att skapa konfigurationsfiler för enskilda enheter, ABI för gränssnitten som ansvarar för video I/O har ändrats, och vissa tillägg [45] [46] . |
X11R7.7 | 6 juni 2012 [47] | XServer 1.12, multi- touch -stöd , förbättrad byggprocess för dokumentation från DocBook XML och initialt stöd för GLX och XKB i XCB . |
X fönstersystem | |
---|---|
Arkitektur |
|
Fönsterhanterare |
|
Tillägg |
|
Genomföranden | |
Standarder | |
Ansökningar |
|
Gratis och öppen källkod | |
---|---|
Huvudsaken |
|
gemenskap |
|
Organisationer | |
Licenser | |
Problem | |
Övrig |
|
|
Öppna gruppstandarder | |
---|---|