X Window System: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Ho ristretto l'immagine relativa all'Architettura di X siccome era troppo grande e di conseguenza il testo veniva visualizzato male. |
m Bot: numeri di pagina nei template citazione |
||
(33 versioni intermedie di 26 utenti non mostrate) | |||
Riga 1:
{{Software
|Nome = X Window System
|Screenshot = Twm.png
|Didascalia = twm, il window manager predefinito di X11, mentre gestisce [[Mozilla Firefox|Firefox]], un [[terminale (informatica)|terminale]] e Xclock
|Sviluppatore =
|SistemaOperativo = multipiattaforma
|Linguaggio =
|Genere = windowing system
|Licenza =
|SoftwareLibero =
|
}}
'''X Window System''' (noto in gergo come '''X Window''', '''X11''' o semplicemente come '''X'''), in [[informatica]], è un [[interfaccia grafica|gestore grafico]] molto diffuso, [[norma tecnica|standard]] ''[[de facto]]'' per molti sistemi [[Unix-like]] ([[Linux]] e [[FreeBSD]] compresi), pubblicato sotto una [[licenza (informatica)|licenza]] di [[software libero]], dal [[2004]] lo sviluppo è curato dalla [[X.Org Foundation]].▼
▲'''X Window System''' (noto in gergo come '''X Window''', '''X11''' o semplicemente come '''X'''), in [[informatica]], è un gestore grafico molto diffuso, standard ''[[de facto]]'' per molti sistemi [[Unix-like]] ([[Linux]] e [[FreeBSD]] compresi).
== Storia ==
▲È stato creato dal [[Massachusetts Institute of Technology|MIT]] nel [[1984]]. L'ultima versione del protocollo, X11, è stata ultimata nel settembre del [[1987]]. La X.Org Foundation implementa il [[Protocollo di rete|protocollo]] X versione 11 in [[X.Org|XOrg]]. Dal giugno [[2012]] è disponibile la versione 7.7.
Nel [[1984]] [[Bob Scheifler]] con la collaborazione di [[Jim Gettys]] modificò il protocollo sincrono W in uno asincrono chiamato X (versione 1). Scheifler e gli altri (pochi) programmatori, lavorarono molto velocemente e con impegno al progetto, infatti la versione 6 fu pubblicata già nel [[1985]]. X fu portato su varie piattaforme, iniziava a diventare interessante e molte persone esterne lo richiedevano. ▼
X11 risale al [[1987]] quando grandi aziende tra le quali [[Sun Microsystems]], [[IBM]] e [[Hewlett
=== L'evoluzione di XFree86 ===▼
{{Vedi anche|XFree86}}
Nonostante il tempo passato da allora, il cuore di X11 è praticamente rimasto immutato, l'ultima release con modifica al codice base di X è stata la X11R4, ma il suo unico scopo era solo quello di aumentare la portabilità sulle macchine Sun. Questa mancanza di cambiamenti significativi coincideva con un indebolimento del consorzio X.org, che non era più in grado di gestire il progetto adeguatamente, così giunti a X11R6.6 ci fu l'avvento di [[XFree86]] (il cui nome è un gioco di parole: ''X free eight six -> X three eight six'', X386).▼
XFree86 prometteva di migliorare radicalmente X e divenne in breve tempo un progetto con un gran seguito. I risultati sperati non arrivarono neanche con XFree e, mancato l'interesse e il finanziamento da parte delle vecchie aziende, X all'improvviso dovette contare solo su volontari.▼
Cosa ancor più grave, le librerie di X (xlibs) erano totalmente inadeguate per usi grafici avanzati, come poteva essere un [[desktop environment]] ed erano un incubo per i programmatori che tentavano di metterci mano; da questa necessità nacquero i "toolkit", ossia delle librerie che, appoggiandosi alle xlib, non solo implementavano funzioni mancanti fornendo strumenti aggiuntivi, ma semplificano la programmazione di applicazioni grafiche per X. Il toolkit più famoso di sempre è probabilmente [[Motif]]. Famose sono anche le librerie [[Qt (toolkit)|Qt]] alle quali si appoggia [[KDE]] o le GTK (nate da [[The GIMP|Gimp]]) ampliate poi in [[GTK+]].▼
Anche se questi toolkit favorivano lo sviluppo di applicazioni grafiche, con la nascita di [[KDE]] e di [[GNOME]] si vide quanto X fosse limitato: era lento e pesante. I membri del core team di XFree86 progettarono a tavolino la versione 4.0, più modulare, più snella, con delle nuove estensioni, e così nel marzo 2000, XFree 4.0 presentava alcune funzioni che gli utenti desktop avevano tanto richiesto, come il supporto dei font con [[antialiasing]] e il supporto alla [[Computer grafica 3D|grafica 3D]].▼
Ma non era ancora abbastanza: le novità furono poche e gli sviluppatori stessi erano insoddisfatti dal metodo di sviluppo in quanto [[bug]] gravi restavano aperti per mesi e con la release 4.3, uno degli sviluppatori più innovativi appartenenti al core team (Keith Packard) lasciò XFree.▼
=== L'utilizzo nelle distribuzioni GNU/Linux ===
Le aziende rividero tuttavia in XFree il modo per portare Linux sui desktop e un nuovo consorzio ridiede vita alla X.Org Foundation. Nuovi sviluppatori parteciparono al progetto, sia sul ramo ufficiale sia su parti sperimentali della nuova fondazione.▼
Ma con la release 4.4rc3 la licenza di XFree cambiò rendendosi incompatibile con la [[GNU General Public License|GPL]], non poteva più essere incluso nelle distribuzioni [[Linux]] e fu necessario avviare un nuovo progetto. La maggior parte degli sviluppatori, abbandonando XFree in favore di X.org, presentarono la versione X11 6.7 (Xorg 6.7) il 6 aprile del [[2004]]. Basato su XFree4.4rc2, presentava correzioni di bug e nuove caratteristiche, come nuova gestione di [[IPv6]], la revisione dei moduli per la gestione dei font, una nuova versione di Xrender e di Xcursor.▼
Nel settembre 2004 è stato pubblicato Xorg 6.8, che ha portato nuove caratteristiche interessanti come le finestre traslucide, animazioni, decorazioni delle finestre (per esempio, le ombre) e il supporto per le applicazioni accessibili. Pochi giorni dopo è stata resa pubblica la versione 6.8.1 che correggeva una falla di sicurezza.▼
Il 21 dicembre 2005, in pieno rispetto della roadmap annunciata ufficialmente, è stato pubblicato Xorg X11R7.0, la prima grande pubblicazione del sistema X Window System dopo 10 anni di stagnazione e sviluppo discontinuo. Parallelamente, è stato pubblicato X11R6.9, contenente lo stesso codice della 7.0, ma in un unico blocco di circa 16 milioni di righe di codice. Proprio questa è una delle maggiori innovazioni rispetto al passato: Xorg 7.0 ha portato la modularizzazione del codice del server grafico, ponendo le basi per una maggior rapidità di sviluppo. Fra le numerose note innovative, oltre ad aggiornati driver per hardware video, troviamo [[EXA (informatica)|EXA]], la nuova architettura di accelerazione.▼
== Caratteristiche generali ==
Fornisce l'ambiente e i componenti di base per le [[interfaccia grafica|interfacce grafiche]] ovvero il disegno, lo spostamento delle finestre sullo schermo e l'interazione con le [[periferica|periferiche]] di [[input]] quali [[mouse]] e [[tastiera (informatica)|tastiera]]. X non gestisce invece l'interfaccia grafica utente cioè lo stile grafico delle [[applicazione (informatica)|applicazioni]] che vengono gestite [[Invece no (Laura Pausini)|invece]] dall'[[ambiente desktop]] scelto dall'utente e in uso sul [[computer]].
Un'altra caratteristica molto importante è la trasparenza di rete: la macchina dove girano i [[programma (informatica)|programmi]] ([[client]]) non deve essere necessariamente la macchina locale (''display server''). I termini ''[[server]]'' e ''[[client]]'' vengono spesso confusi: per X il server è il display locale dell'utente, non una macchina remota. Questo permette anche di visualizzare sullo stesso display applicazioni che vengono eseguite su diversi [[host]], oppure che su un host vengano eseguite applicazioni la cui interfaccia grafica finisce su diversi display.
X è ormai usato secondariamente anche da [[sistema operativo|sistemi operativi]] che non lo supportano nativamente (es. [[macOS]], che usa nativamente [[Quartz (Mac OS X)|Quartz]]), per permettere il funzionamento del software progettato per questo sistema grafico, come la suite da ufficio [[OpenOffice.org]] e [[GIMP]].
=== Il modello client/server ===
{{vedi anche|Protocolli e architettura di X Window System}}
[[File:Xlib and XCB in the X Window System graphics stack.svg|
Utilizza un [[Sistema client/server|modello client/server]]: in altre parole, il server X comunica con gli altri programmi (client). Il server accetta richieste per output grafici (finestre) e input dall'utente (tramite tastiera, mouse o dal [[touch screen]]). Il server X può essere:
* un [[Programma (informatica)|programma]] di sistema che controlla l'[[Periferica di output|output]] video di un computer;
* un componente [[hardware]] dedicato (i cosiddetti [[X terminal]]: calcolatori dotati solo dell'hardware necessario ad eseguire il server X, pensati per visualizzare applicazioni eseguite su appositi server applicativi);
* un'applicazione che mostra dati su una finestra di un altro sistema grafico.
Line 37 ⟶ 61:
Il [[protocollo di comunicazione]] tra server e client opera in modo trasparente rispetto alla rete: entrambi possono risiedere sulla stessa macchina o su altre, anche con [[Architettura (computer)|architetture]] e [[Sistema operativo|sistemi operativi]] differenti; il server ed il client possono anche comunicare in modo [[Sicurezza informatica|sicuro]] attraverso la rete sfruttando un [[Tunneling|tunnel]] [[Cifratura|cifrato]] (spesso viene utilizzato [[Secure Shell|SSH]]).
=== L'interfaccia utente ===
[[File:X-Window-System.png|thumb|upright=1.4|X Window System in esecuzione nel [[Tom's Window Manager
Il sistema di X è stato progettato appositamente per non fornire alcun supporto predeterminato per gli elementi dell'interfaccia utente (quali pulsanti, menù, barre del titolo). Tale infrastruttura viene quindi creata e fornita dagli ambienti desktop. Per tale motivo le interfacce di X sono variate considerevolmente nel tempo e sono differenti passando da un desktop manager all'altro.
Il controllo della visualizzazione ed il posizionamento delle finestre è compito di un particolare applicativo software, detto [[window manager]], indipendente da X. Esempi di tale software sono [[KWin]] per [[KDE]] o [[Metacity]] per [[GNOME]]. Tale impostazione ha consentito ad esempio di utilizzare un window manager con effetti 3D avanzati apportando soltanto modifiche marginali al server X.
È responsabile di fornire l'interfaccia verso la tastiera, il mouse e altri dispositivi di input. Per tale motivo alcune scorciatoie da tastiera sono nativamente associate al server X. Control-Alt-Backspace termina il server X attualmente in esecuzione mentre Control-Alt insieme ad un tasto funzione cambia la consolle virtuale utilizzata.▼
▲È responsabile di fornire l'interfaccia verso la tastiera, il mouse e altri dispositivi di input. Per tale motivo alcune scorciatoie da tastiera sono nativamente associate al server X. Control-Alt-Backspace termina il server X attualmente in esecuzione mentre Control-Alt insieme ad un tasto funzione cambia la
▲== La storia ==
▲Nel [[1984]] [[Bob Scheifler]] con la collaborazione di [[Jim Gettys]] modificò il protocollo sincrono W in uno asincrono chiamato X (versione 1). Scheifler e gli altri (pochi) programmatori, lavorarono molto velocemente e con impegno al progetto, infatti la versione 6 fu pubblicata già nel [[1985]]. X fu portato su varie piattaforme, iniziava a diventare interessante e molte persone esterne lo richiedevano.
▲X11 risale al [[1987]] quando grandi aziende tra le quali [[Sun Microsystems]], [[IBM]] e [[Hewlett Packard|HP]] avevano bisogno di uno standard per le interfacce grafiche, e una volta riuniti nel consorzio X.org, decisero le specifiche di X11.
▲=== L'evoluzione ===
▲Nonostante il tempo passato da allora, il cuore di X11 è praticamente rimasto immutato, l'ultima release con modifica al codice base di X è stata la X11R4, ma il suo unico scopo era solo quello di aumentare la portabilità sulle macchine Sun. Questa mancanza di cambiamenti significativi coincideva con un indebolimento del consorzio X.org, che non era più in grado di gestire il progetto adeguatamente, così giunti a X11R6.6 ci fu l'avvento di [[XFree86]] (il cui nome è un gioco di parole: ''X free eight six -> X three eight six'', X386).
▲XFree86 prometteva di migliorare radicalmente X e divenne in breve tempo un progetto con un gran seguito. I risultati sperati non arrivarono neanche con XFree e, mancato l'interesse e il finanziamento da parte delle vecchie aziende, X all'improvviso dovette contare solo su volontari.
▲Cosa ancor più grave, le librerie di X (xlibs) erano totalmente inadeguate per usi grafici avanzati, come poteva essere un [[desktop environment]] ed erano un incubo per i programmatori che tentavano di metterci mano; da questa necessità nacquero i "toolkit", ossia delle librerie che, appoggiandosi alle xlib, non solo implementavano funzioni mancanti fornendo strumenti aggiuntivi, ma semplificano la programmazione di applicazioni grafiche per X. Il toolkit più famoso di sempre è probabilmente [[Motif]]. Famose sono anche le librerie [[Qt (toolkit)|Qt]] alle quali si appoggia [[KDE]] o le GTK (nate da [[The GIMP|Gimp]]) ampliate poi in [[GTK+]].
▲Anche se questi toolkit favorivano lo sviluppo di applicazioni grafiche, con la nascita di [[KDE]] e di [[GNOME]] si vide quanto X fosse limitato: era lento e pesante. I membri del core team di XFree86 progettarono a tavolino la versione 4.0, più modulare, più snella, con delle nuove estensioni, e così nel marzo 2000, XFree 4.0 presentava alcune funzioni che gli utenti desktop avevano tanto richiesto, come il supporto dei font con [[antialiasing]] e il supporto alla [[Computer grafica 3D|grafica 3D]].
▲Ma non era ancora abbastanza: le novità furono poche e gli sviluppatori stessi erano insoddisfatti dal metodo di sviluppo in quanto [[bug]] gravi restavano aperti per mesi e con la release 4.3, uno degli sviluppatori più innovativi appartenenti al core team (Keith Packard) lasciò XFree.
▲Le aziende rividero tuttavia in XFree il modo per portare Linux sui desktop e un nuovo consorzio ridiede vita alla X.Org Foundation. Nuovi sviluppatori parteciparono al progetto, sia sul ramo ufficiale sia su parti sperimentali della nuova fondazione.
▲Ma con la release 4.4rc3 la licenza di XFree cambiò rendendosi incompatibile con la [[GNU General Public License|GPL]], non poteva più essere incluso nelle distribuzioni [[Linux]] e fu necessario avviare un nuovo progetto. La maggior parte degli sviluppatori, abbandonando XFree in favore di X.org, presentarono la versione X11 6.7 (Xorg 6.7) il 6 aprile del [[2004]]. Basato su XFree4.4rc2, presentava correzioni di bug e nuove caratteristiche, come nuova gestione di [[IPv6]], la revisione dei moduli per la gestione dei font, una nuova versione di Xrender e di Xcursor.
▲Nel settembre 2004 è stato pubblicato Xorg 6.8, che ha portato nuove caratteristiche interessanti come le finestre traslucide, animazioni, decorazioni delle finestre (per esempio, le ombre) e il supporto per le applicazioni accessibili. Pochi giorni dopo è stata resa pubblica la versione 6.8.1 che correggeva una falla di sicurezza.
▲Il 21 dicembre 2005, in pieno rispetto della roadmap annunciata ufficialmente, è stato pubblicato Xorg X11R7.0, la prima grande pubblicazione del sistema X Window System dopo 10 anni di stagnazione e sviluppo discontinuo. Parallelamente, è stato pubblicato X11R6.9, contenente lo stesso codice della 7.0, ma in un unico blocco di circa 16 milioni di righe di codice. Proprio questa è una delle maggiori innovazioni rispetto al passato: Xorg 7.0 ha portato la modularizzazione del codice del server grafico, ponendo le basi per una maggior rapidità di sviluppo. Fra le numerose note innovative, oltre ad aggiornati driver per hardware video, troviamo [[EXA (informatica)|EXA]], la nuova architettura di accelerazione.
== Cronologia delle versioni ==
Line 91 ⟶ 89:
|-
|X10
|
|Supporto per IBM RT/PC, AT (sotto DOS) e altri
|-
Line 156 ⟶ 154:
|X11R6.7.0
|6 aprile 2004
|Prima versione della ''X.Org Foundation'', basato su XFree86 4.4rc2. Rimosso XIE, [[PHIGS|PEX]] e [[libXML2]].<ref>{{en}} [
|-
|X11R6.8.0
Line 164 ⟶ 162:
|X11R6.8.1
|17 settembre 2004
|Correzione nella falla di sicurezza nella libreria [[X PixMap|XPM]].
|-
|X11R6.8.2
Line 176 ⟶ 174:
|X11R7.1
|22 maggio 2006
|[[AIGLX]], modifiche invasive non incluse in 6.9/7.0.<ref>{{en}} [
|-
|X11R7.2
|15 febbraio 2007
|Eliminazione di [[Low Bandwidth X]] (LBX) e del vecchio driver della tastiera, X-ACE, [[XCB (informatica)|XCB]], miglioramenti all'autoconfigurazione, pulizia del codice.<ref>{{en}} [
|-
|X11R7.3
|6 settembre 2007
|[[Protocolli e architettura di X Window System|XServer 1.4]], Supporto per l'hotplug dei dispositivi di input, [[XRandR|RandR]] 1.2, supporto per [[UnixWare]].<ref>{{en}} [
|-
|X11R7.4
|23 settembre 2008
|[[Protocolli e architettura di X Window System|XServer 1.5.1]], Startup e shutdown più veloci.<ref name="Releases/7.4">{{en}} [
|-
|X11R7.5
Line 209 ⟶ 207:
== Note ==
<references />
== Bibliografia ==
* {{Cita pubblicazione|nome=Robert W.|cognome=Scheifler|nome2=Jim|cognome2=Gettys|anno=1986|mese=4|titolo=The X Window System|rivista=ACM Transactions on Graphics|volume=5|numero=2|pp=79-109|lingua=en|accesso=2024-06-06|doi=10.1145/22949.24053|url=https://dl.acm.org/doi/10.1145/22949.24053}}
* {{Cita libro|autore=Robert W. Scheifler|autore2=James Gettys|titolo=X Window System: The Complete Reference to Xlib, X protocol, ICCCM, XLFD|edizione=3|anno=1992|editore=Digital Press|lingua=en|ISBN=978-1-55558-088-9}}
== Voci correlate ==
* [[Autorizzazioni X Window]]
* [[Protocolli e architettura di X Window System]]
* [[
* [[X Display]]
* [[X Window System core protocol]]
== Altri progetti ==
{{interprogetto
== Collegamenti esterni ==
* {{Collegamenti esterni}}
{{Controllo di autorità}}
{{Portale|informatica|Software libero}}
[[Categoria:X Window System| ]]
|