Wayland (görüntü sunucusu protokolü) - Wayland (display server protocol)

Wayland
Wayland Logo.svg
Weston, the reference implementation of a Wayland server.
Weston, referans uygulaması Wayland sunucusunun.
Orijinal yazar (lar)Kristian Høgsberg
Geliştirici (ler)freedesktop.org et al.
İlk sürüm30 Eylül 2008; 12 yıl önce (2008-09-30)[1]
Kararlı sürüm
Wayland: 1.18,[2] Weston: 8.0[3] / 11 Şubat 2020; 9 ay önce (2020-02-11)
Depo Bunu Vikiveri'de düzenleyin
YazılmışC
İşletim sistemiresmi: Linux
resmi olmayan: NetBSD, FreeBSD, DragonFly BSD[4]
Tür
LisansMIT Lisansı[5][6][7]
İnternet sitesiWayland.freedesktop.org

Wayland bir iletişim protokolü arasındaki iletişimi belirten görüntü sunucusu ve müşterilerinin yanı sıra C bu protokolün kütüphane uygulaması.[8] Wayland protokolünü kullanan bir görüntü sunucusu, Wayland besteci, çünkü ek olarak bir birleştirme pencere yöneticisi.

Wayland, başlangıçta Kristian Høgsberg tarafından yönetilen bir grup gönüllü tarafından geliştirilmiştir. Bedava ve açık kaynak yerine geçmek amacıyla topluluk odaklı proje X Pencere Sistemi modern, güvenli[9][10][11][12] daha basit pencere sistemi içinde Linux ve diğeri Unix benzeri işletim sistemleri.[8][13] Projenin kaynak kodu şu şartlar altında yayınlanmıştır: MIT Lisansı, bir izin verilen özgür yazılım lisansı.[13][5]

Wayland projesi, çabalarının bir parçası olarak bir referans uygulaması Wayland bestecisinin adı Weston.[8]

Genel Bakış

  1. Evdev modülü Linux çekirdeği bir olay alır ve bunu Wayland besteci.
  2. Wayland bestecisi, sahne grafiği etkinliği hangi pencerenin alması gerektiğini belirlemek için. Senaryo, ekranda olana karşılık gelir ve Wayland düzenleyicisi, senaryodaki öğelere uygulamış olabileceği dönüşümleri anlar. Böylece, Wayland oluşturucu doğru pencereyi seçebilir ve ters dönüşümleri uygulayarak ekran koordinatlarını pencere yerel koordinatlarına dönüştürebilir. Bir pencereye uygulanabilecek dönüşüm türleri, girdi olayları için ters dönüşümü hesaplayabildiği sürece, yalnızca düzenleyicinin yapabilecekleriyle sınırlıdır.
  3. X durumunda olduğu gibi, müşteri olayı aldığında, yanıt olarak kullanıcı arayüzünü günceller. Ancak Wayland durumunda, işleme müşteri tarafından EGL ve müşteri yalnızca güncellenen bölgeyi belirtmek için oluşturucuya bir istek gönderir.
  4. Wayland düzenleyicisi, müşterilerinden hasar taleplerini toplar ve ardından ekranı yeniden birleştirir. Besteci daha sonra doğrudan bir ioctl bir pageflip planlamak için KMS.

2010'dan başlayarak, Linux masaüstü grafikleri "bir yığın" işleme arayüzler ... hepsi konuşuyor X sunucusu Linux çekirdeğini ve bileşenlerini (ör. Doğrudan İşleme Altyapısı (DRI), Doğrudan Oluşturma Yöneticisi (DRM) ) "ortada", "X ve Wayland gibi pencere sistemleri ... köşede kapalı". Bu, "daha fazla esneklik ve daha iyi performans sunan çok basitleştirilmiş bir grafik sistemi" olacak.[14]

Kristian Høgsberg bir X'e uzatma yakın zamanda yapılan birçok projenin yaptığı gibi, ancak projenin SSS bölümünde açıklanan nedenlerden ötürü "X'i istemciler ve donanım arasındaki sıcak yoldan [itmeyi] tercih etti:[13]

Şimdi farklı olan şey, pek çok altyapının X sunucusu çekirdeğe (bellek yönetimi, komut zamanlaması, mod ayarı ) veya kitaplıklar (Kahire pixman serbest tip, fontconfig, pango, vb.) ve merkezi bir sunucu işleminde olması gereken çok az şey kaldı. ... [Bir X sunucusu], X protokolünü konuştuğunuzu iddia etmek için desteklemeniz gereken muazzam miktarda işlevselliğe sahiptir, ancak bunu kimse kullanmayacaktır. ... Bu, kod tablolarını, glif rasterleştirmeyi ve önbelleğe almayı içerir, XLFD'ler (cidden, XLFD'ler!) ve noktalı çizgiler, çokgenler, geniş yaylar ve daha birçok 1980'lerin son moda grafik ilkelleri çizmenize olanak tanıyan tüm çekirdek işleme API'si. Pek çok şey için, X.org sunucusunu modern tutmayı, aşağıdaki uzantıları ekleyerek başardık: XRandR, XRender ve KOMPOZİT ... Wayland ile X sunucusunu ve tüm eski teknolojisini isteğe bağlı bir kod yoluna taşıyabiliriz. X sunucusunun çekirdek oluşturma sistemi yerine bir uyumluluk seçeneği olduğu bir noktaya gelmek biraz zaman alacak, ancak planlamazsak bu noktaya asla ulaşamayız.

Wayland, bir protokol ve adlı bir referans uygulamasından oluşur Weston. Proje aynı zamanda GTK ve Qt Bu, X yerine Wayland'e dönüştürülür. Çoğu uygulamanın, uygulamada değişiklik yapmadan bu kitaplıklardan biri aracılığıyla Wayland için destek kazanması beklenir.

Wayland'ın ilk sürümleri sağlanmadı ağ şeffaflığı ancak Høgsberg 2010'da ağ şeffaflığının mümkün olduğunu kaydetti.[15]Olarak denendi Google Summer of Code 2011 yılında proje, ancak başarılı olmadı.[16]Adam Jackson, bir Wayland uygulamasına ya "piksel kazıma" (ör. VNC ) veya ağ üzerinden bir "işleme komut akışı" göndermesini sağlamak ( RDP, BAHARAT veya X11 ).[17] 2013'ün başlarından itibaren Høgsberg, sıkıştırılmış görüntüleri gerçek birleştiriciye gönderen bir proxy Wayland sunucusu kullanarak ağ şeffaflığını deniyor.[18][19] Ağustos 2017'de GNOME, Wayland altında bu tür ilk piksel kazıma VNC sunucu uygulamasını gördü.[20]

Yazılım mimarisi

Protokol mimarisi

Wayland protokol mimarisinde, bir istemci ve bir düzenleyici, referans uygulama kitaplıklarını kullanarak Wayland protokolü aracılığıyla iletişim kurar.

Wayland protokolü aşağıdaki istemci-sunucu modeli İstemcilerin ekranda piksel tamponlarının görüntülenmesini isteyen grafik uygulamaları olduğu ve sunucu (düzenleyici) bu tamponların görüntülenmesini kontrol eden servis sağlayıcıdır.

Wayland referans uygulaması, iki katmanlı bir protokol olarak tasarlanmıştır:[21]

  • Düşük seviyeli bir katman veya kablo protokolü işleyen arası iletişim ilgili ikisi arasında süreçler ‍ — ‌client ve compositor‍ — ‌ ve Marshalling değiş tokuş ettikleri verilerin Bu katman mesaj tabanlıdır ve genellikle özellikle çekirdek IPC hizmetleri kullanılarak uygulanır. Unix alan soketleri bu durumuda Linux ve Unix benzeri işletim sistemleri.[22]:9
  • Üst düzey bir katman üzerine inşa edilmiş, müşterinin ve düzenleyicinin bir ürünün temel özelliklerini uygulamak için değiş tokuş etmesi gereken bilgileri işleyen pencere sistemi. Bu katman, "eşzamansız nesne yönelimli bir protokol" olarak uygulanır.[22]:9

Düşük seviyeli katman manuel olarak yazılırken C, yüksek seviyeli katman, içinde depolanan protokol öğelerinin açıklamasından otomatik olarak oluşturulur. XML biçim.[23] Bu XML dosyasının protokol açıklaması her değiştiğinde, bu tür protokolü uygulayan C kaynak kodu, çok esnek, genişletilebilir ve hataya dayanıklı bir protokole izin vererek yeni değişiklikleri içerecek şekilde yeniden oluşturulabilir.

Wayland protokolünün referans uygulaması ikiye ayrılmıştır kütüphaneler: Wayland istemcileri tarafından kullanılacak bir kütüphane adı verilir libwayland-müşteri ve Wayland bestecileri tarafından kullanılmak üzere adı verilen bir kitaplık libwayland sunucusu.[22]:57

Protokole genel bakış

Wayland protokolü "eşzamansız" olarak tanımlanır nesne odaklı protokol".[22]:9 Nesne odaklı düzenleyici tarafından sunulan hizmetlerin bir dizi nesneler aynı besteci ile yaşamak. Her nesne bir arayüz bir adı, bir dizi yöntemi olan ( istek) ve birkaç ilişkili Etkinlikler. Her istek ve olayın sıfır veya daha fazla argümanı vardır, her biri bir ad ve bir veri tipi. Protokol asenkron yani, isteklerin senkronize yanıtları beklemesi gerekmemesi veya ACK'lar kaçınmak gidiş-dönüş gecikme süresi ve iyileştirilmiş performans elde etmek.

Wayland istemcileri, nesnenin arayüzü bu isteği destekliyorsa, bazı nesnelerde bir istek (yöntem çağrısı) yapabilir. Müşteri ayrıca bu tür bir talebin argümanları için gerekli verileri sağlamalıdır. Bu, müşterilerin düzenleyiciden hizmet talep etmelerinin yoludur. Oluşturucu, sırayla, nesnenin olayları yaymasına neden olarak istemciye bilgileri geri gönderir (muhtemelen argümanlarla da). Bu olaylar, düzenleyici tarafından belirli bir isteğe yanıt olarak veya eşzamansız olarak, dahili olayların (bir giriş cihazından biri gibi) veya durum değişikliklerinin meydana gelmesine bağlı olarak yayınlanabilir. Hata durumları ayrıca düzenleyici tarafından olaylar olarak bildirilir.[22]:9

Bir istemcinin bir nesneye istekte bulunabilmesi için, önce sunucuya o nesneyi tanımlamak için kullanacağı kimlik numarasını söylemesi gerekir.[22]:9 Oluşturucuda iki tür nesne vardır: küresel nesneler ve küresel olmayan nesneler. Global nesneler, oluşturulduklarında (ve ayrıca yok edildiklerinde) oluşturucu tarafından istemcilere duyurulurken, küresel olmayan nesneler genellikle işlevselliklerinin bir parçası olarak zaten var olan diğer nesneler tarafından oluşturulur.[24]

Arayüzler ve bunların istekleri ve olayları, Wayland protokolünü tanımlayan temel unsurlardır. Protokolün her sürümü, herhangi bir Wayland oluşturucuda olması beklenen istekleri ve olaylarıyla birlikte bir dizi arabirim içerir. İsteğe bağlı olarak, bir Wayland oluşturucu, yeni istekleri ve olayları destekleyen kendi arayüzlerini tanımlayabilir ve uygulayabilir, böylece işlevselliği çekirdek protokolün ötesine genişletebilir.[22]:10 Protokoldeki değişiklikleri kolaylaştırmak için, her arayüz, adına ek olarak bir "sürüm numarası" özelliği içerir; bu özellik, aynı arayüzün varyantlarının ayırt edilmesini sağlar. Her Wayland oluşturucu, yalnızca hangi arabirimlerin mevcut olduğunu değil, aynı zamanda bu arabirimlerin desteklenen sürümlerini de ortaya çıkarır.[22]:12

Wayland çekirdek arayüzleri

Wayland protokolünün mevcut sürümünün arayüzleri dosyada tanımlanmıştır protocol / wayland.xml Wayland kaynak kodunun.[23] Bu bir XML mevcut sürümdeki mevcut arayüzleri, istekleri, olayları ve diğer nitelikleriyle birlikte listeleyen dosya. Bu arabirim seti, herhangi bir Wayland oluşturucu tarafından uygulanması gereken minimumdur.

Wayland protokolünün en temel arayüzlerinden bazıları şunlardır:[22]:10-12

  • wl_display - temel küresel nesne, Wayland protokolünün kendisini kapsayacak özel bir nesne
  • wl_registry - düzenleyicinin tüm istemciler tarafından kullanılabilir olmasını istediği tüm genel nesneleri kaydettiği genel kayıt nesnesi
  • wl_compositor - düzenleyiciyi temsil eden ve farklı yüzeyleri tek bir çıktıda birleştirmekten sorumlu bir nesne
  • wl_surface - bir konum, boyut ve piksel içeriği ile tanımlanan, ekrandaki dikdörtgen bir alanı temsil eden bir nesne
  • wl_buffer - bir nesneye eklendiğinde wl_surface nesne, görüntülenebilir içeriğini sağlar
  • wl_output - bir ekranın görüntülenebilir alanını temsil eden bir nesne
  • wl_pointer, wl_keyboard, wl_touch - gibi farklı giriş cihazlarını temsil eden nesneler işaretçiler veya klavyeler
  • wl_seat - içinde bir koltuğu temsil eden bir nesne (bir dizi giriş / çıkış cihazı) çoklu konum konfigürasyonları

Tipik bir Wayland istemcisi oturumu, besteci ile bir bağlantı açılarak başlar. wl_display nesne. Bu, bağlantıyı temsil eden ve sunucu içinde yaşamayan özel bir yerel nesnedir. Arayüzünü kullanarak müşteri, wl_registry tüm global nesne adlarının yaşadığı ve müşterinin ilgilendiklerini bağlayan birleştiriciden global nesne. Genellikle istemci en az bir wl_compositor bir veya daha fazla talep edeceği nesne wl_surface uygulama çıktısını ekranda göstermek için nesneler.[24]

Wayland genişletme arayüzleri

Bir Wayland oluşturucu, kendi ek arayüzlerini tanımlayabilir ve dışa aktarabilir.[22]:10 Bu özellik, protokolü çekirdek arayüzler tarafından sağlanan temel işlevselliğin ötesine genişletmek için kullanılır ve Wayland protokol uzantılarını uygulamanın standart yolu haline gelmiştir. Bazı oluşturucular, özelleştirilmiş veya benzersiz özellikler sağlamak için özel arabirimler eklemeyi seçebilir. Wayland referans oluşturucusu Weston, onları yeni deneysel arayüzleri yeni kavramlar ve fikirler için bir test ortamı olarak uygulamak için kullandı ve bunlardan bazıları daha sonra çekirdek protokolün bir parçası haline geldi (örneğin wl_subsurface Wayland 1.4'te arayüz eklendi[25]).

Temel protokole genişletme protokolleri

XDG-Shell protokolü

XDG-Shell protokolü (bkz. freedesktop.org XDG için) Wayland bestecileri altında (yalnızca Weston değil) yüzeyleri yönetmenin genişletilmiş bir yoludur. Yüzeyleri manipüle etmenin (büyütme, küçültme, tam ekran vb.) Geleneksel yolu, temel Wayland protokolünün bir parçası olan ve içinde yaşayan wl_shell _ * () işlevlerini kullanmaktır. libwayland-müşteri. Aksine, xdg-shell protokolünün bir gerçeklemesinin Wayland düzenleyicisi tarafından sağlanması gerekiyordu. Böylece bulacaksın xdg-shell-client-protocol.h Weston kaynak ağacındaki başlık. Her Wayland bestecisinin kendi uygulamasını sağlaması beklenir.

Haziran 2014 itibariyle, XDG-Shell protokolü versiyonlanmadı ve yine de değişikliklere açık.

xdg_shell, uzun vadede wl_shell'in yerini almayı amaçlayan bir protokoldür, ancak Wayland çekirdek protokolünün bir parçası olmayacaktır. İlk başta bir geliştirme yeri olarak kullanılması amaçlanan kararlı olmayan bir API olarak başlar ve özellikler birkaç masaüstü kabuğunun gerektirdiği şekilde tanımlandığında, sonunda kararlı hale getirilebilir. Esas olarak iki yeni arayüz sağlar: xdg_surface ve xdg_popup. Xdg_surface arabirimi, taşınabilir, yeniden boyutlandırılabilir, büyütülebilir vb. Masaüstü tarzı bir pencere uygular; çocuk / ebeveyn ilişkisi oluşturmak için bir istek sağlar. Xdg_popup arabirimi, masaüstü tarzı bir açılır pencere / menü uygular; bir xdg_popup her zaman başka bir yüzey için geçicidir ve ayrıca örtük tutma özelliğine sahiptir.[26]

IVI-Shell protokolü

IVI-Shell, Wayland çekirdek protokolünün bir uzantısıdır. araç içi bilgi-eğlence (IVI) cihazları.[27]

Oluşturma modeli

Wayland besteci ve müşterileri kullanıyor EGL doğrudan içine çekmek framebuffer; X.Org Sunucusu ile XWayland ve Cazibe.

Wayland protokolü, bir işleme API'si içermez.[22]:7[13][28][29]:2 Bunun yerine, Wayland bir doğrudan işleme istemcinin pencere içeriğini oluşturucu ile paylaşılabilir bir arabelleğe dönüştürmesi gereken model.[22]:7 Bu amaçla, müşteri tüm işlemeyi kendi başına yapmayı seçebilir, aşağıdaki gibi bir işleme kitaplığı kullanabilir: Kahire veya OpenGL veya Wayland desteğine sahip üst düzey bileşen kitaplıklarının oluşturma motoruna güvenin, örneğin Qt veya GTK. İstemci ayrıca isteğe bağlı olarak, aşağıdaki gibi belirli görevleri gerçekleştirmek için diğer özel kitaplıkları kullanabilir: Freetype için yazı tipi oluşturma.

Oluşturulan pencere içeriği ile ortaya çıkan tampon, bir wl_buffer nesne. Bu nesnenin dahili türü uygulamaya bağlıdır. Tek şart, içerik verilerinin müşteri ve besteci arasında paylaşılabilir olmasıdır. İstemci bir yazılım (CPU) oluşturucu kullanıyorsa ve sonuç, Sistem belleği, sonra müşteri ve düzenleyici kullanabilir paylaşılan hafıza ekstra kopyalar olmadan ara bellek iletişimini gerçekleştirmek için. Wayland protokolü zaten yerel olarak bu tür paylaşılan bellek arabelleğini wl_shm ve wl_shm_pool arayüzler.[22]:11, 20-21 Bu yöntemin dezavantajı, düzenleyicinin görüntülemek için ek çalışma yapması (genellikle paylaşılan verileri GPU'ya kopyalamak için) gerekebilmesidir, bu da daha yavaş grafik performansına yol açar.

En tipik durum, müşterinin doğrudan bir video belleği donanım (GPU) hızlandırmalı API kullanarak arabellek OpenGL, OpenGL ES veya Vulkan. İstemci ve compositor, bu GPU-alanı arabelleğine başvurmak için özel bir işleyici kullanarak paylaşabilir.[30] Bu yöntem, birleştiricinin ana bellek arabelleği istemciden-birleştiriciye-GPU yönteminin kendi başına fazladan veri kopyalamasını engellemesini sağlar, bu da daha hızlı grafik performansı sağlar ve bu nedenle tercih edilen yöntemdir. Oluşturucu, bir API istemcisi ile aynı donanım hızlandırma API'sini kullanarak ekranda gösterilecek son sahnenin kompozisyonunu daha da optimize edebilir.

Oluşturma, paylaşılan bir arabellekte tamamlandığında, Wayland istemcisi, oluşturucuya arabelleğin oluşturulmuş içeriklerini ekranda sunması talimatını vermelidir. Bu amaçla, müşteri, oluşturulan içerikleri yüzey nesnesine depolayan tampon nesnesini bağlar ve tamponun etkili kontrolünü birleştiriciye aktararak yüzeye bir "commit" isteği gönderir.[21] Daha sonra müşteri, başka bir çerçeveyi oluşturmak için arabelleği yeniden kullanmak istiyorsa veya yeni çerçeveyi oluşturmak için başka bir arabellek kullanabiliyorsa, oluşturucunun arabelleği serbest bırakmasını (bir olay tarafından belirtilir) bekler ve oluşturma bittiğinde bu yeni tampon yüzeye çıkar ve içeriğini teslim eder.[22]:7 İlgili arabelleklerin sayısı ve bunların yönetimi dahil olmak üzere oluşturma için kullanılan prosedür tamamen müşterinin kontrolündedir.[22]:7

Diğer pencere sistemleriyle karşılaştırma

Wayland ve X arasındaki farklar

Wayland ve X arasında performans, kod sürdürülebilirliği ve güvenlik açısından birkaç fark vardır:[31]

Mimari
kompozisyon yöneticisi Wayland, görüntü sunucusu ile birleştiriciyi tek bir işlev olarak birleştirirken, X'teki ayrı, ek bir özelliktir.[32][28] Ayrıca, bazı görevlerini içerir. pencere yöneticisi, X'de ayrı bir istemci tarafı işlemdir.[33]
Birleştirme
Birleştirme X'de isteğe bağlıdır, ancak Wayland'de zorunludur. X'de birleştirme "aktiftir"; yani, birleştiricinin tüm piksel verilerini alması gerekir, bu da gecikmeye neden olur. Wayland'de, birleştirme "pasiftir", bu da birleştiricinin piksel verilerini doğrudan istemcilerden aldığı anlamına gelir.[34]:8-11
Rendering
X sunucusunun kendisi işlemeyi gerçekleştirebilir, ancak bir istemci tarafından gönderilen işlenmiş bir pencereyi görüntülemesi talimatı verilebilir. Aksine, Wayland işleme için herhangi bir API açığa çıkarmaz, ancak bu tür görevleri istemcilere delege eder (yazı tiplerinin, widget'ların oluşturulması vb. Dahil).[32][28] Pencere dekorasyonları, istemci tarafında (örneğin, bir grafik araç takımı ile) veya sunucu tarafında (düzenleyici tarafından) oluşturulabilir.[35]
Güvenlik
Wayland, her pencerenin giriş ve çıkışını izole ederek her iki durumda da gizlilik, bütünlük ve kullanılabilirlik sağlar; orijinal X tasarımı bu önemli güvenlik özelliklerinden yoksundur,[10][11][12] bunu azaltmaya çalışan bazı uzantılar geliştirilmiş olsa da.[36][37][38] Ayrıca, istemcide çalışan kodun büyük çoğunluğuyla, daha az kodun çalıştırılması gerekir. kök ayrıcalıklar, güvenliği geliştirme,[10] ancak birçok popüler Linux dağıtımı artık X'in kök ayrıcalıkları olmadan çalıştırılmasına izin veriyor.[39][40][41][42]
Arası iletişim
X sunucusu, X istemcileri arasında temel bir iletişim yöntemi sağlar ve daha sonra ICCCM sözleşmeler. Bu X müşteriden müşteriye iletişim, pencere yöneticileri tarafından ve ayrıca X seans, seçimler ve sürükle ve bırak ve diğer özellikler. Wayland çekirdek protokolü, wayland istemcileri arasındaki iletişimi hiçbir şekilde desteklemez ve karşılık gelen işlevsellik (gerekirse), masaüstü ortamları (KDE veya GNOME gibi) veya üçüncü bir tarafça (örneğin, yerel IPC temeldeki işletim sistemi).
Ağ oluşturma
X Pencere Sistemi bir mimari özünde bir ağ üzerinden çalışacak şekilde tasarlanmış. Wayland kendi başına ağ şeffaflığı sunmaz;[13] ancak, bir düzenleyici herhangi bir uzak masaüstü protokolü uzak ekran elde etmek için. Buna ek olarak, Wayland görüntü akışı ve sıkıştırması ile ilgili olarak, VNC.[19]

X ile uyumluluk

Xwayland'ı gösteren bir ekran görüntüsü

XWayland bir X Sunucusu Wayland istemcisi olarak çalışır ve bu nedenle, bir Wayland birleştirme ortamında yerel X11 istemci uygulamalarını görüntüleyebilir.[43] Bu yola benzer XQuartz içinde X uygulamayı çalıştırır Mac os işletim sistemi Yerel pencereleme sistemi. XWayland'ın amacı, X Window System'den Wayland ortamlarına geçişi kolaylaştırmak ve bu arada portatif olmayan uygulamaları çalıştırmak için bir yol sağlamaktır. XWayland, X.Org Sunucusu sürüm 1.16.[44]

Gibi widget araç takımları Qt 5 ve GTK 3, çalışma zamanında grafik arka uçlarını değiştirebilir,[45] kullanıcıların seçim yapmasına izin vermek yükleme zamanı uygulamayı X üzerinden mi yoksa Wayland üzerinden mi çalıştırmak istediklerini. Qt 5, -platform komut satırı seçeneği[46] GTK 3 kullanıcıların istedikleri şeyi seçmesine izin verirken GDK arka uç GDK_BACKEND Unix ortam değişkeni.[45][47]

Wayland bestecileri

A'nın tipik öğeleri pencere. Ne Wayland ne de X11, hangi yazılımın pencere dekorasyonu. Weston, müşteri tarafından çizilmesini gerektirir, ancak KWin sunucu tarafı dekorasyonu uygulayacak.[35]

Ekran sunucuları Wayland görüntü sunucusu protokolünü uygulayanlara ayrıca Wayland bestecileri çünkü ek olarak bir birleştirme pencere yöneticisi.

  • Weston - referans uygulaması Wayland bestecisinin; Weston uygular müşteri tarafı dekorasyonları
  • Ruj - mobil grafik kabuk Wayland düzenleyiciyi uygulayan çerçeve; kullanılır Sailfish OS, Nemo Mobil ve AsteroidOS[48]
  • Aydınlanma 0.20 sürümünden beri tam Wayland desteği talep edildi[49] ancak şu anda eksiksiz bir Wayland bestecisi çıkarmak için çalışmalar devam ediyor [50]
  • KWin 2018 itibariyle neredeyse tam Wayland desteğine sahip[kaynak belirtilmeli ]
  • Mutter GNOME 3.9 için Wayland'ın entegrasyonu için ayrı bir şube tutar (Eylül 2013'te)[51]
  • Clayland - Clutter kullanan basit bir örnek Wayland oluşturucu
  • Westeros - Uygulamaların kendi Wayland ekranlarını oluşturmasına olanak tanıyan ve üçüncü taraf uygulamaların yerleştirilmesine ve yerleştirilmesine olanak tanıyan bir Wayland birleştirme kitaplığı[52]
  • Wlroots - en önemlisi diğer besteciler için bir temel işlevi gören modüler bir Wayland uygulaması Sallanma[53][54]
  • Sallanma - Fayanslı bir Wayland düzenleyici ve X11 için i3 pencere yöneticisi için bir açılır kapanır yedek[55]

Weston

Weston koşuyor postmarketOS

Weston, bir Wayland bestecisinin referans uygulamasıdır[56] Wayland projesi tarafından da geliştirilmiştir. Yazılmıştır C ve altında yayınlandı MIT Lisansı. Weston, yalnızca Linux işletim sistemi, Weston'ın belirli özelliklere bağlı olması nedeniyle Linux çekirdeği, gibi çekirdek modu ayarı, Grafik Yürütme Yöneticisi (GEM) ve Udev, diğer Unix benzeri işletim sistemlerinde uygulanmamış.[57] Linux üzerinde çalışırken, giriş donanımının işlenmesi şunlara bağlıdır: Evdev arabelleklerin işlenmesi, Genel Tampon Yönetimi (GBM). Ancak, 2013'te Weston'ın prototip limanı FreeBSD duyruldu.[58]

Weston destekler Yüksek Bant Genişlikli Dijital İçerik Koruması (HDCP).[59]

Weston, oluşturucu ve uygulamalar arasında uygulama arabelleklerini paylaşmak için GEM'e güveniyor. Bağlantı istasyonları ve paneller gibi yaygın masaüstü özellikleri için bir eklenti "kabuk" sistemi içerir.[19] Müşteriler, pencere kenarlarının ve dekorasyonlarının çiziminden sorumludur. Weston, render için şunları kullanabilir: OpenGL ES[60] veya pixman kitaplığı yapılacak yazılım oluşturma.[61] Tam OpenGL uygulaması kullanılmamaktadır, çünkü mevcut sistemlerin çoğunda tam OpenGL kitaplıklarının yüklenmesi de GLX ve diğeri X Pencere Sistemi bağımlılıklar olarak kitaplıkları destekler.[62]

Weston için bir uzaktan erişim arabirimi, Ekim 2013'te bir RealVNC çalışan.[63]

Maynard

Ocak 2017'de Maynard masaüstü

Maynard bir grafik kabuk ve Weston için bir eklenti olarak yazılmıştır. GNOME Kabuğu eklenti olarak yazılmıştır Mutter.[64]

libinput

libinput, girdi yığınını birden çok Wayland oluşturucuda birleştirmek için oluşturuldu.

Giriş cihazlarını (klavyeler, işaretçiler, dokunmatik ekranlar, vb.) İşlemeye yönelik Weston kodu, kendi ayrı kitaplığına bölündü. libinput, bunun için destek ilk olarak Weston 1.5'te birleştirildi.[65][66]

Libinput, birden fazla Wayland bestecisi için giriş cihazlarını yönetir ve aynı zamanda bir jenerik X.Org Sunucusu giriş sürücüsü. Birden çok Wayland oluşturucu için giriş olaylarını işlemek için ortak bir yol sağlarken, özel giriş kodu oluşturucuların dahil etmesi gereken miktarı en aza indirmeyi amaçlamaktadır. libinput, cihaz algılaması sağlar[açıklama gerekli ] (üzerinden Udev ), cihaz işleme, giriş cihazı olay işleme ve soyutlama.[67][68]

Libinput'un 1.0 sürümü, 0.21 sürümünü izledi ve tabletler, düğme setleri ve dokunmatik yüzey hareketleri için destek içeriyordu. Bu sürüm, kararlı API / ABI'yi koruyacaktır.[69]

GNOME / GTK olarak ve KDE Çerçeveleri 5[70] Fedora 22, gerekli değişiklikleri sağladıktan sonra, X.Org'un evdev ve Synaptics sürücülerini libinput ile değiştirecek.[71]

1.16 sürümüyle birlikte X.Org Sunucusu için alınan destek libinput kütüphane adı verilen bir sarmalayıcı biçiminde xf86-giriş-libinput.[72][73]

Wayland Güvenlik Modülü

Wayland Güvenlik Modülü, benzer bir tekliftir. Linux Güvenlik Modülü arayüz bulundu Linux çekirdeği.[74]

Bazı uygulamalar (özellikle ilgili olanlar ulaşılabilirlik ) farklı Wayland bestecilerinde çalışması gereken ayrıcalıklı yetenekler gerektirir. Şu anda,[ne zaman? ] Wayland altındaki uygulamalar genellikle ekran görüntüsü alma veya girdi olaylarını enjekte etme gibi hassas görevleri yerine getiremez. Wayland geliştiricileri, ayrıcalıklı müşterileri güvenli bir şekilde ele almanın uygun yollarını aktif olarak arıyor ve ardından onlar için ayrıcalıklı arayüzler tasarlıyor.

Wayland Güvenlik Modülü, düzenleyici içindeki güvenlik kararlarını merkezi bir güvenlik karar motoruna devretmenin bir yoludur.[74]

Benimseme

Wayland protokolü basit olacak şekilde tasarlanmıştır, böylece bütünsel bir pencereleme sistemi elde etmek için ek protokoller ve arayüzler tanımlanmalı ve uygulanmalıdır. Temmuz 2014 itibariyle bu ek arayüzler üzerinde çalışılıyordu. Dolayısıyla, araç kitleri zaten Wayland'i tam olarak desteklerken, grafik kabukları gerekli ek arayüzleri oluşturan Wayland geliştiricileriyle işbirliği yapıyor.

Masaüstü Linux dağıtımları

2020 itibariyle çoğu Linux dağıtımı, Wayland'ı kutudan çıktığı gibi destekliyor, bazı önemli örnekler şunlardır:

  • Fedora 25. sürümden başlayarak (22 Kasım 2016'da yayınlandı), varsayılan GNOME 3.22 masaüstü oturumu için Wayland kullanıyor. X.Org grafik sürücüsü Wayland'ı destekleyemezse, geri dönüş olarak.[75]
  • Ubuntu Wayland'i varsayılan olarak Ubuntu 17.10'da (Artful Aardvark) gönderir.[76] Wayland hala ekran paylaşımı ve uzak masaüstü uygulamalarıyla ilgili sorunlar yaşadığından ve pencere yöneticisi çökmelerinden kurtarılmadığından Ubuntu, Ubuntu 18.04 LTS için X.Org'a geri döndü.[77][78] Ubuntu'nun 20.10 sürümünde, Xorg hala varsayılandı.[79]
  • Red Hat Enterprise Linux Wayland, 14 Kasım 2018'de yayınlanan sürüm 8'de varsayılan oturum olarak geliyor.[80]
  • Debian Wayland, 6 Temmuz 2019'da piyasaya sürülen sürüm 10'dan bu yana GNOME için varsayılan oturum olarak geliyor.[81]
  • Slackware Linux 20 Şubat 2020'de Wayland dahil[82] geliştirme sürümü için, -current, sonunda 15.0 sürümü olacaktır.
  • PureOS Wayland'i 20 Şubat 2020'de -current sürümü için dahil etti ve sonunda 15.0 sürümü olacak.[83]
  • Manjaro Manjaro 20.2'de (Nibia) varsayılan olarak Wayland gemileri (22 Kasım 2020'de yayınlandı).[84]

Önemli erken benimseyenler:

  • RebeccaBlackOS bir canlı USB Debian tabanlı[85] Bilgisayarın ana işletim sisteminde herhangi bir değişiklik yapmak zorunda kalmadan gerçek bir Wayland masaüstünü denemenin uygun bir yolunu sağlayan Linux dağıtımı.[86] 2012'den beri Wayland'ı sergilemek için kullanılıyor.[87][88]

Araç seti desteği

Wayland'ı destekleyen araç takımları şunları içerir:

  • Dağınıklık Wayland desteğine sahiptir.[89][90][91]
  • EFL seçim dışında tam Wayland desteğine sahiptir.[92]
  • GTK 3.20 tam Wayland desteğine sahiptir.[93]
  • Qt 5 tam Wayland desteğine sahiptir ve hem Wayland bestecileri hem de Wayland istemcileri yazmak için kullanılabilir.
  • SDL Wayland desteği 2.0.2 sürümüyle başladı[94] ve 2.0.4 sürümünden beri varsayılan olarak etkinleştirilmiştir.[95]
  • GLFW 3.2 Wayland desteğine sahiptir.[96]
  • FreeGLUT ilk Wayland desteğine sahiptir.[97]

Masaüstü ortamları

X'ten Wayland'e taşınan masaüstü ortamları şunları içerir: GNOME,[98] KDE Plazma 5[99] ve Aydınlanma.[100]

Kasım 2015'te Enlightenment e20 tam Wayland desteği ile duyuruldu.[101][49][102] GNOME 3.20, eksiksiz bir Wayland oturumuna sahip ilk sürümdü.[103] GNOME 3.22, GTK, Mutter ve GNOME Shell genelinde çok daha gelişmiş Wayland desteği içeriyordu.[104] GNOME 3.24, Wayland kapsamında tescilli NVidia sürücüleri için destek sağladı.[105]

KDE Plasma için Wayland desteği, Plasma 5'in piyasaya sürülmesine kadar ertelendi,[106] önceden olsa da KWin 4.11 deneysel bir Wayland desteği aldı.[107] Plasma'nın 5.4 sürümü, Wayland oturumuna sahip ilk sürümdü.[108] 2020'de Klipper, Wayland'e taşındı ve Ekim 2020'deki bir sonraki 5.20 sürümü, ekran yayınını ve kaydını iyileştirmeyi hedefliyor.[109] KDE'nin en az bir çekirdek parçası: sddm, Eylül 2020 itibarıyla henüz Wayland'e taşınacak.[110]

Diğer yazılım

Wayland'ı destekleyen diğer yazılımlar şunları içerir:

  • Akıllı Giriş Veriyolu Wayland desteği üzerinde çalışıyor, Fedora 22 için hazır olabilir.[111]
  • RealVNC Temmuz 2014'te bir Wayland geliştirici önizlemesi yayınladı.[63][112][113]
  • Maliit bir giriş metodu Wayland altında çalışan çerçeve.[114][115][116]
  • kmscon Wayland'i wlterm ile destekler.[117]
  • Mesa Wayland desteği entegre edilmiştir.[118]
  • Tutulma Wayland'de bir GSoC - 2014 yılı projesi.[119]
  • Vulkan WSI (Pencere Sistem Arayüzü), EGL'nin OpenGL ES veya GLX için OpenGL için yaptığı gibi benzer bir amaca hizmet eden bir dizi API çağrısıdır. Vulkan WSI, birinci günden itibaren Wayland için destek içerir: VK_USE_PLATFORM_WAYLAND_KHR. Vulkan istemcileri, Weston, GENIVI LayerManager, Mutter / GNOME Shell, Enlightenment ve daha fazlası dahil olmak üzere değiştirilmemiş Wayland sunucularında çalışabilir. WSI, uygulamaların sistemdeki farklı GPU'ları keşfetmesine ve GPU görüntülemenin sonuçlarını bir pencere sisteminde görüntülemesine izin verir.[120]
  • SPURV, Android uygulamalarının Wayland kullanarak GNU / Linux dağıtımlarında çalışması için bir uyumluluk katmanı

Mobil ve yerleşik donanım

Wayland'ı destekleyen mobil ve gömülü donanım aşağıdakileri içerir:

Tarih

Wayland kullanır doğrudan işleme bitmiş EGL.

Kristian Høgsberg, bir Linux grafikler ve X.Org geliştirici daha önce kimler üzerinde çalıştı AIGLX ve DRI2 Wayland, 2008 yılında boş zaman projesi olarak başladı. Kırmızı şapka.[130][131][132][133] Belirttiği hedefi, "her karenin mükemmel olduğu, yani uygulamaların oluşturmayı yeterince kontrol edebilecekleri ve hiçbir zaman yırtılma, gecikme, yeniden çizilme veya titreme görmeyeceğimiz" bir sistemdi. Høgsberg kasabanın içinden geçiyordu Wayland, Massachusetts altta yatan kavramlar "kristalleştiğinde", adı buradan gelmektedir.[132][134]

Ekim 2010'da Wayland, freedesktop.org proje.[135][136] Geçişin bir parçası olarak önceki Google Grubu ile değiştirildi wayland-devel posta listesi, projenin ana tartışma ve geliştirme noktasıdır.

Wayland istemci ve sunucu kitaplıkları başlangıçta MIT Lisansı,[137] referans oluşturucu Weston ve bazı örnek müşteriler GNU Genel Kamu Lisansı sürüm 2.[138] Daha sonra tüm GPL kodu yeniden lisanslandı MIT lisansı altında "kodun referans uygulaması ile gerçek kitaplıklar arasında taşınmasını kolaylaştırmak için".[139] 2015 yılında Wayland tarafından kullanılan lisans metninin MIT lisansının biraz farklı ve daha eski bir versiyonu olduğu keşfedildi ve lisans metni tarafından kullanılan güncel versiyona güncellendi. X.Org projesi (olarak bilinir MIT Expat Lisansı ).[5]

Wayland herkesle çalışır Mesa uyumlu ile sürücüler DRI2 destek[118] Hem de Android aracılığıyla sürücüler Hybris projesi.[140][141][142]

Wayland'in geliştiricileri büyük ölçüde güncel X.Org Sunucusu geliştiriciler.[18]

Salıverme

Başlıca Wayland ve Weston sürümleri[143]
SürümTarihAna Özellikler
WaylandWeston
Eski versiyon, artık korunmuyor: 0.859 Şubat 2012[144]İlk sürüm.
Eski versiyon, artık korunmuyor: 0.9524 Temmuz 2012[145]API stabilizasyonuna başlandı.
Eski versiyon, artık korunmuyor: 1.022 Ekim 2012[146][147]Kararlı yol-istemci API'si.
Eski versiyon, artık korunmuyor: 1.115 Nisan 2013[148][149]Yazılım oluşturma.[61] FBDEV, RDP arka uçları.
Eski versiyon, artık korunmuyor: 1.212 Temmuz 2013[150][151]Kararlı yol-sunucu API'si.Renk yönetimi. Alt yüzeyler. Ahududu Pi arka uç.
Eski versiyon, artık korunmuyor: 1.311 Ekim 2013[152]Daha fazla piksel biçimi. Dil bağlamaları için destek.Android sürücü destek üzerinden libhybris.
Eski versiyon, artık korunmuyor: 1.423 Ocak 2014[25]Yeni wl_subcompositor ve wl_subsurface arayüzleri.Çoklu framebuffer biçimleri. köksüz Weston için günlük desteği.
Eski versiyon, artık korunmuyor: 1.520 Mayıs 2014[65]libinput. Tam ekran kabuk.
Eski versiyon, artık korunmuyor: 1.619 Eylül 2014[153]varsayılan olarak libinput.
Eski versiyon, artık korunmuyor: 1.714 Şubat 2015[154][155]Wayland sunum uzantısı ve yüzey rolleri için destek. IVI kabuk protokolü.
Eski versiyon, artık korunmuyor: 1.82 Haziran 2015[156][157]Çekirdek ve oluşturulan protokol için ayrı başlıklar.Programlamayı yeniden boyayın. İsimli çıktılar. Çıktı dönüşümleri. Yüzey çekim API'si.
Eski versiyon, artık korunmuyor: 1.921 Eylül 2015[158][159]Güncellenmiş lisans.Güncellenmiş lisans. Yeni test çerçevesi. Üç başlı DRM oluşturucu. linux_dmabuf uzantısı.
Eski versiyon, artık korunmuyor: 1.1017 Şubat 2016[160][161]Sürükle ve bırak işlevi, gruplanmış işaretçi olayları.[162]Video 4 Linux 2, dokunmatik giriş, hata ayıklama iyileştirmeleri.[163]
Eski versiyon, artık korunmuyor: 1.111 Haziran 2016[164][165]Yeni yedekleme yükleme rutini, yeni kurulum mantığı.Proxy sarmalayıcılar, paylaşılan bellek değişiklikleri, Doxygen tarafından oluşturulan HTML belgeleri.
Eski versiyon, artık korunmuyor: 1.1221 Eylül 2016[166][167]Hata ayıklama desteği iyileştirildi.libweston ve libweston-desktop. İşaretçi kilitleme ve hapsetme. Göreli işaretçi desteği.
Eski versiyon, artık korunmuyor: 1.1324 Şubat 2017[168][169]Weston'un ABI'si değiştirildi, bu nedenle yeni sürüm 1.13.0 yerine 2.0.0 olarak adlandırıldı.
Eski versiyon, artık korunmuyor: 1.148 Ağustos 2017[170][171]Aynı zamanda Weston 3.0.0 yayınlandı.
Eski versiyon, artık korunmuyor: 1.159 Nisan 2018[172][173]Aynı zamanda Weston 4.0.0 yayınlandı.
Eski versiyon, artık korunmuyor: 1.1624 Ağustos 2018[174][175]Weston 5.0.0 aynı anda piyasaya sürüldü.
Eski versiyon, artık korunmuyor: 1.1720 Mart 2019[176][177]Weston 6.0.0 aynı anda piyasaya sürüldü.
Mevcut kararlı sürüm: 1.182 Ağustos 2019[2][178]Weston 7.0.0 bir ay sonra yayınlandı.
Weston 8[179]24 Ocak 2020
Weston 9[180]4 Eylül 2020
Gösterge:
Eski versiyon
Eski sürüm, hala korunuyor
En son sürüm
En son önizleme sürümü
Gelecek sürüm

Ayrıca bakınız

Referanslar

  1. ^ Høgsberg, Kristian (30 Eylül 2008). "İlk taahhüt". Alındı 3 Ocak 2020.
  2. ^ a b Sur, Simon (11 Şubat 2020). "[ANNOUNCE] wayland 1.18" (Mail listesi). Alındı 12 Şubat 2020.
  3. ^ Ser, Simon (24 Ocak 2020). "[DUYURU] weston 8.0.0" (Mail listesi). Alındı 12 Şubat 2020.
  4. ^ "DragonFlyBSD - Phoronix'e Taşınan Wayland & Weston Compositor". www.phoronix.com.
  5. ^ a b c Harrington, Bryce (15 Eylül 2015). "[ANNOUNCE] wayland 1.8.93". freedesktop.org (Mail listesi).
  6. ^ "wayland / wayland: kök / KOPYALAMA". freedesktop.org. Alındı 14 Haziran 2015.
  7. ^ Larabel, Michael (10 Haziran 2015). "Wayland'ın MIT Lisansı Güncellenecek / Düzeltilecek". Phoronix.com. Alındı 17 Nisan 2016.
  8. ^ a b c "Wayland". Wayland projesi. Alındı 9 Mayıs 2016.
  9. ^ Sengar, Shivam Singh. "Wayland v / s Xorg: Nasıl Benzerler ve Nasıl Farklılar?". sekjuice. Alındı 10 Eylül 2020.
  10. ^ a b c Kerrisk, Michael (25 Eylül 2012). "XDC2012: Grafik yığını güvenliği". LWN.net. Alındı 13 Nisan 2016.
  11. ^ a b Peres, Martin (21 Şubat 2014). "Wayland Compositors - Ayrıcalıklı İstemcilerle Neden ve Nasıl Başa Çıkılır!". Alındı 17 Nisan 2016.
  12. ^ a b Graesslin, Martin (23 Kasım 2015). "Plasma / Wayland'ın güvenliğine bakmak". Alındı 18 Nisan 2016.
  13. ^ a b c d e "Wayland SSS". Wayland projesi. Alındı 9 Mayıs 2016.
  14. ^ Corbet, Jonathan (5 Kasım 2010). "LPC: X'ten Sonra Yaşam". LWN.net. Alındı 17 Nisan 2016.
  15. ^ Høgsberg, Kristian (9 Kasım 2010). "Ağ şeffaflığı argümanı". Wayland, X gibi bir uzaktan oluşturma API'si değildir, ancak bu, ağ şeffaflığını dışlamaz. İstemciler paylaşılan bir arabelleğe dönüştürülür ve ardından oluşturucuya (...) neyi değiştirdiklerini söylemek zorundadır. Oluşturucu daha sonra bu bölgedeki yeni pikselleri ağ üzerinden gönderebilir. Wayland protokolü zaten şiddetli bir şekilde eşzamansızdır, bu nedenle biraz ağ gecikmesini zarif bir şekilde idare edebilmelidir. Uzaktan tam ekran video izleme veya oyun oynama iyi çalışmayacak, [ancak] bu kadar iyi ve şeffaf bir şekilde işleyen başka bir görüntüleme sistemi bilmiyorum.
  16. ^ Larabel, Michael (18 Ağustos 2011). "Uzak Wayland Sunucu Projesi: Hala Çalışıyor mu?". Phoronix.com. Alındı 17 Nisan 2016.
  17. ^ Jackson, Adam (9 Kasım 2010). "[Re:] Ubuntu Wayland'a doğru ilerliyor".
  18. ^ a b Stone, Daniel (28 Ocak 2013). The real story behind Wayland and X (Konuşma). linux.conf.au 2013. Canberra. Alındı 13 Nisan 2016.
  19. ^ a b c Willis, Nathan (13 February 2013). "LCA: The ways of Wayland". LWN.net. Alındı 19 Mayıs 2016.
  20. ^ Daniel Aleksandersen. "Remote desktop capabilities set to make a comeback in GNOME on Wayland". Ctrl.blog. Alındı 29 Ağustos 2017.
  21. ^ a b "The Hello Wayland Tutorial". 8 Temmuz 2014. Alındı 25 Temmuz 2014.
  22. ^ a b c d e f g h ben j k l m n Ö Høgsberg, Kristian. "Wayland Documentation 1.3" (PDF). Alındı 16 Mart 2016.
  23. ^ a b Høgsberg, Kristian. "protocol/wayland.xml". FreeDesktop.org. Alındı 25 Temmuz 2014.
  24. ^ a b Paalanen, Pekka (25 July 2014). "Wayland protocol design: object lifespan". Alındı 6 Nisan 2016.
  25. ^ a b Høgsberg, Kristian (24 January 2014). "Wayland and Weston 1.4 is out". wayland-devel mailing list.
  26. ^ "xdg_shell: Adding a new shell protocol". freedesktop.org. 3 Aralık 2013. Alındı 14 Haziran 2014.
  27. ^ "GENIVI/wayland-ivi-extension".
  28. ^ a b c Vervloesem, Koen (15 February 2012). "FOSDEM: The Wayland display server". LWN.net. Alındı 9 Mayıs 2016.
  29. ^ Barnes, Jesse. "Introduction to Wayland" (PDF). Intel Open Source Technology Center. Alındı 18 Nisan 2016. Does not include a rendering API – Clients use what they want and send buffer handles to the server
  30. ^ Paalanen, Pekka (21 November 2012). "On supporting Wayland GL clients and proprietary embedded platforms". Alındı 6 Nisan 2016. Buffer sharing works by creating a handle for a buffer, and passing that handle to another process which then uses the handle to make the GPU access again the same buffer.
  31. ^ Griffith, Eric (7 June 2013). "The Wayland Situation: Facts About X vs. Wayland". Phoronix.com. s. 2. Alındı 17 Nisan 2016.
  32. ^ a b "Wayland Architecture". Wayland project. Alındı 9 Mayıs 2016.
  33. ^ Edge, Jake (11 April 2012). "LFCS 2012: X and Wayland". LWN.net. Alındı 17 Nisan 2016.
  34. ^ "Wayland/X Compositor Architecture By Example: Enlightenment DR19" (PDF). Alındı 18 Nisan 2016.
  35. ^ a b Graesslin, Martin (7 February 2013). "Client Side Window Decorations and Wayland". Alındı 17 Nisan 2016.
  36. ^ "X.Org Security". X.Org Vakfı. Alındı 2 Temmuz 2017. The X server has long included an extension, SECURITY, which provides support for a simple trusted/untrusted connection model.
  37. ^ Wiggins, David P. (15 November 1996). "Security Extension Specification". X Consortium Standard. Alındı 2 Temmuz 2017.
  38. ^ Walsh, Eamon F. (2009). "X Access Control Extension Specification". Alındı 2 Temmuz 2017.
  39. ^ "Debian Moves To Non-Root X.Org Server By Default - Phoronix". www.phoronix.com.
  40. ^ "Non root Xorg - Gentoo Wiki". wiki.gentoo.org.
  41. ^ "X/Rootless - Ubuntu Wiki". wiki.ubuntu.com.
  42. ^ "1078902 – Xorg without root rights". bugzilla.redhat.com.
  43. ^ Wayland (XWayland) altında "X Müşteri". Wayland project. Alındı 18 Temmuz 2014.
  44. ^ "DUYURU: xorg-server 1.16.0". freedesktop.org. 17 Temmuz 2014.
  45. ^ a b Høgsberg, Kristian (3 January 2011). "Multiple backends for GTK". Alındı 10 Mart 2016.
  46. ^ "QtWayland". Qt Wiki. Alındı 9 Mart 2016.
  47. ^ "Full Wayland support in GTK". GNOME wiki. Alındı 10 Mart 2016.
  48. ^ Edge, Jake (31 July 2013). "Jolla: Sailfish OS, Qt, and open source". LWN.net. Alındı 17 Nisan 2016.
  49. ^ a b Larabel, Michael (30 November 2015). "Enlightenment 0.20 Arrives With Full Wayland Support & Better FreeBSD Support". Phoronix.com. Alındı 17 Nisan 2016.
  50. ^ "Wayland". www.enlightenment.org.
  51. ^ "Index of /sources/mutter-wayland". download.gnome.org.
  52. ^ "Westeros Github Mirror". Alındı 19 Eylül 2016.
  53. ^ "swaywm/wlroots". GitHub. Alındı 28 Ekim 2018.
  54. ^ "swaywm/sway". GitHub. Alındı 28 Ekim 2018.
  55. ^ "Sallanma". swaywm.org. Alındı 20 Aralık 2018.
  56. ^ "BENİOKU". cgit.freedesktop.org.
  57. ^ "README file from the Wayland source code repository". freedesktop.org.
  58. ^ Larabel, Michael (16 February 2013). "Wayland Begins Porting Process To FreeBSD". Phoronix.com. Alındı 17 Nisan 2016.
  59. ^ "Adding Content protection support in drm-backend (!48) · Merge Requests · wayland / weston". GitLab. Alındı 27 Ekim 2019.
  60. ^ Paalanen, Pekka (10 March 2012). "What does EGL do in the Wayland stack". Alındı 19 Mayıs 2016.
  61. ^ a b Larabel, Michael (6 January 2013). "A Software-Based Pixman Renderer For Wayland's Weston". Phoronix.com. Alındı 17 Nisan 2016.
  62. ^ Høgsberg, Kristian (9 December 2010). "Blender3D & cursor clamping".
  63. ^ a b "[RFC weston] remote access interface module". freedesktop.org. 18 Ekim 2013.
  64. ^ "Maynard announcement". 16 Nisan 2014. Alındı 16 Nisan 2014.
  65. ^ a b Høgsberg, Kristian (20 May 2014). "Wayland and Weston 1.5.0 is released". wayland-devel mailing list.
  66. ^ Ådahl, Jonas (12 November 2013). "[RFC] Common input device library". Wayland mailing list.
  67. ^ "libinput". Freedesktop.org. Alındı 21 Mayıs 2014.
  68. ^ Hutterer, Peter (8 October 2014). Consolidating the input stacks with libinput (Konuşma). The X.Org Developer Conference 2014. Bordeaux. Alındı 14 Ocak 2020.
  69. ^ Hutterer, Peter (22 February 2015). "libinput: the road to 1.0".
  70. ^ "Libinput support added to Touchpad KCM". 22 Şubat 2015.
  71. ^ Goede, Hans de (23 February 2015). "Libinput now enabled as default xorg driver for F-22 workstation installs".
  72. ^ Hutterer, Peter (24 Eylül 2014). "libinput - Wayland oluşturucuları ve X.Org sürücüleri için ortak bir girdi yığını". Alındı 17 Nisan 2016.
  73. ^ de Goede, Hans (1 Şubat 2015). "Xorg girişini değiştirme - libinput'lu sürücüler" (PDF). Alındı 18 Nisan 2016.
  74. ^ a b Dodier-Lazaro, Steve; Peres, Martin (9 October 2014). Security in Wayland-based Desktop Environments: Privileged Clients, Authorization, Authentication and Sandboxing! (Konuşma). The X.Org Developer Conference 2014. Bordeaux. Alındı 18 Nisan 2016.
  75. ^ "Changes/WaylandByDefault - Fedora Project Wiki". fedoraproject.org. Alındı 9 Kasım 2020.
  76. ^ "ReleaseNotes for Ubuntu 17.10". Kanonik.
  77. ^ "Ubuntu 18.04 will revert to long-in-the-tooth Xorg".
  78. ^ "Bionic Beaver 18.04 LTS to use Xorg by default". Kanonik.
  79. ^ "How to enable/disable wayland on Ubuntu 20.04 Desktop". linuxconfig.org. Alındı 10 Eylül 2020.
  80. ^ "Chapter 4. New features". Red Hat Müşteri Portalı. Alındı 8 Mayıs 2019.
  81. ^ "NewInBuster - Debian Wiki". wiki.debian.org. Alındı 15 Temmuz 2019.
  82. ^ "Slackware ChangeLogs". Slackware Linux. Alındı 26 Şubat 2020.
  83. ^ "⚡ PureOS Frequently Asked Questions FAQ". tracker.pureos.net. Alındı 9 Kasım 2020.
  84. ^ "Manjaro 20.2 Nibia got released". Alındı 3 Aralık 2020.
  85. ^ "Wayland Live OS Is Now Based On Debian Testing, Working KDE Wayland Support". Phoronix.
  86. ^ "RebeccaBlackOS". Sourceforge.
  87. ^ "Trying Out Wayland With Rebecca Black". Phoronix.
  88. ^ "New Wayland Live CD Has A Lot Of Features". Phoronix.
  89. ^ Bassi, Emmanuele (31 January 2011). "ANNOUNCE: Clutter 1.6.0 (stable)". clutter-announce (Mail listesi).
  90. ^ Bradford, Rob (16 December 2011). "Clutter & Cogl Wayland update". Alındı 9 Mart 2016. The Clutter client side support is basically complete
  91. ^ Bassi, Emmanuele (24 September 2013). "ANNOUNCE: Clutter 1.16.0 (stable)". clutter-announce (Mail listesi).
  92. ^ "Wayland – Enlightenment". Arşivlenen orijinal 29 Mart 2013 tarihinde. Alındı 6 Mart 2013.
  93. ^ "GTK Roadmap". Alındı 8 Mart 2016.
  94. ^ Lantinga, Sam (8 March 2014). "SDL 2.0.2 RELEASED!". SDL Project. Alındı 18 Mart 2014.
  95. ^ Larabel, Michael (9 January 2016). "SDL 2.0.4 Geçen Hafta Wayland ve Mir ile Varsayılan Olarak Sessizce Yayınlandı". Phoronix.com. Alındı 17 Nisan 2016.
  96. ^ Berglund, Camilla (8 April 2014). "Implementation for Wayland · Issue #106 · glfw/glfw · GitHub". Alındı 14 Ağustos 2014.
  97. ^ "FreeGLUT: Implement initial Wayland support". GitHub.
  98. ^ "GNOME Initiatives - Wayland". GNOME Wiki. Alındı 8 Mart 2016.
  99. ^ "KWin/Wayland". KDE Community Wiki. Alındı 8 Mart 2016.
  100. ^ "Enlightenment - Wayland". Enlightenment.org. Alındı 8 Mart 2016.
  101. ^ "Enlightenment DR 0.20.0 Sürümü". Enlightenment.org. Alındı 8 Mart 2016.
  102. ^ "The Enlightenment of Wayland". FOSDEM.org. Alındı 8 Mart 2016.
  103. ^ "ReleasePlanning/FeaturesPlans". GNOME Project. Alındı 31 Mayıs 2015.
  104. ^ "A Look At The Exciting Features/Improvements Of GNOME 3.22". Phoronix.
  105. ^ "GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams". Phoronix.
  106. ^ "Plasma's Road to Wayland". 25 Temmuz 2014.
  107. ^ Larabel, Michael (14 June 2013). "KDE 4.11 Beta Released, Works On Wayland". Phoronix.com. Alındı 17 Nisan 2016.
  108. ^ Graesslin, Martin (29 June 2015). "Four years later". Alındı 17 Nisan 2016.
  109. ^ Liam Dawe. "KDE Plasma 5.20 will properly support screen recording on Wayland and more". gamingonlinux.com. Alındı 10 Eylül 2020.
  110. ^ "sddm without X". dolandırıcı. Alındı 10 Eylül 2020.
  111. ^ Schaller, Christian (3 July 2014). "Wayland in Fedora Update". blogs.gnome.org. Alındı 17 Nisan 2016.
  112. ^ "VNC® Wayland Developer Preview". 8 Temmuz 2014. Arşivlendi orijinal 14 Temmuz 2014.
  113. ^ "RealVNC Wayland developer preview email". freedesktop.org. 9 Temmuz 2014.
  114. ^ "Maliit Status Update". Posterous. 2 Nisan 2013. Arşivlenen orijinal 17 Mayıs 2013 tarihinde. Alındı 14 Ekim 2013.
  115. ^ "More Maliit Keyboard Improvements: QtQuick2". Murray's Blog. 2 Nisan 2013. Alındı 14 Ekim 2013.
  116. ^ "Maliit under Wayland". Arşivlenen orijinal 11 Haziran 2013 tarihinde. Alındı 14 Eylül 2013.
  117. ^ "wlterm". Freedesktop.org. Alındı 8 Temmuz 2014.
  118. ^ a b Hillesley, p. 3.
  119. ^ "Eclipse now runs on Wayland". 18 Ağustos 2014.
  120. ^ Stone, Daniel (16 February 2016). "Vulkan 1.0 specification released with day-one support for Wayland".
  121. ^ "Wayland Backend DRM | IVI Layer Management". GENIVI Alliance. Arşivlenen orijinal 1 Şubat 2014. Alındı 15 Temmuz 2013.
  122. ^ "Raspberry Pi Case Study". İşbirliği. Alındı 9 Ağustos 2013.
  123. ^ "Wayland preview". Ahududu Pi. Alındı 9 Ağustos 2013.
  124. ^ "The First Jolla Smartphone Runs With Wayland". LinuxG.net. 14 Temmuz 2013. Alındı 8 Ekim 2013.
  125. ^ VDVsx [@VDVsx] (13 July 2013). "#sailfishos main components diagram. #Qt5 #Wayland #JollaHQ #Akademy" (Tweet) - aracılığıyla Twitter.
  126. ^ Jolla [@JollaHQ] (13 July 2013). "@faenil @PeppeLaKappa @VDVsx our first Jolla will ship with wayland, yes" (Tweet) - aracılığıyla Twitter.
  127. ^ "IVI/IVI Setup". Tizen Wiki. Alındı 8 Nisan 2013.
  128. ^ VanCutsem, Geoffroy (10 July 2013). "[IVI] Tizen IVI 3.0-M1 released". IVI (Mail listesi).
  129. ^ Amadeo, Ron. "The Samsung Z4 is Tizen's new flagship smartphone". Ars Technica. Alındı 13 Mayıs 2017.
  130. ^ Høgsberg, Kristian (3 November 2008). "Premature publicity is better than no publicity". Alındı 6 Nisan 2016.
  131. ^ "Interview: Kristian Høgsberg". FOSDEM Archive. 29 Ocak 2012. Alındı 8 Mart 2016.
  132. ^ a b Hillesley, Richard (13 February 2012). "Wayland - Beyond X". H Açık. Heise Media İngiltere. Alındı 8 Mart 2016.
  133. ^ Høgsberg, Kristian. "Wayland – A New Display Server for Linux". Linux Plumbers Conference, 2009. Archived from orijinal 11 Ağustos 2017.
  134. ^ Jenkins, Evan (22 March 2011). "The Linux graphics stack from X to Wayland". Ars Technica. Alındı 17 Nisan 2016.
  135. ^ Larabel, Michael (29 October 2010). "Wayland Becomes A FreeDesktop.org Project". Phoronix.com. Alındı 17 Nisan 2016.
  136. ^ Høgsberg, Kristian (29 October 2010). "Moving to freedesktop.org". Alındı 31 Temmuz 2013.
  137. ^ Høgsberg, Kristian (3 December 2008). "Wayland is now under MIT license". wayland-display-server (Mail listesi).
  138. ^ Høgsberg, Kristian (22 November 2010). "Wayland license clarification". wayland-devel (Mail listesi).
  139. ^ Høgsberg, Kristian (19 September 2011). "License update". wayland-devel (Mail listesi).
  140. ^ Munk, Carsten (11 April 2013). "Wayland, glibc tabanlı sistemlerde Android GPU sürücülerini kullanıyor, Bölüm 1". Mer Projesi. Alındı 3 Temmuz 2013.
  141. ^ Munk, Carsten (8 June 2013). "Wayland utilizing Android GPU drivers on glibc based systems, Part 2". Mer Projesi. Alındı 3 Temmuz 2013.
  142. ^ Larabel, Michael (11 April 2013). "Jolla Brings Wayland Atop Android GPU Drivers". Phoronix.com. Alındı 17 Nisan 2016.
  143. ^ "Wayland". Wayland.freedesktop.org. Alındı 15 Temmuz 2013.
  144. ^ Høgsberg, Kristian (9 February 2012). "[ANNOUNCE] Wayland and Weston 0.85.0 released". wayland-devel mailing list.
  145. ^ Høgsberg, Kristian (24 July 2012). "Wayland and Weston 0.95.0 released". wayland-devel mailing list.
  146. ^ Høgsberg, Kristian (22 October 2012). "Wayland and Weston 1.0". wayland-devel mailing list.
  147. ^ Scherschel, Fabian (23 October 2012). "Wayland's 1.0 milestone fixes graphics protocol". H Açık. Heise Media İngiltere. Alındı 17 Nisan 2016.
  148. ^ Larabel, Michael (16 April 2013). "Wayland 1.1 Officially Released With Weston 1.1". Phoronix.com. Alındı 17 Nisan 2016.
  149. ^ Høgsberg, Kristian (15 April 2013). "1.1 Released". wayland-devel mailing list.
  150. ^ Larabel, Michael (13 July 2013). "Wayland 1.2.0 Released, Joined By Weston Compositor". Phoronix.com. Alındı 17 Nisan 2016.
  151. ^ Høgsberg, Kristian (12 July 2013). "Wayland and Weston 1.2.0 released". wayland-devel mailing list.
  152. ^ Høgsberg, Kristian (11 October 2013). "Wayland and Weston 1.3 releases are out". wayland-devel mailing list.
  153. ^ Paalanen, Pekka (19 September 2014). "Wayland and Weston 1.6.0 released". wayland-devel mailing list.
  154. ^ Harrington, Bryce (14 February 2015). "[ANNOUNCE] wayland 1.7.0". wayland-devel mailing list.
  155. ^ Harrington, Bryce (14 February 2015). "[ANNOUNCE] weston 1.7.0". wayland-devel mailing list.
  156. ^ Harrington, Bryce (2 June 2015). "[ANNOUNCE] wayland 1.8.0". wayland-devel mailing list.
  157. ^ Harrington, Bryce (2 June 2015). "[ANNOUNCE] weston 1.8.0". wayland-devel mailing list.
  158. ^ Harrington, Bryce (21 September 2015). "[ANNOUNCE] wayland 1.9.0". wayland-devel (Mail listesi).
  159. ^ Harrington, Bryce (21 September 2015). "[ANNOUNCE] weston 1.9.0". wayland-devel (Mail listesi).
  160. ^ Harrington, Bryce (17 February 2016). "[ANNOUNCE] wayland 1.10.0". wayland-devel (Mail listesi).
  161. ^ Harrington, Bryce (17 February 2016). "[ANNOUNCE] weston 1.10.0". wayland-devel (Mail listesi).
  162. ^ Nestor, Marius (18 February 2016). "Wayland 1.10 Display Server Officially Released, Wayland 1.11 Arrives in May 2016". Softpedia.
  163. ^ Larabel, Michael (16 February 2016). "Wayland 1.10 Officially Released". Phoronix.com. Alındı 17 Nisan 2016.
  164. ^ Harrington, Bryce (1 June 2016). "[ANNOUNCE] wayland 1.11.0". wayland-devel (Mail listesi). Alındı 1 Haziran 2016.
  165. ^ Harrington, Bryce (1 June 2016). "[ANNOUNCE] weston 1.11.0". wayland-devel (Mail listesi). Alındı 1 Haziran 2016.
  166. ^ Harrington, Bryce (21 September 2016). "[ANNOUNCE] wayland 1.12.0". wayland-devel (Mail listesi). Alındı 21 Eylül 2016.
  167. ^ Harrington, Bryce (21 September 2016). "[ANNOUNCE] weston 1.12.0". wayland-devel (Mail listesi). Alındı 21 Eylül 2016.
  168. ^ Harrington, Bryce (21 February 2017). "[ANNOUNCE] wayland 1.13.0". wayland-devel (Mail listesi). Alındı 30 Nisan 2017.
  169. ^ Harrington, Bryce (25 February 2017). "[ANNOUNCE] weston 2.0.0". wayland-devel (Mail listesi). Alındı 30 Nisan 2017.
  170. ^ Harrington, Bryce (8 August 2017). "[ANNOUNCE] wayland 1.14.0". wayland-devel (Mail listesi). Alındı 25 Mart 2018.
  171. ^ Harrington, Bryce (8 August 2017). "[ANNOUNCE] weston 3.0.0". wayland-devel (Mail listesi). Alındı 25 Mart 2018.
  172. ^ Foreman, Derek (9 April 2018). "[ANNOUNCE] wayland 1.15.0". wayland-devel (Mail listesi). Alındı 15 Nisan 2018.
  173. ^ Foreman, Derek (9 April 2018). "[ANNOUNCE] weston 4.0.0". wayland-devel (Mail listesi). Alındı 15 Nisan 2018.
  174. ^ Foreman, Derek (24 August 2018). "[ANNOUNCE] wayland 1.16.0". wayland-devel (Mail listesi). Alındı 30 Kasım 2018.
  175. ^ Foreman, Derek (24 August 2018). "[ANNOUNCE] weston 5.0.0". wayland-devel (Mail listesi). Alındı 30 Kasım 2018.
  176. ^ Foreman, Derek (28 March 2019). "[ANNOUNCE] wayland 1.17.0" (Mail listesi). Alındı 17 Haziran 2019.
  177. ^ Foreman, Derek (21 March 2019). "[ANNOUNCE] weston 6.0.0" (Mail listesi). Alındı 17 Haziran 2019.
  178. ^ Ser, Simon (23 August 2019). "[ANNOUNCE] weston 7.0.0" (Mail listesi). Alındı 22 Ekim 2019.
  179. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-January/041147.html
  180. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-September/041595.html

Dış bağlantılar