İlgili projelerin tavsiyelerine göre bilginizi geliştirerek ( nasıl ? ) paylaşabilirsiniz .
Bu makalenin bilgisayarlarla ilgili içeriği kontrol edilmelidir (eylül 2016).Geliştirin veya kontrol edilecek şeyleri tartışın . Banner'ı yeni yapıştırdıysanız, lütfen kontrol edilecek noktaları burada belirtin .
Mir
yaratıcı | Canonical Ltd. |
---|---|
tarafından geliştirildi | Canonical Ltd. |
İlk versiyon | Şubat 2013 |
Son sürüm | 0.18.0 (22 Aralık 2015) |
Gelişmiş sürüm | 0.19.0 |
Depozito | github.com/MirServer/mir |
Yazılmış | C++ |
İşletim sistemi | Linux |
Çevre | Linux |
Tür | Pencereleme sistemi |
Lisans | GNU / GPL v3 (sunucu), GNU / LGPLv3 (istemci) |
İnternet sitesi | wiki.ubuntu.com/Mir union.ubuntu.com/Mir launchpad.net/mir |
Mir , Canonical Ltd. tarafından geliştirilen GNU / Linux için bir görüntüleme sunucusudur . Ubuntu dağıtımı için mevcut X Pencere Sistemini (veya X11'i) değiştirmek için oluşturuldu .
İçinde kasım 2010, Mark Shuttleworth blogunda Unity'nin geleceğinin Wayland ekran (ve protokol) sunucusuna dayanacağını ve bunun prensip olarak Ubuntu'nun mobil sürümlerinde de kullanılacağını yazdı . Ardından 2 yıl boyunca, Kanonik niyetini entegre etmek hatırlattı Wayland grafik yönleriyle kontrol etme ama somutlaştırma olmadan.
21 Şubat 2013Canonical , mobil ve dokunmatik cihazlar için tasarlanan Ubuntu sürümü olan Ubuntu Touch projesini duyurdu . Ubuntu Touch'ın ilk sürümü , Android'in görüntüleme sunucusu olan SurfaceFlinger'ı kullanır . Bu , Canonical tarafından duyurulan Mir adlı yeni bir projeyle sonuçlanır .4 Mart 2013 beri iç gelişiminin ardından Haziran 2012. Bu proje hem SurfaceFlinger'a yerini alacak Ubuntu Dokunma ve X masaüstü sürümünde Ubuntu . Mir, Unity kullanıcı arabiriminin (veya kabuğun ) yeni nesli olan Unity 8'in geliştirilmesini sağlamak için geliştirildi .
Mir'in gelişiminin halka açık aşamaları:
5 Nisan 2017, Mark Shuttleworth, Mir kullanıcı arabiriminin geliştirilmesinin durdurulduğunu duyurdu. Bununla birlikte, Canonical, bulut ve Nesnelerin İnterneti (IoT) faaliyetlerine yeniden odaklanarak Mir'in geliştirilmesinden vazgeçilmemiştir .
Genel olarak geliştiriciler, sistemi oluştururken aşağıdaki özellikleri göz önünde bulundururlar:
Sistem, gereksinimlere ve kullanım durumlarına göre geliştirilmiştir. Geliştiriciler, bu işlevselliklere gerçek bir ihtiyaç duymadan zamanla gelişen sistemle gereksiz işlevselliklerden kaçınmak isterler .
Sistem, CPU döngüleri, GPU döngüleri, bellek ve güç tüketimine vurgu yaparak tüm gereksinimleri mümkün olduğunca verimli bir şekilde karşılamalıdır. Geliştiriciler, sistemin bu özelliğe uygun olmasını sağlayacak bir dizi kriter oluşturmak istiyor.
Sistem mümkün olduğunca test edilmelidir. Geliştiriciler, yüksek kalite ve işlevsel bir sistem sağlamak için 3 ayrıntılı test seviyesini (birim testi, entegrasyon testi ve kabul testi) dikkate alır. Ayrıca, herhangi bir geliştirme yalnızca iyi tanımlanmış bir kabul testi mevcut olduğunda başlamalıdır. Test edilemeyen herhangi bir işlevsellik, yüksek bir kalite seviyesi ile uygulanamaz .
Sistem, farklı platformlara ve farklı kullanım durumlarına kolayca uyarlanabilir ve taşınabilir olmalıdır (daha önce belirtildiği gibi, iyi tanımlanmış işlevler durumunda). Sistem düzeyinde bir oluşturucu gibi yalnızca sınırlı işlevsellik sergileyen bir mobil cihaz üzerinde çalışan sistem, özel bir durum değil, sistem tarafından kolayca yerine getirilen bir gereksinim olmalıdır.
Geliştiriciler, istemci uygulamalarına her türlü ayrıcalıklı protokolü göstermekten kaçınmak ister. Özellikle, (kötü amaçlı) istemci uygulamalarının giriş olay akışını yanıltmasını veya ilk önce en az bir kimlik doğrulama/yetkilendirme adımı olmadan ekran içeriğini yakalamasını önlemek isterler. Bu amaçla, ayrıcalıklı olmayan işlemler kümesi sınırlıdır.
Mir'in istemci kitaplığı, mevcut araç takımlarıyla kolayca entegre edilebilir olmalıdır . İtimat Uygulama yazarları Qt / QML, GTK + 3, XUL , SDL , vb Mir geliştiricileri en önemli araç takımları için Mir entegrasyonu sağlamaya çalışırken ek taşıma işlemini gerçekleştirmesi gerekmemelidir . Ancak, bazı eski uygulamalar X'ten Mir'e tam olarak geçiş yapamayacak , bu nedenle "root edilmiş" bir X sunucusu oturumu Mir'e entegre edilecek. Bu, isteğe bağlı olarak , oturum düzeyinde eski X uygulamaları ile Unity / Mir örneği arasında bir uyumluluk katmanı görevi görür .
Mir ve Wayland çok farklı. Kuşkusuz, Wayland en son gibi Mir gösteri kullanımları Linux çekirdeği bu teknolojilerin olarak DRM , KMS ve GEM sırayla, bir minimal ışık ve etkin ekran sunucu vermeyi amaçlamaktadır. Wayland sadece bir protokol iken Mir aynı zamanda protokol, besteci ve kabuktur . Ancak, Mir geliştiricileri göre, Mir taklit olabilir Wayland ile Wayland kütüphanesinde Mir içinde (libwayland-istemci ve libwayland-sunucu).
Besteci, tüm uygulamalardan ve kabuk yüzeylerinden (pencereler) oluşan "final sahnesini" ekranda veya ekranlarda sunmak için kullanılır . İstenilen görsel efektleri (örn. alt gölgeler) tek tek yüzeylere uygulayan bir oluşturucu içerir. Oluşturucu , görüntüde yırtılma (İngilizce yırtılma ) ve atık döngülerinden kaçınmak için vblank (dikey senkronizasyon) ile senkronize edilir .
Sistem, isteğe bağlı giriş cihazlarından (klavye ve fare gibi) okuma ölçümlerini (koordinatlar, tuşlar, hızlanma değerleri), olay akışının ön işlemesini, sunucu tarafı filtre zincirine sunumu (örneğin, hareket tanımayı desteklemek için) desteklemelidir. veya kabuk düzeyinde klavye etkileşimi ) ve son olarak bunları istemci uygulamalarına teslim edin. Geliştiriciler istediğiniz giriş yığını için üzerinde durularak, keyfi giriş aygıtlarını okuma desteklemek için sunucu tarafında olmak evdev alt sistem içinde Linux çekirdeği .
Giriş pili, düşük güç tüketimini amaçlar. Daha da önemlisi, olayları istemci uygulamalarına iletmek için kullanılan bant genişliğini vblank ile eşleşmesi ve gelecekteki hareket olaylarını tahmin etme yoluyla örnekleme kaybını hesaba katması gerekir .
Mir geliştiricileri , verimliliği, net tasarımı ve esnekliği nedeniyle Android'e entegre olanı seçti .
Sistem, konektör tipini varsaymadan bağlı fiziksel görüntüleme cihazlarını kontrol etmelidir. Aynı zamanda, kabuk bileşenlerinin fiziksel görüntüleme cihazlarındaki değişikliklere tepki vermesine, diğer şeylerin yanı sıra çoklu ekranı ve bir veya daha fazlasının dönüşlerini yönetmeye ve tüm biçim faktörlerine (terminaller arasında yönetim yakınsaması) uyum sağlamasına izin vermelidir .
Aynı sistemde farklı özelliklere sahip birkaç GPU desteği, ideal olarak aynı harici Linux'un grafik kartlarıyla donatılmış makinelerde (örneğin SSD'den USB'ye) önyüklenmesine izin verecek olan özelliklerin bir parçasıdır. bagajda kullanılanlar ve uygun pilotları anında yükler.
Oyunlara veya yoğun 3D uygulamalara güç sağlayan özel bir grafik kartına sahip birkaç üst düzey dizüstü bilgisayar, ofis etkinlikleri için daha enerji verimli yerleşik grafik çözümüne de sahiptir (bkz. Optimus ). Bu nedenle, 2 GPU arasında kolayca geçiş yapabilmek ve uygulamaları ve ilgili EGL bağlamlarını bir GPU'dan diğerine taşıyabilmek gerekir.
Bu görüntüleme sunucusunda başvurular “birinci sınıf vatandaş” olarak kabul edilmelidir . Bir uygulama adlandırılır ve rastgele sayıda yüzeyden oluşur. Kabuk bileşenleri , kullanımdaki uygulama kümesine erişebilir ve kabuğu sağlamak için koleksiyonun üzerinde çalışabilir . (örneğin Alt-Tab işlevi)
Kabuk, veya sistem düzeyinde kullanıcı arabirimi, bir olacaktır "birinci sınıf vatandaş" en azından arka iletişim kurmak için kullanılan iyi tanımlanmış açısından, görüntü sunucu ve ileri arasındaki kabuk ve diğerleri. Görüntü sunucu bileşenler.
Çalışan uygulamalar arasındaki veri alışverişi X ile çok sınırlıdır . Şu anda " kopyala ve yapıştır " ve " sürükle ve bırak " işlemleri için temel destek var , ancak deneyim çok sınırlı ve çok işlevsel değil. Bu nedenle, Mir geliştiricileri, görüntüleme sunucusunun, veri alışverişini başlatırken ve uygularken sorunsuz bir kullanıcı deneyimi ile, uygulamalar için rastgele veri alışverişi yapmak için gelişmiş bir yöntem sağlamasını istiyor. gerçek.
İçinde Mart 2013, Mir, Canonical Ltd. tarafından seçildi. Ubuntu dağıtımındaki X teknolojisini değiştirmek için . Daha önce 2010 yılında Wayland'ın kullanılacağı açıklanmıştı. Bu nedenle, benzer projelerde (özellikle Wayland) yer alan veya bu karardan etkilenen kişiler arasında buna karşı çıkmak veya yanlış anlamaları gidermek için yazılı görüş alışverişleri yapıldı.
İçinde Eylül 2013, Intel, XMir'i desteklememeye ve bu projeyle ilgili kod parçalarını resmi grafik sürücülerinden kaldırmaya karar verdi: Intel yönetim ekibi, Canonical tarafından yapılan seçimi desteklememeye veya onaylamamaya ( ( fr ) göz yummaya) karar verdi .