X Window System core protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m ortografia
clean up, replaced: → (2), L' → L', lo stato d → lo Stato d, np → mp (4), o stato → o Stato, Quest → Quest', typos fixed: imput → input (4), cio → ciò, replaced: rilasciata → pubblicata using AWB
Riga 1:
[[Image:X11.svg|thumb|100px|Il logo di X Window System]]
 
L' '''X Window System core protocol''' (protocollo principale di X Window System) <ref name="sche-gett">Robert W. Scheifler and James Gettys: ''X Window System: Core and extension protocols, X version 11, releases 6 and 6.1'', Digital Press 1996, ISBN 1-55558-148-X</ref><ref name="rfc 1013">RFC 1013</ref><ref name="intr">Grant Edwards. [http://www.visi.com/~grante/Xtut/ An Introduction to X11 User Interfaces]</ref> è il protocollo base dell'[[X Window System]], che è un sistema (che lavora in rete) di gestione delle finestre per [[bitmap]] display usato per creare [[Interfaccia grafica|interfacce grafiche utente]] in sistemi [[Unix]], [[Unix-like]] e altri [[sistema operativo|sistemi operativi]]. L'X Window System è basato su un modello [[client-server]]: un singolo [[server]] controlla l'[[hardware]] di[[input/output]], come lo [[schermo]], la [[Tastiera (informatica)|tastiera]] e il [[mouse]]; ogni applicazione ([[Programma (informatica)|programma]]) agisce come un client, interagendo con l'utente e con gli altri client attraverso il server. Questa interazione è regolata dal X Window System core protocol. Esistono altri [[Protocollo (informatica)|protocolli]] relativi all'X Window System, sia costruiti ''sopra'' l'X Window System core protocol sia come protocolli separati.
 
Nell'X Window System core protocol si possono inviare solo quattro tipi di pacchetti, in maniera [[Segnale (informatica)|asincrona]], attraverso la rete: richieste, risposte, eventi ed errori. Le ''Richieste'' vengono inviate da un client ad un server per chiedere ti eseguire alcune operazioni (per esempio, creare una nuova finestra) e ritornare indietro i dati che contiene. Le ''Risposte'' sono inviate dal server per fornire tali dati. Gli ''Eventi'' vengono inviati dal server per notificare ai client dell'attività dell'utente o di altre occorrenze che sono interessati a conoscere. Gli ''Errori'' sono pacchetti inviati dal server per notificare ad un client di errori accaduti durante l'elaborazione delle sue richieste. Le richieste possono generare risposte, eventi ed errori; a parte questo, il protocollo non regola l'ordine specifico in cui i pacchetti sono inviati in rete. Esistono alcune estensioni al core protocol, ognuna delle quali aventi le proprie richieste, risposte, eventi ed errori.
Riga 82:
Gli identificatori sono unici anche nel server, non solo nel client; per esempio, due finestre non possono avere lo stesso identificatore anche se create da due client diversi. Un client può accedere ad ogni oggetto noto l'identificatore. In particolare, può anche accedere alle risorse create da un altro client, anche se i loro identificatori sono al di fuori dell'insieme di identificatori che loro (i client) possono creare.
 
Come risultato di ciò, due client connessi allo stesso server possono usare lo stesso identificatore per riferirsi alla stessa risorsa. Per esempio, se un client crea una finestra con identificatore <code>0x1e00021</code> e passa questo numero <code>0x1e00021</code> ad un'altra applicazione (attraverso qualsiasi mezzo utilizzabile, per esempio salvando questo numero in un file che è accessibile anche all'altra applicazione), questa altra applicazione ha la possibilità di operare proprio nella stessa finestra. Quest 'possibilità viene sfruttata per esempio dalla versione X Window di [[Ghostviwe]]: questo programma crea una sotto finestra, salvando il suo identificatore in una [[variabile d'ambiente (Unix)|variabile d'ambiente]] e chiama [[Ghostscript]]; questo programma disegna il contenuto del file [[PostScript]] da mostrare in questa finestra.<ref name="ghos-inte">[http://www.gnu.org/software/gv/manual/html_node/Interface-with-ghostscript.html Ghostview: Interface with ghostscript]</ref>
 
Le risorse sono normalmente distrutte quando il client che le ha create chiude la connessione col server. Comunque, prima di chiudere la connessione, un client può richiedere al server di non distruggerle.
Riga 207:
Per ognuno degli otto modificatori, il server X mantiene una lista di keycode, che lui considera essere modificatori. Ad esempio, se la lista del primo modificatore ("Shift") contiene il keycode <code>0x37</code> allora il tasto che produce il keycode <code>0x37</code> è considerato un tasto modificatore "di tipo shift" dal server X.
 
La lista che mappa i modificatori è mantenuta dal server X ma può essere cambiata da ogni client. Per esempio, un client può richiedere che il tasto "F1" venga aggiunto alla lista dei modificatori di tipo "Shift". Da qui in avanti, questo tasto si comporta come un altro modificatore di tipo Shift. Comunque, il keycode corrispondente a F1 viene comunque generato quando questo tasto viene premuto. Come risultato di ciociò, F1 opera come faceva prima (ad esempio, potrebbe venire aperta una finestra di help), ma opera anche come il tasto Shift (premendo "a" in un editor di testo e assieme F1, verrebbe stampato il carattere "A").
 
Il server X mantiene e usa una mappatura dei modificatori per i bottoni del mouse. Comunque, i bottoni possono essere solo [[Permutazione|permutati]]. Questo è maggiormente utile per scambiare il tasto destro con quello sinistro per gli utenti [[Mancino|mancini]].
Riga 226:
Una richiesta di cattura può includere una richiesta di ''freezing'' (congelamento) di tastiera o puntatore. La differenza tra cattura e congelamento è che la cattura cambia il destinatario degli eventi, mentre il congelamento ferma proprio la loro consegna. Quando una periferica è congelata, gli eventi che genera sono salvati in una coda da cui essere consegnati normalmente una volta finito il congelamento.
 
Per eventi del puntatore, c'è un parametro addizionale che influenza la consegna degli eventi: una event mask (maschera degli eventi), che specifica quali tipi di eventi sono da consegnare e quali devono essere scartati.
 
La richiesta di cattura include un campo per specificare cosa succede agli eventi che verrebbero inviati al client che detiene la cattura anche se non hanno stabilito la cattura. In particolare, il client può richiedere che questi vengano inviati normalmente in accordo con la cattura. Queste due condizioni non sono la stessa cosa come potrebbe sembrare. Per esempio, un client che normalmente riceverebbe gli eventi della tastiera nella prima finestra potrebbe richiedere che la tastiera venga catturata da una seconda finestra. Gli eventi che normalmente vengono inviati alla prima finestra potrebbero o no essere rediretti alla finestra di cattura in base al parametro nella richiesta di cattura.
Riga 287:
*{{en}}[http://www.rahul.net/kenton/bib.html Kenton Lee's pages on X Window and Motif]
*{{en}}[ftp://ftp.x.org/pub/X11R7.0/doc/PDF/proto.pdf The X11R7 Protocol Specification]
 
{{Link VdQ|zh}}
 
[[Categoria:X Window System| ]]
 
{{Link VdQ|zh}}
[[cs:X Window System core protokol]]
[[en:X Window System core protocol]]