X Window System, noto in gergo come
X Window o X11 (o, ancora più semplicemente, come X), è di fatto il gestore grafico standard per tutti i sistemi Unix (GNU/Linux e BSD compresi); è attualmente mantenuto dalla X.Org Foundation e rilasciato sotto una licenza di software libero.
Supportato dai produttori di hardware grafico, è ormai usato secondariamente anche da altri sistemi operativi (es. Mac OS X, che usa nativamente Quartz) per permettere il funzionamento del software progettato per questo sistema grafico, come la suite da ufficio OpenOffice.org e GIMP.
X fornisce l'ambiente e i componenti di base per le interfacce grafiche, ovvero il disegno e lo spostamento delle finestre sullo schermo e l'interazione con il mouse e la tastiera. X non gestisce invece l'interfaccia grafica utente o lo stile grafico delle applicazioni: tutti questi aspetti sono gestiti direttamente da ogni singola applicazione.
Un'altra caratteristica molto importante è la trasparenza di rete: la macchina dove girano i programmi (client) non deve essere per forza 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 è stato creato dal MIT nel 1984. La versione attuale del protocollo, X11, è stata ultimata nel settembre del 1987. Attualmente la X.Org Foundation implementa il protocollo X versione 11 in XOrg e l'ultima versione disponibile è la 7.5.
Il modello client/server.
Exquisite-kfind.png Per approfondire, vedi la voce X Window System protocolli e architettura.
Architettura di un client X Window System.
X usa un 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 (dalla tastiera, il mouse o dal touchscreen). Il server X può essere:
* un programma di sistema che controlla l'output video di un PC (oggi è il caso più comune)
* 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) usa i servizi, così agisce come un client.
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 architetture e sistemi operativi differenti; il server ed il client possono anche comunicare in modo sicuro attraverso la rete sfruttando un tunnel cifrato (spesso viene utilizzato SSH).
L'interfaccia utente.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.
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.
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.
La storia.Il sistema X deriva da un'interfaccia grafica chiamata W sviluppata da Brian Red e Paul Ascente presso l'Università di Stanford negli anni ottanta.
Le origini.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 rilasciata 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 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 alle quali si appoggia KDE o le GTK (nate da 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 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'arrivo di GNU/Linux [modifica]
Le aziende rividero tuttavia in XFree il modo per portare Linux sui desktop e un nuovo consorzio ridiede vita alla Xorg 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 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 rilasciato 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 rilasciata la versione 6.8.1 che correggeva una falla di sicurezza.
Il 21 dicembre 2005, in pieno rispetto della roadmap annunciata ufficialmente, è stato rilasciato Xorg X11R7.0, il primo grande rilascio del sistema X Window System dopo 10 anni di stagnazione e sviluppo discontinuo. Parallelamente, è stato rilasciato 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, la nuova architettura di accelerazione.
Links collegati:- xfe
- xfe-i18n
- xfe-themes
- xfonts-100dpi
- xfonts-100dpi-transcoded
- xfonts-75dpi
- xfonts-75dpi-transcoded
- xfonts-a12k12
- xfonts-ayu
- xfonts-baekmuk
- xfonts-base
- xfonts-bitmap-mule
- xfonts-biznet-100dpi
- xfonts-biznet-75dpi
- xfonts-biznet-base
- xfonts-bolkhov-75dpi
- xfonts-bolkhov-cp1251-75dpi
- xfonts-bolkhov-cp1251-misc
- xfonts-bolkhov-isocyr-75dpi
- xfonts-bolkhov-isocyr-misc
- xfonts-bolkhov-koi8r-
- xfonts-bolkhov-koi8r-misc
- xfonts-bolkhov-koi8u-75dpi
- xfonts-bolkhov-koi8u-misc
- xfonts-bolkhov-misc
- xfonts-cmex-big5p
- xfonts-cronyx-100dpi
- xfonts-cronyx-75dpi
- xfonts-cronyx-cp1251-100dpi
- xfonts-cronyx-cp1251-75dpi
- xfonts-cronyx-cp1251-misc
- xfonts-cronyx-isocyr-100dpi
- xfonts-cronyx-isocyr-75dpi
- xfonts-cronyx-isocyr-misc
- xfonts-cronyx-koi8r-100dpi
- xfonts-cronyx-koi8r-75dpi
- xfonts-cronyx-koi8r-misc
- xfonts-cronyx-koi8u-100dpi
- xfonts-cronyx-koi8u-75dpi
- xfonts-cronyx-koi8u-misc
- xfonts-cronyx-misc
- xfonts-cyrillic
- xfonts-efont-unicode
- xfonts-efont-unicode-ib
- xfonts-encodings
- xfonts-intl-arabic
- xfonts-intl-asian
- xfonts-intl-chinese
- xfonts-intl-chinese-big
- xfonts-intl-european
- xfonts-intl-japanese
- xfonts-intl-japanese-big
- xfonts-intl-phonetic
- xfonts-jisx0213
- xfonts-jmk
- xfonts-kaname
- xfonts-kapl
- xfonts-kappa20
- xfonts-knickers
- xfonts-marumoji
- xfonts-mathml
- xfonts-mona
- xfonts-mplus
- xfonts-naga10
- xfonts-nexus
- xfonts-scalable
- xfonts-shinonome
- xfonts-terminus
- xfonts-terminus-dos
- xfonts-terminus-oblique
- xfonts-thai
- xfonts-thai-etl
- xfonts-thai-manop
- xfonts-thai-nectec
- xfonts-thai-poonlap
- xfonts-thai-vor
- xfonts-tipa
- xfonts-unifont
- xfonts-utils
- xfonts-wqy
- xfonts-x3270-misc
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: