X fönstersystem

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 27 maj 2022; kontroller kräver 3 redigeringar .
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" ).

Klient-servermodell och nätverkstransparens

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:

Principer för konstruktion av X

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 .

Användargränssnitt

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.

Implementeringar

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.

X terminaler

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.

Tillägg

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 .

DDC

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.

RANDR

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.

Xrender

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.

form

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

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.

xv

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

Begränsningar och kritik av X

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.

Videoutrustning

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.

Användargränssnittsfunktioner

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 .

Nätverk

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.

Konkurrenter X

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:

Historik

Föregångare

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.

Ursprung och tidiga utvecklingar

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 .

X MIT Consortium och X Consortium, Inc.

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]

Den öppna gruppen

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.

X.Org och XFree86

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 .

X.Org Foundation

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 . 

Ytterligare utveckling

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.

Titel

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 ").

Utgivningshistorik

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:

  • RandR 1.2: RandR 1.2 erbjuder utgångshotplug, såväl som omkonfigurering av utgången i farten och lägesväxling.
  • Input hotplug: Input hotplug tillåter hotplugging av indataenheter, och lägger även till förbättrat stöd för pekskärmar och surfplattor, antingen genom HAL eller D-Bus.
  • KDrive: Många förbättringar har gjorts av KDrive-kodbasen, inklusive bättre stöd för flera inmatningsenheter.
  • DTrace: När du kör på OpenSolaris är DTrace-stöd tillgängligt på X-servern, vilket möjliggör detaljerad redovisning av operationer inuti servern.
  • EXA: En hel del arbete har gjorts på EXA-ramverket för att göra det mer användbart.
  • Nya applikationer: xbacklight
  • Nya drivrutiner: xf86-video-glide, xf86-video-vermilion
  • Nya man-sidor för API:er: libXinerama, libXcomposite, XKB-funktioner i libX11, Xtest-funktioner i libXtst
  • Stöd för teckensnittskatalogkataloger i teckensnittssökväg
  • xdm: Xft-stöd lagt till [41] .
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 .

Se även

Anteckningar

  1. http://www.x.org/wiki/Releases/7.7/
  2. https://www.x.org/releases/current/
  3. https://x.org
  4. Licenser  _ _ X.Org Foundation (mars 2004). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  5. Jim Gettys . Brev till XFree86-forumet . Tillträdesdatum: 4 januari 2007. Arkiverad från originalet 29 januari 2011.
  6. Don Hopkins. X-Windows-  katastrofen . UNIX-HATERS-handboken . Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  7. Hania Jajewska, Mark Menes, Joel McCormack. Varför X inte är vårt idealiska fönstersystem  // Programvara - övning och erfarenhet. - 1990. - T. 20 , nr S2 . Arkiverad från originalet den 10 september 2014.
  8. Re: X är smärtsamt . Hämtad 29 juni 2006. Arkiverad från originalet 6 juli 2017.
  9. Xprint Vanliga frågor  . Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  10. airWRX-SVG Terminal . Hämtad 29 juni 2006. Arkiverad från originalet 17 december 2007.
  11. mako. Finansiering av frivilliga projekt för fri programvara  (engelska) (15 juni 2005). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  12. ^ 1 2 Jim Gettys . Lärdomar om öppen källkod  (engelska) (2000). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  13. Shaleh. xstate  (engelska)  (inte tillgänglig länk) (2 april 1998). Hämtad 29 juni 2006. Arkiverad från originalet 1 april 2004.
  14. Matthew Arnison. Medlen till ett X för Linux: en intervju med David Dawes från XFree86.org  (engelska)  (länk ej tillgänglig) (juni 1999). Hämtad 29 juni 2006. Arkiverad från originalet 18 april 2002.
  15. Christopher Brown. X11R6.4 Exempel på implementeringsändringar och problem  (  otillgänglig länk) . Hämtad 29 juni 2006. Arkiverad från originalet 11 augusti 2002.
  16. [https://web.archive.org/web/20070930185501/http://www.xfree86.org/pipermail/forum/2004-February/003945.html Arkiverad 30 september 2007 på Wayback Machine [forum] Re : Meddelande: Ändring av baslicensen för XFree86™] Arkiverad kopia (nedlänk) . Hämtad 29 juni 2006. Arkiverad från originalet 7 september 2005. 
  17. Robert Mitchell. Frågor och svar: X  Factor . ComputerWorld (4 februari 2002). Hämtad 29 juni 2006. Arkiverad från originalet 23 augusti 2011.
  18. Keith Packard . The Evolution of the X Server Architecture  (engelska) (1999). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  19. [forum] A Call for Open Governance Of X Development Arkiverad från originalet den 12 februari 2005.
  20. ↑ XFree86 går med i X.Org som hedersmedlem  . Slashdot (1 december 1999). Hämtad 29 juni 2006. Arkiverad från originalet 23 augusti 2011.
  21. [forum] A Call for Open Governance Of X Development Arkiverad 22 december 2004.
  22. [forum] A Call For Open Governance Of X Development Arkiverad från originalet den 6 januari 2005.
  23. [forum] Diskutera frågor Arkiverad 27 december 2004.
  24. [forum] En annan telekonferens delvis redigerad avskrift Arkiverad från originalet den 12 februari 2005.
  25. mharris. Dagbok för mharris  (engelska) (9 januari 2003). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  26. [forum] Inbjudan till offentlig diskussion om framtiden för X Arkiverad 12 februari 2005.
  27. [forum] A Call for Open Governance Of X Development Arkiverad från originalet den 12 februari 2005.
  28. [forum] Anteckningar från en telefonkonferens som hölls 2003-3-27 Arkiverade från originalet den 12 februari 2005.
  29. 1 2 David Wheeler . The Cautionary Tale of XFree86  (engelska)  (nedlänk) . Gör din programvara med öppen källkod GPL-kompatibel. Eller annars (16 februari 2005). Hämtad 29 juni 2006. Arkiverad från originalet 23 april 2002.
  30. X11R6.9 och X11R7.0 officiellt släppta  ( 21 december 2005). Hämtad 29 juni 2006. Arkiverad från originalet 23 augusti 2011.
  31. Paul Anderson, Alan Coopersmith, Egbert Eyck, Adam Jackson, Kevin Martin, Keith Packard. Modulariseringsförslag  (engelska) (2005). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  32. Föreslagna ändringar för  X11R7.1 . Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  33. Keith Packard . Få X av hårdvaran  (engelska) (2004). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  34. ↑ X Window User HOWTO : Komma igång  . Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  35. ↑ XFree86 och X11R6.3  . Release Notes för XFree86 3.3.6 . XFree86 Project (31 december 1999). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  36. ↑ X Pressmeddelande - X11R6.4  . Den öppna gruppen (31 mars 1998). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  37. X.Org Foundation släpper X Window System  X11R6.7 . LWN (7 april 2004). Hämtad 29 juni 2006. Arkiverad från originalet 29 januari 2011.
  38. Ändringar  sedan 68 . _ X.Org Wiki. Hämtad 29 juni 2006. Arkiverad från originalet 23 augusti 2011.
  39. Utgivningsinformation för  X11R7.1 . X.Org Foundation (22 mars 2006). Hämtad 29 juni 2006. Arkiverad från originalet 23 augusti 2011.
  40. ChangesForX11R72  . _ X.Org Wiki. Hämtad 15 februari 2007. Arkiverad från originalet 23 augusti 2011.
  41. 7.3  Utgivningsinformation . X.Org Foundation. Hämtad 13 december 2007. Arkiverad från originalet 23 augusti 2011.
  42. X.Org Foundation släpper X7.4 . Hämtad 14 februari 2009. Arkiverad från originalet 1 augusti 2009.
  43. X.Org Foundation släpper X7.5 . Hämtad 9 november 2009. Arkiverad från originalet 6 juli 2010.
  44. X.Org Wiki - Annat/Press/X11R76Released . Hämtad 1 september 2011. Arkiverad från originalet 24 december 2010.
  45. X.Org Wiki - Server18Branch . Hämtad 1 september 2011. Arkiverad från originalet 26 maj 2011.
  46. X.Org Wiki - Server19Branch . Hämtad 1 september 2011. Arkiverad från originalet 31 augusti 2011.
  47. [KONTROLL] X11R7.7 . Hämtad 7 juni 2012. Arkiverad från originalet 14 augusti 2012.

Litteratur

Länkar

Anmärkningsvärda implementeringar
  1. Internetarkivsökning: ämne: "X Window System (datorsystem)" . archive.org. Hämtad: 24 december 2016.