X Pencere Sistemi, bir istemci-sunucu mimarisini kullanır. X sunucusu, ekrana sahip olan (izleyiciler + giriş aygıtları) makinede çalışıyor, X istemcileri başka herhangi bir makinede çalışabiliyor ve X protokolünü kullanarak X sunucusunu kullanarak (doğrudan değil, aksine bir kütüphane kullanarak Xlib veya daha modern, blokaj yapmayan olay odaklı XCB). X protokolü genişletilebilir olacak şekilde tasarlanmıştır ve birçok uzantıya sahiptir (bkz xdpyinfo(1)
).
X sunucusu, pencereleri oluşturma ve yok etme, çizim işlemleri yapma (günümüzde çoğu çizim istemcide yapılır ve sunucuya görüntü olarak gönderilir), pencerelere olay gönderme gibi, yalnızca düşük düzeyli işlemler gerçekleştirir ... Ne kadar az görebilirsiniz bir X sunucusu çalıştırarak X :1 &
(başka bir X sunucusu tarafından kullanılmamış herhangi bir sayıyı kullanın) veya Xephyr :1 &
(Xephyr, geçerli X sunucunuza katıştırılmış bir X sunucusunu çalıştırır) ve ardından xterm -display :1 &
yeni X sunucusunu çalıştırıp açarak (X yetkilendirmesi ayarlamanız gerekebilir) kullanarak xauth(1)
).
Gördüğünüz gibi, X sunucusu çok az şey yapıyor, başlık çubukları çizmiyor, pencere küçültme / simgeleştirme yapmıyor, pencere yerleşimini yönetmiyor ... Tabii ki, bir komutu kullanarak pencere yerleşimini kontrol edebilirsiniz gibi xterm -geometry -0-0
, ancak genellikle yukarıdaki işleri yapan özel bir X müşteriniz olur. Bu müşteriye pencere yöneticisi denir . Bir seferde sadece bir pencere yöneticisi aktif olabilir. Hala önceki komutların çıplak X sunucusu açık varsa, üzerinde bir pencere yöneticisi çalıştırmayı deneyebilirsiniz gibi twm
, metacity
, kwin
, compiz
, larswm
, pawm
, ...
Söylediğimiz gibi, X yalnızca düşük seviyeli işlemler yapar ve butonlar, menüler, araç çubukları gibi daha yüksek seviyeli kavramlar sağlamaz ... Bunlar araç takımı adı verilen kütüphaneler tarafından sağlanır , örneğin: Xaw, GTK, Qt, FLTK, ...
Masaüstü ortamları, birleşik bir kullanıcı deneyimi sağlamak için tasarlanmış programların koleksiyonlarıdır. Bu yüzden masaüstü ortamları tipik olarak paneller, uygulama rampaları, sistem tepsileri, kontrol panelleri, yapılandırma altyapısı (ayarların kaydedileceği yer) sağlar. Bilinen bazı masaüstü ortamları KDE (Qt araç seti kullanılarak oluşturulmuş), Gnome (GTK kullanarak), Aydınlanma (kendi araç seti kütüphanelerini kullanarak), ...
Bazı modern masaüstü efektleri en iyi 3d donanım kullanılarak yapılır. Böylece yeni bir bileşen ortaya çıkar, bileşik yönetici . Bir X uzantısı, XComposite uzantısı, pencere içeriğini bileşik yöneticisine gönderir. Kompozit yönetici bu içerikleri dokulara dönüştürür ve OpenGL aracılığıyla birçok donanımı (alfa harmanlama, 3d projeksiyonlar, ...) oluşturmak için OpenGL aracılığıyla 3B donanımı kullanır.
Çok uzun zaman önce, X sunucusu doğrudan donanım aygıtlarıyla konuştu. Bu cihazın kullanımının önemli bir kısmı işletim sistemi çekirdeğine doğru hareket ediyor: DRI (X ve doğrudan görüntü oluşturma istemcileri tarafından 3B donanıma erişim izni ), evdev (giriş aygıtı işlemesi için birleştirilmiş arabirim), KMS (çekirdeğe hareketli grafik modu ayarı) , GEM / TTM (doku belleği yönetimi).
Böylece, artık çoğunlukla X dışında cihaz kullanımının karmaşıklığıyla, basitleştirilmiş pencere sistemlerini denemek daha kolay hale geldi. Wayland , bileşik yönetici kavramına dayanan bir pencere sistemidir, yani pencere sistemi bileşik yöneticidir. Wayland, X'ten çıkmış ve OpenGL kullanarak işleyen cihazların kullanımını kullanıyor.
Birlik gelince, netbooklar için uygun bir kullanıcı arayüzü olması için tasarlanmış bir masaüstü ortamıdır.