System X Window zawiera protokół określający sposób, według którego programy mogą korzystać z konsoli graficznej. Jest on oparty na komendach wysyłanych siecią, więc nie ma znaczenia, czy aplikacje korzystają z konsoli znajdującej się w innym budynku, czy monitora podłączonego bezpośrednio do komputera. Programy wysyłają wszystkie polecenia pod adres znajdujący się w zmiennej środowiskowej DISPLAY, zdefiniowanej na komputerze, na którym uruchamiany jest program. Jej wartość składa się z dwóch części przedzielonych dwukropkiem:
<internetowy adres komputera> : <numer monitora>
. W przypadku konsoli komputera lokalnego zmienna ta ma wartość localhost:0 lub po prostu
:0.
|
Przyjmowaniem oraz wykonywaniem komend wysyłanych przez programy zajmuje się tzw. X-Server; znajduje się on w pliku /usr/X11R6/bin/X. Aplikacja ta czeka, aż jakiś program (uruchomiony lokalnie lub na innym komputerze) połączy się z portem 6000, po czym sprawdza, czy ma on prawo do wyświetlania (więcej informacji na ten temat można uzyskać, wykonując polecenie
man xhost
). Jeśli tak, X-Serwer przyjmuje dalsze polecenia, zwykle są to żądania przydzielenia aplikacji pewnego obszaru ekranu – okna – oraz komendy rysujące jego zawartość. To, że serwer X-ów komunikuje się z aplikacjami za pomocą sieci, oznacza, że na jednej konsoli mogą być wyświetlane okna programów uruchomionych na wielu różnych komputerach połączonych siecią.