(GNOME ve X arasındaki ilişkiyi inceliyorum. Bazı anlayışlarımı paylaşmak istiyorum. Mümkün olduğu kadar mantıklı bir şekilde sunacağım.)
1. GUI nelerden oluşur?
Aşağıda bir GUI'nin temel bileşenlerini gösteren bir örnek bulunmaktadır.
Temel bileşen görüntüleme sunucusudur . Kullanılabilir birkaç görüntü sunucusu vardır. Gibi:
- X11 (çoğunlukla * nix için)
- Wayland (çoğunlukla * nix için)
- Mir (çoğunlukla * nix için)
- SurfaceFlinger (Bu, Google Android içindir.)
- Quartz Compositor (Apple MacOS'un kullandığı budur.)
- Masaüstü Pencere Yöneticisi (Microsoft Windows'un kullandığı budur.)
2. X nedir?
X, X11 ve X Pencere Sistemi eşanlamlıdır. Hepsi bir pencere sistemini temsil ediyor . Pencereleme Sistemi, bir kullanıcı arayüzü için WIMP (pencereler, simgeler, menüler, işaretçi) paradigmasını uygulayan bir tür grafik kullanıcı arayüzüdür (yukarıda bahsettiğim gibi GUI).
İşte hem Linux ve Windows sistemleri için önemli pencere sistemlerinin bir listesidir.
Herhangi bir pencereleme sisteminin ana bileşeni genellikle görüntüleme sunucusu olarak adlandırılır (pencereleme sistemi bir tür GUI olduğu ve ekran sunucusu herhangi bir GUI'nin anahtar kısmı olduğu için sürpriz değildir), ancak pencere sunucusu veya besteci gibi diğer adlar da kullanılır.
GUI'sini çalıştıran ve sunan herhangi bir uygulama , görüntüleme sunucusunun bir istemcisidir . Görüntü sunucusu ve istemcileri, genellikle görüntü sunucusu protokolü adı verilen bir iletişim protokolü üzerinden birbirleriyle iletişim kurarlar ; görüntü sunucusu, istemciler ve kullanıcı arasında aracıdır. Görüntüleme sunucusu, çekirdeğin klavye, işaret aygıtları veya dokunmatik ekran gibi bağlı tüm giriş aygıtlarından aldığı tüm girişleri alır ve doğru istemciye iletir. Görüntüleme sunucusu, istemcilerin bilgisayar monitörüne çıkışından da sorumludur. Bir ekran sunucusu protokolüağ özellikli, hatta ağ şeffaf olabilir. (Gördüğünüz gibi, aslında sadece veri akışı ve yönlendirme ile ilgilidir, görsel veriler hala veridir.)
Ve buraya göre :
X Sunucusu, diğer programlara görüntüleme ve kullanıcı giriş hizmetleri sağlayan bir programdır. Buna karşılık, bir dosya sunucusu diğer programlara dosya depolama aygıtlarına erişim sağlar. Dosya sunucuları genellikle uzak bir konumda bulunur ve dosya sunucusunun hizmetlerini bulunduğunuz makineden kullanırsınız. Buna karşılık, bir X Sunucusu genellikle bulunduğunuz makinede çalışır ; ekran ve kullanıcı giriş hizmetleri, makinenizde çalışan programlar ve uzak makinelerde çalışan programlar tarafından istenebilir .
Yani X şunlardan oluşur:
- görüntü sunucusu
- ekran sunucusu protokolü
- gelişim için bazı kütüphaneler
- Ve diğer şeyler
Buraya göre :
X, bir GUI ortamı için temel bir çerçeve sağlar: görüntüleme aygıtında pencere çizme ve taşıma ve fare ve klavye ile etkileşim kurma. X, kullanıcı arayüzünü zorunlu kılmaz - bu ayrı programlar tarafından yönetilir. Bu nedenle, X tabanlı ortamların görsel tarzı büyük ölçüde değişir; farklı programlar radikal olarak farklı arayüzler sunabilir.
Başka bir deyişle, X bir programa sadece çizim / hareket pencereleri ve giriş etkileşimi gibi temel şeyleri yapma yeteneği verir . X görsel stilleri zorlamıyor. Yani, " ... Kullanıcı arayüzlerini sunmak için uygulamalara bir standart veriyor ... " yanlış.
3. GNOME / KDE nedir
GNOME ve KDE'nin ikisi de Linux Masaüstü Ortamıdır . Masaüstü ortamı, ortak bir GUI'yi paylaşan bir işletim sisteminin üstünde çalışan bir program paketidir .
Ancak yukarıda da belirttiğim gibi, X11, bir görüntüleme sunucusu olarak, sadece Xlib veya XCB gibi bazı kütüphaneler aracılığıyla temel çizim yeteneği sağlar. X11'i bu tür kütüphaneler aracılığıyla doğrudan arabirimleyen uygulamalar, radikal olarak farklı görsel stillere sahip olabilir .
Peki ortak bir GUI nasıl oluşturulur? Widget araç setleri geliyor . Bu gibi GTK + ve Qt . Wayland ve X11 pencere sistemlerinde popülerdir .
GNOME GTK + 'yı kullanır.
KDE Qt kullanın.
Ve burada X Pencere Sistemi Masaüstü Ortamlarının bir karşılaştırması.
Özetlemek...
Kaba kavramsal bir örnek çiziyorum. İşletim sisteminin üstündeki 3 parça çok özelleştirilebilir. Bu yüzden çok fazla esneklik (karışıklık) ortaya çıkıyor.
1 - 13: 26 PM 21.09.2018
Ve işte QT ve GTK hakkında bazı tartışmalar (belki de bu konuya offtopik ...)