Pencereleme sistemi - Windowing system

Bir pencerenin tipik öğeleri . Cam dekorasyon ya çizilir pencere yöneticisi veya müşteri tarafından. İçeriğin çizimi müşterinin görevidir.

Bilgi işlemde , bir pencereleme sistemi (veya pencere sistemi ), ekranların farklı bölümlerini ayrı ayrı yöneten bir yazılımdır . Bu türüdür grafik kullanıcı arayüzü olan uygular (GUI) WIMP ( pencereler , simgeler , menüler , işaretçi bir için) paradigma kullanıcı arabirimi .

Şu anda çalışan her uygulamaya , GUI'sini kullanıcıya sunmak için genellikle yeniden boyutlandırılabilir ve genellikle dikdörtgen bir ekran yüzeyi atanır; bu pencereler, üst üste binmelerine izin verilmeyen bir döşeme arayüzünün aksine , birbiriyle örtüşebilir. Genellikle her pencerenin etrafına bir pencere dekorasyonu çizilir. Kaydırıcılar, düğmeler vb. gibi doğrudan kullanıcı etkileşimi için grafik öğeler olan pencere dekorasyonunun ve pencere içindeki mevcut pencere öğelerinin programlanması, pencere öğesi araç takımlarının kullanımıyla kolaylaştırılır ve basitleştirilir .

Teknik detaylar

Herhangi bir pencereleme sisteminin ana bileşenine genellikle görüntüleme sunucusu denir , ancak pencere sunucusu veya birleştirici gibi alternatif adlandırmalar da kullanılmaktadır. GUI'sini bir pencerede ç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ü olarak adlandırılan bir iletişim protokolü üzerinden birbirleriyle iletişim kurar ; görüntü sunucusu, istemciler ve kullanıcı arasında arabulucudur. Bu tüm giriş alır çekirdek çekirdek bağlı tüm aldığı, giriş aygıtları gibi, klavye , işaret aygıtları ya da dokunmatik ekran ve doğru müşteriye iletir o. Görüntü sunucusu, istemcilerin bilgisayar monitörüne çıkışından da sorumludur . Ses çıkışı genellikle görüntüleme sunucusu tarafından yönetilmez, ancak ses düzeyi genellikle GUI uygulamaları aracılığıyla işlenir ve hangi uygulamaların en üstte olduğuna karar veren görüntü sunucusudur. Pencereleme sistemi, bilgisayar kullanıcısının aynı anda birkaç programla çalışmasını sağlar. Her program, GUI'sini, genellikle ekranın dikdörtgen bir alanı olan kendi penceresinde sunar.

Bir programcının bakış açısından, bir pencereleme sistemi grafiksel ilkelleri uygular. Örneğin: yazı tiplerini oluşturma veya ekranda bir çizgi çizme. Pencere yöneticisi gibi grafik arabirimin daha yüksek düzeyli öğeleri tarafından kullanılmak üzere grafik donanımının bir soyutlamasını sağlar.

Bir görüntüleme sunucusu protokolü, ağ uyumlu veya hatta ağ şeffaf olabilir , bu da ince istemcilerin uygulanmasını kolaylaştırır .

Görüntü sunucusu

Bir GUI'nin temel bileşenleri : Görüntü sunucusu , pencereleme sistemini uygular. Basit bir pencere yöneticisi yalnızca pencere dekorasyonlarını çizer , ancak pencere yöneticilerini birleştirmek daha fazlasını yapar.

Bir görüntüleme sunucusu veya pencere sunucusu , birincil görevi, istemcilerinin işletim sisteminin geri kalanı, donanım ve birbirleriyle giriş ve çıkışlarını koordine etmek olan bir programdır. Görüntü sunucusu, istemcileriyle , ağ şeffaf veya basitçe ağ uyumlu olabilen bir iletişim protokolü olan görüntü sunucusu protokolü üzerinden iletişim kurar .

Görüntü sunucusu, herhangi bir grafik kullanıcı arabiriminde , özellikle pencereleme sisteminde önemli bir bileşendir .

Sunucu iletişim protokollerini görüntüleyin

X11

X.Org Sunucu müşterileri, örneğin iletişim kurar Amarok X11 protokolü üzerinden,
X Pencere Sistemi logosu

Görüntüleme sunucusuna bir örnek , çekirdeğin (genellikle Linux veya BSD gibi Unix benzeri bir çekirdek) üzerinde çalışan X.Org Sunucusudur . Kullanıcı girdi verilerini alır (örn. Linux'ta evdev'den ) ve bunu istemcilerinden birine iletir . Görüntü sunucusu ayrıca istemcilerinden veri alır; verileri işler, birleştirmeyi yapar ve Linux'ta verileri üç çekirdek bileşeninden birine iletir – DRM , gem veya KMS sürücüsü . Bileşen, verileri çerçeve arabelleğine yazar ve çerçeve arabelleğinin içeriği bağlı ekrana iletilir ve görüntülenir. X, GLX'e güvenir .

Görüntü sunucusu kavramının uygulamalarından biri, X Pencere Sistemi , özellikle de gerçekte kullanılan sürümü - X.Org Sunucusu ve Xlib ve XCB istemci kitaplıkları. X.Org Sunucusu bir görüntüleme sunucusudur, ancak mevcut uygulamasında birleştirme işlemini yapmak için birleştirme penceresi yöneticisi olan ikinci bir programa güvenir . Örnekler Mutter veya KWin'dir .

X11 görüntü sunucusu protokolünü uygulayan görüntü sunucularının dikkate değer örnekleri X.Org Sunucusu , XFree86 , XQuartz ve Cygwin/X iken, X11 görüntü sunucusu protokolünü uygulayan istemci kitaplıkları Xlib ve XCB'dir .

yol diyarı

Wayland ekran sunucusu protokolü
Wayland logosu

Wayland ekran sunucu protokolünü uygulayan Görüntü sunucular, denir Wayland besteciler . X11 aksine - - ayrıca yönelik herhangi bir görüntüleme sunucusunda olduğu gibi, bir Wayland dizgicisi müşterileri için girdi ve çıktı taşıma ve sorumludur birleştirme . Örnekler Weston , Mutter , KWin veya Enlightenment'tır .

Wayland bestecileri, Wayland istemcileri ile Wayland görüntü sunucusu protokolü üzerinden iletişim kurar . Bu protokol, istemcilerin EGL işleme API'sini kullanarak doğrudan çerçeve arabelleğine veri yazabileceğini tanımlar . Görüntüleme sunucusu yine de hangi pencerenin en üstte olduğuna ve dolayısıyla kullanıcı tarafından görülebileceğine karar verir ve aynı zamanda evdev'den istemcilerine giriş cihazlarıyla ilgili verilerin iletilmesinden de sorumludur .

Wayland, Fedora gibi bazı Linux masaüstü dağıtımlarında belirli bir dereceye kadar kullanılır . Ayrıca mobil bilgi işlem için çok uygundur ve örneğin akıllı telefon ve tablet odaklı Tizen , Sailfish OS ve AsteroidOS projeleri tarafından benimsenmiştir .

MIT Lisansı , libwayland-client ve libwayland-server kitaplıkları altında bir Wayland uygulaması mevcuttur .

Chrome OS'ye Wayland desteği eklemek için devam eden bir çaba var .

Mir

Mir ekran sunucusu X11 ve Wayland tarafından kullanılanlardan farklıdır kendi Mir ekran sunucu protokolü ile birlikte gelir. Mir ayrıca X11 protokolünü de destekler. Canonical tarafından geliştirildi ve Ubuntu için tercih edilen görüntüleme sunucusu olması amaçlandı . 2017 itibariyle, Ubuntu'nun masaüstü sürümleri için Wayland görüntü sunucusu ile değiştirilmiştir.

GPLv3 kapsamında Mir görüntüleme sunucusu, libmir sunucusu ve libmir-istemci kitaplıklarının uygulamaları vardır .

YüzeyFlinger

Google , Android için SurfaceFlinger adlı bir görüntüleme sunucusu geliştirdi (öncelikle mobil cihazlar için başka bir Linux çekirdeği tabanlı işletim sistemi):

Android'deki her şey bir "yüzeye" dönüştürülür; "yüzeyler" uygulamalar tarafından üretilir ve SurfaceFlinger tarafından yönetilen bir kuyruğa yerleştirilir.

Yine Android'e özel bir çözüm de "Gralloc". Gralloc cihaz belleğini yönetir, yani tahsis, tahkim yapar, Android/Linux çit dosyası tanımlayıcıları (FD'ler) aracılığıyla senkronizasyonu gerçekleştirir. Gralloc, örneğin Mesa'nın Genel Tampon Yönetimi (GBM) veya Nvidia'nın EGLStreams gibi diğer çözümlerle rekabet eder . Gralloc donanım soyutlama katmanı (HAL) , "yüzeylerin" altında yatan arabellekleri tahsis etmek için kullanılır.

Android'de birleştirme için Yüzeyler, birleştirmeyi yapmak için OpenGL ES kullanan SurfaceFlinger'a gönderilir.

Donanım Bestecisi HAL (HWC), Android 3.0'da tanıtıldı ve yıllar içinde istikrarlı bir şekilde gelişti. Birincil amacı, mevcut donanımla arabellekleri birleştirmenin en verimli yolunu belirlemektir. Bir HAL olarak, uygulanması cihaza özeldir ve genellikle ekran donanımı OEM'i tarafından yapılır.

Kuvars Besteci

Apple'ın macOS işletim sistemleri ailesi için Quartz Compositor , pencereleme sistemindeki bir görüntüleme sunucusunun ve bir pencere yöneticisinin görevlerini yerine getirir.

Masaüstü Pencere Yöneticisi

İçin Microsoft Windows , gelen Windows Vista ileriye, Masaüstü Pencere Yöneticisi grafik kullanıcı arayüzü işlemek için donanım hızlandırma kullanımını mümkün kılmaktadır. Başlangıçta şeffaflık, 3B pencere değiştirme ve daha fazlası gibi efektlere izin veren yeni "Windows Aero" kullanıcı deneyiminin bölümlerini etkinleştirmek için oluşturuldu. Ayrıca Windows Server 2008'e dahildir, ancak "Masaüstü Deneyimi" özelliğinin ve uyumlu grafik sürücülerinin yüklenmesini gerektirir.

Pencereleme sistemlerinin listesi

For Unix benzeri işletim sistemleri

For Windows NT ailesi işletim sistemleri

Web pencereleme sistemleri

Başka

Microsoft Windows ( XP , 9x ve öncesi), klasik Mac OS (sürüm 9 ve öncesi) ve Palm OS gibi ticari sistemler , işletim sistemi ile entegre bir pencereleme sistemi içerir.

Ayrıca bakınız

Referanslar