X Window System: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Caratteristiche generali: ., replaced: Mac OS X → macOS |
m Bot: numeri di pagina nei template citazione |
||
(41 versioni intermedie di 32 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-Packard|HP]] avevano bisogno di uno standard per le interfacce grafiche, e una volta riuniti nel consorzio X.org, decisero le specifiche di X11.
{{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.▼
== 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 dall'[[ambiente desktop]] scelto dall'utente e in uso sul [[computer]].▼
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)|
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.▼
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]].▼
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]].)▼
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.▼
{{vedi anche|Protocolli e architettura di X Window System}}▼
[[File:Xlib and XCB in the X Window System graphics stack.svg|frame|Architettura di un client X Window System.]]▼
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 [[touchscreen]]). Il server X può essere:▼
=== L'utilizzo nelle distribuzioni GNU/Linux ===
* un [[Programma (informatica)|programma]] di sistema che controlla l'[[output]] video di un computer;▼
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.▼
* 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.▼
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.▼
La denominazione ''client/server'' spesso confonde i nuovi utilizzatori di X perché i termini sembrano invertiti: sul terminale dell'utente è in esecuzione il "server" che viene utilizzato dai programmi applicativi (client). X fornisce un servizio di visualizzazione ai programmi, in quest'ottica agisce da server, mentre il programma applicativo (che può anche essere remoto tramite [[desktop remoto|connessione remota]]) usa i servizi, così agisce come un client.▼
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 [[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]]).▼
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.▼
== L'interfaccia utente ==▼
[[File:X-Window-System.png|thumb|upright=1.4|X Window System in esecuzione nel Tom's Window Manager (TWM) nei primi anni novanta.]]▼
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.▼
▲== Caratteristiche generali ==
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.<br />▼
▲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]].
È 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.▼
▲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.
▲== La storia ==
▲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]].
▲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.
===
▲{{vedi anche|Protocolli e architettura di X Window System}}
▲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).
▲[[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 [[
▲* un [[Programma (informatica)|programma]] di sistema che controlla l'[[Periferica di output|output]] video di un computer;
▲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.
▲* 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.
▲La denominazione ''client/server'' spesso confonde i nuovi utilizzatori di X perché i termini sembrano invertiti: sul terminale dell'utente è in esecuzione il "server" che viene utilizzato dai programmi applicativi (client). X fornisce un servizio di visualizzazione ai programmi, in quest'ottica agisce da server, mentre il programma applicativo (che può anche essere remoto tramite [[desktop remoto|connessione remota]]) usa i servizi, così agisce come un client.
▲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+]].
▲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
▲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]].
▲=== L'interfaccia utente ===
▲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.
▲[[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.
▲=== L'arrivo di 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.
▲È 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
▲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 90 ⟶ 89:
|-
|X10
|
|Supporto per IBM RT/PC, AT (sotto DOS) e altri
|-
Line 139 ⟶ 138:
|X11R6.4
|31 marzo 1998
|Supporto per [[Xinerama]].<ref>{{en}} [http://www5.opengroup.org/tech/desktop/Press_Releases/x11r6.4ga.htm The Open Group Announces Internet-Ready X Window System X11R6.4] {{webarchive|url=https://web.archive.org/web/20121123082012/http://www.opengroup.org/tech/desktop/Press_Releases/x11r6.4ga.htm |data=23 novembre 2012 }}</ref>
|-
|X11R6.5
Line 155 ⟶ 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 163 ⟶ 162:
|X11R6.8.1
|17 settembre 2004
|Correzione nella falla di sicurezza nella libreria [[X PixMap|XPM]].
|-
|X11R6.8.2
Line 175 ⟶ 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 208 ⟶ 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| ]]
|