Gecko (yazılım) - Gecko (software)

Geko
Mozillagecko-logo.svg
Geliştirici (ler)Mozilla Vakfı, Mozilla Corporation, Adobe Sistemleri ve diğer katkıda bulunanlar
Kararlı sürüm
78.0 / Haziran 2020; 6 ay önce (Haziran 2020)
Depo Bunu Vikiveri'de düzenleyin
YazılmışC ++, JavaScript, Pas, paslanma
TürTarayıcı motoru
LisansMPL 2.0[1][2]
İnternet sitesigeliştirici.mozilla.org/ en-TR/ docs/ Geko

Geko bir tarayıcı motoru tarafından geliştirilmiş Mozilla. Kullanılır Firefox tarayıcı, Thunderbird e-posta istemcisi ve diğer birçok proje.

Gecko desteklemek için tasarlanmıştır açık İnternet standartları ve görüntülemek için farklı uygulamalar tarafından kullanılır internet sayfaları ve bazı durumlarda bir uygulamanın Kullanıcı arayüzü kendisi (oluşturarak XUL ). Gecko zengin bir programlama sunar API bu, onu İnternet özellikli uygulamalardaki çok çeşitli roller için uygun hale getirir, örneğin internet tarayıcıları, içerik sunumu ve müşteri sunucusu.[3]

Gecko şu şekilde yazılmıştır C ++ ve JavaScript,[4][5] ve 2016'dan beri ek olarak Pas, paslanma.[6][7] Bu ücretsiz ve açık kaynaklı yazılım şartlarına tabi Mozilla Kamu Lisansı versiyon 2.[8] Mozilla, kullanımını resmi olarak destekliyor Android,[4] Linux, Mac os işletim sistemi, ve pencereler.[9]

Tarih

Artık Gecko olarak bilinen düzen motorunun geliştirilmesi, Netscape 1997'de şirketin satın almasının ardından DigitalStyle. Mevcut Netscape oluşturma motoru, başlangıçta Netscape Navigator 1.0 ve yıllar içinde yükseltildi, yavaştı, W3C standartlarına uymadı, sınırlı destek aldı dinamik HTML ve artan yeniden akış gibi özelliklerden yoksun (düzen motoru, yeni veriler indirilip sayfaya eklendikçe ekrandaki öğeleri yeniden düzenlediğinde). Yeni düzen motoru, olgun ve kararlı olduğunda Netscape Communicator'a entegre etmek amacıyla eskisine paralel olarak geliştirildi. Netscape'in en az bir büyük revizyonunun, geçişten önce eski düzen motoruyla birlikte piyasaya sürülmesi bekleniyordu.

1998'in başlarında Mozilla projesinin lansmanından sonra, yeni düzen motoru kodu açık kaynaklı bir lisans altında yayınlandı. Başlangıçta şu şekilde açıklandı: Raptor, adın şu şekilde değiştirilmesi gerekiyordu NGLayout (yeni nesil yerleşim düzeni) nedeniyle marka sorunlar. Netscape daha sonra NGLayout'u şu şekilde yeniden markaladı: Geko. Süre Mozilla Organizasyonu (öncüsü Mozilla Vakfı ) başlangıçta NGLayout adını kullanmaya devam etti (Gecko bir Netscape ticari markasıydı),[10] sonunda Gecko markası galip geldi.

Ekim 1998'de Netscape, bir sonraki tarayıcısının eski düzen motoru yerine Gecko'yu (o zamanlar hala NGLayout olarak adlandırılıyordu) kullanacağını ve uygulamanın büyük bölümlerinin yeniden yazılmasını gerektirdiğini duyurdu. Bu karar, web standartları savunucuları arasında popüler olsa da, yeniden yazma için verilen altı aydan memnun olmayan Netscape geliştiricileri arasında büyük ölçüde popüler değildi.[11] Bu aynı zamanda işin çoğunun Netscape Communicator 5.0 (üzerindeki geliştirme dahil Denizci eski düzen motorundaki iyileştirmeler) terk edilmek zorunda kaldı. Gecko'yu içeren ilk Netscape sürümü olan Netscape 6, Kasım 2000'de piyasaya sürüldü (Netscape 5 adı hiçbir zaman kullanılmadı).

Gecko'nun gelişimi devam ederken, diğer uygulamalar ve yerleştiriciler bundan yararlanmaya başladı. Amerika Çevrimiçi, bu zamana kadar Netscape'in ana şirketi, sonunda onu CompuServe Mac OS X için 7.0 ve AOL (bu ürünlerde daha önce Internet Explorer yerleşikti). Ancak, birkaçı dışında betalar, Gecko asla esas olarak kullanılmadı Microsoft Windows AOL istemcisi.

15 Temmuz 2003'te, AOL kalan Gecko geliştiricilerini işten çıkardı ve Mozilla Vakfı (aynı gün kuruldu) Gecko geliştirmenin ana sorumlusu oldu. Günümüzde Gecko, Mozilla Corporation Mozilla projesine katkıda bulunan şirketlerin çalışanları ve gönüllüler.

Ekim 2016'da Mozilla, Kuantum, birkaç kişiyi kapsayan devam eden bir proje yazılım geliştirme "için yeni nesil web motorunu oluşturma çabaları Firefox kullanıcıların ". Deneysel sürümden alınan Gecko için çok sayıda iyileştirme içerir. Servo proje.[12][13] Kasım 2017'de ilk kez piyasaya çıkan "Firefox Quantum" olarak da bilinen Firefox 57, Quantum / Servo projelerinden ana bileşenlerin etkinleştirildiği ilk sürümdür. Bunlar, CSS ve GPU bileşenleri oluşturma. Ek bileşenler, gelecekteki sürümlerde kademeli olarak Servo'dan Gecko'ya birleştirilecektir.[12]

Eylül 2018'de Mozilla, Mozilla'nın Gecko'yu Android için yeniden kullanılabilir hale getiren bir yazılım kitaplığına dayanan yeni nesil mobil ürünlerinin temeli olan GeckoView'u duyurdu; "motorun kendisini kullanıcı arayüzünden ayırmak ve bunu kolaylaştırmak için yeni yazılım geliştirme çabalarını diğer uygulamalara katıştırın ". Aynı ay içinde gönderilen Firefox Focus 7.0,[14] Ortalama sayfa yüklemede daha yüksek performans sağlayan GeckoView'un ilk sürümüdür.[15][16] Firefox Reality de GeckoView ile oluşturuldu.[15] Haziran 2019'da Mozilla, GeckoView ile Android web tarayıcısı oluşturmaya odaklanan devam eden bir proje olarak Firefox Preview'u duyurdu.[17] Ağustos 2020'de ilk kez piyasaya sürülen "Firefox Daylight" olarak da bilinen Android 79 için Firefox, GeckoView motoru tarafından desteklenen ana bileşenlere sahip ilk kararlı sürümüdür.[18]

Standartlar desteği

En başından beri Gecko, açık İnternet standartlarını desteklemek üzere tasarlandı. Gecko'nun desteklediği standartlardan bazıları şunları içerir:

Gecko ayrıca kısmen destekler SVG 1.1.[21] SVG yazı tipi, renk profili, animasyon, görünüm ve imleç modülleri henüz uygulanmadı ve filtre ve metin modülleri yalnızca kısmen uygulandı. Genişletilebilirlik modülü de uygulanmıştır ancak şu anda devre dışıdır.

Desteklemek için internet sayfaları Netscape ve Internet Explorer'ın eski sürümleri için tasarlanmış olan Gecko, DOKTİP geçiş. Modern DOCTYPE'a sahip belgeler, standartlara uygunluk modunda oluşturulur ve W3C standartlar kesinlikle. DOCTYPE içermeyen veya daha eski bir DOCTYPE içermeyen belgeler Alay modu, bazı standart dışı tuhaflıklara öykünür Netscape Communicator 4.x; ancak, 4.x özelliklerinden bazıları (örneğin katmanlar ) desteklenmez.

Gecko ayrıca standart olmayan bazı Internet Explorer özellikleri için sınırlı desteğe sahiptir. seçim çerçevesi öğesi ve document.all özellik (sayfalar açıkça document.all desteklenmediği söylenecektir).[22]

Kullanım

Gecko öncelikle internet tarayıcıları en eski varlık Netscape 6 ve Mozilla Süit (daha sonra yeniden adlandırıldı Deniz maymunu ). Ayrıca diğer Mozilla web tarayıcısı türevlerinde de kullanılır. Firefox ve Mobil için Firefox ve uygulanması Internet Explorer -bir parçası olan klon Şarap.[23] Mozilla bunu ayrıca kendi Thunderbird e-posta istemcisi.

Gecko kullanan diğer web tarayıcıları şunları içerir: GNU IceCat,[24] Waterfox, K-Meleon, Lunascape, Taşınabilir Firefox, Conkeror, Classilla, TenFourFox.

Gecko kullanan diğer ürünler arasında Bülbül, Instantbird ve Google'ın resim düzenleme yazılımı Picasa (Linux için).[25]

Gecko ayrıca Şeker için OLPC XO-1 bilgisayar.[26] Gecko, tam bir uygulama olarak kullanılır. XUL (XML Kullanıcı Arayüz Dili). Gecko şu anda XUL spesifikasyonunu tanımlamaktadır.

Geçmiş kullanıcılar

Daha önce Gecko kullanılan ürünler arasında Soluk ay (şimdi kullanıyor Goanna ), Epifani (artık GNOME Web ve kullanarak WebKitGTK ), ve GNOME Geliştirme Yardımı (şimdi kullanıyor WebKitGTK.)

Gecko'nun kullanıldığı durdurulan ürünler şunlardır: Swiftfox, Sürü, Galeon, Camino, Minimo, Beonex Communicator, Kazehakase, Songbird, Sunbird (takvim), ve MicroB.

Tescilli bağımlılık

Windows ve diğer platformlarda Gecko tescilli derleyicilere bağlıdır.[27] Böylece, FOSS dağıtımları Linux Windows uyumluluk katmanında kullanılan Gecko paketini içeremez Şarap.[28]

Gecko 2.0'dan sonra, sürüm numarası Firefox 5 ile eşleşecek şekilde 5.0'a yükseltildi ve o andan itibaren hem Firefox hem de Thunderbird için ana sürüm numarasıyla senkronize tutuldu.[29] artık ayrı bir bileşen olmadığı gerçeğini yansıtmak için.[30]

Kabartmak

Netscape döneminde, zayıf teknik ve yönetim kararlarının bir kombinasyonu Gecko ile sonuçlandı yazılım bloat.[11][31][32] Böylece 2001'de elma çatallamayı seçti KHTML, Gecko değil, WebKit motor onun için Safari tarayıcı.[31][32] Ancak, 2008 yılına gelindiğinde Mozilla, bazı şişkinlik sorunlarını ele alarak Gecko için büyük performans iyileştirmeleri sağladı.[33]

Kuantum

Kuantum bir Mozilla birkaçını kapsayan proje yazılım geliştirme "için yeni nesil web motorunu oluşturma çabaları Firefox kullanıcıları ". Gecko'da büyük ölçüde deneysel süreçten dahil edilen çok sayıda iyileştirme içerir. Servo proje. Quantum ayrıca kullanıcı arayüzü ve etkileşimlerde iyileştirmeler içerir.[12][34]

Kasım 2017'de piyasaya sürülen Firefox 57, Servo bileşeninin etkinleştirildiği ilk sürümdür. Mozilla bunu ve birkaç planlanan gelecek sürümleri "Firefox Quantum" olarak adlandırır.[35][36]

Arka fon

2013'te Mozilla deneysel çalışmaya başladı Servo projesi iyileştirme hedefleri ile sıfırdan tasarlanmış bir motor olan eşzamanlılık ve paralellik aynı zamanda azaltırken bellek güvenliği güvenlik açıkları. Önemli bir faktör, Servo'nun Rust programlama dili, ayrıca Mozilla tarafından yaratılmıştır. derlenmiş derlenmiş C ++ kodundan daha iyi bellek güvenliği, eşzamanlılık ve paralellik ile kod.[5]

Nisan 2016 itibariyle, Servo'nun tam özellikli bir tarayıcı motoru haline gelmesi için en az birkaç yıllık bir geliştirme sürecine ihtiyacı vardı.[37] Böylece, Servo'nun kararlı bölümlerini Firefox'a getirmek için Quantum projesini başlatma kararı.

Bileşen

Quantum projesi birkaç alt projeden oluşmaktadır.[12]

  • CSS: Servo paralel stil sayfası entegre sistem Geko. Karşılaştırmalar, performansın sayısıyla doğrusal olarak ölçeklendiğini göstermektedir. İşlemci çekirdekler.[38] Bu, Firefox 57'de yayınlandı.[36]
  • Oluştur: Servo işleme Gecko'ya entegre WebRender adı verilen mimari. WebRender, Acil mod ile çizim modeli korunan mod tarafından daha kolay hızlandırılan model GPU CSS / DOM'un bir sahne grafiği. Testte en kötü senaryo oluşturma saniyede 60 kareyi aşıyor.[39] Mozilla, Firefox 67'de belirli donanım / işletim sistemi kombinasyonları için yeni oluşturucuyu etkinleştirmeye başladı.[40]
  • Dizgici: Geko var dizgici tarayıcı sekmelerini grafik sürücüsüyle ilgili çökmelerden ayırarak kendi sürecine geçti. Oluşturucu çökmeleri tarayıcı içerik sürecini durdurmayacağından, birleştirme işlemi kullanıcı verilerini kaybetmeden şeffaf bir şekilde yeniden başlatılabilir. Bu, Firefox 53'te yayınlandı.[41]
  • DOM: Servo'nun Constellation mimarisinden gevşek bir şekilde esinlenmiştir[42] ve Opera 's Presto motor,[43] Quantum DOM, DOM işlem sayısını ve dolayısıyla bellek kullanımını artırmadan yanıt verebilirliği artırmak. Bunun çekirdeği Firefox 57'de gönderildi.[44]
  • Akış: Gecko bileşenlerinde çalışan bir ekip tarafından yönlendirilen, kullanıcı tarafından görülebilen performans iyileştirmeleri için bir şemsiye. Büyük çapta gerçek kullanıcı performansı iyileştirmelerine odaklandı ağ uygulamaları, öncelikle G Suite ve Facebook.[45] Bu çalışma tamamlandı ve Firefox 57 için gönderildi.[46]
  • Foton: Bir UI kullanıcı arayüzü performansını iyileştirmeye güçlü bir şekilde odaklanarak tüm uygulamanın yenilenmesi. Quantum Flow'a kardeş proje olarak muamele edildi.[47] Bu, Firefox 57'de yayınlandı.[35]
  • : Performansını artırın Necko, Gecko'nun ağ katmanı, daha fazla ağ etkinliğini ana iş parçacığından uzaklaştırarak, ağ akışlarının içeriğe bağlı olarak önceliklendirilmesi ve ağ ile önbellek katmanını yarışarak.[48] Bu özellik Firefox 59'da yayınlandı.[49]

Azure

Mozilla Azure proje, durum bilgisi olmayan düşük seviyeli bir grafik soyutlama API'sidir. Firefox.[50] Projenin daha doğru Direct2D uyumluluğu, optimize edilmiş durum birlikte çalışabilirliği ve performans özellikleri ve hatalar üzerinde gelişmiş kontrol gibi çeşitli hedefleri vardır. Azure, 3B grafik arka uçlarına ek olarak 2B donanım hızlandırması sağlayacaktır. Firefox yerine Azure kullanmaya başladı Kahire 2012 yılında.[51][52] Yazılmıştır C ++ ve kullanan Servo.[53] Azure adı, eski Netscape kurucusuna bir övgüdür James H. Clark ve SGI'daki önceki çalışmaları. Jim Clark icat etti Geometri Motoru -de Stanford Üniversitesi 1979'da ilk GPU idi. Silikon Grafikler aynı zamanda orijinal mucitlerdi OpenGL.[54]

Referanslar

  1. ^ "Mozilla Foundation Son Kullanıcı Lisanslama Sözleşmeleri". Mozilla.
  2. ^ "Mozilla Lisanslama Politikaları". mozilla.org. Alındı 2013-03-26.
  3. ^ "Mozilla Yerleştirme". Mozilla.org. 2012-10-25. Alındı 2012-10-31.
  4. ^ a b "Android için basit Firefox". Gecko, C ++ ve JavaScript kullanılarak uygulanır.
  5. ^ a b Bergstrom, Lars; et al. (Mayıs 2016). "Rust kullanarak Servo Web Tarayıcı Motorunu Tasarlamak" (PDF). Uluslararası Yazılım Mühendisliği Konferansı Bildirileri.
  6. ^ "Google Toplulukları". groups.google.com.
  7. ^ Yegulalp, Serdar (3 Şubat 2017). "Mozilla, Firefox'un kaderini Rust diline bağlıyor". InfoWorld.
  8. ^ "MPL 2 Yükseltmesi". Alındı 2012-08-18.
  9. ^ "Gecko SSS". MDN Web Belgeleri.
  10. ^ "nglayout projesi: kimlik krizi". Mozilla.org. Arşivlenen orijinal 2011-06-29 tarihinde. Alındı 2012-10-31.
  11. ^ a b Jorge O. Castro (2004-06-15). "Ars Technica, Mozilla.org'dan Scott Collins ile oturuyor". Ars Technica. Alındı 2017-02-16.
  12. ^ a b c d "Kuantum". Mozilla Wiki. Alındı 2017-04-20.
  13. ^ Cimpanu, Catalin. "Mozilla, Firefox için Yeni Bir Tarayıcı Motoru olan Quantum'u Duyurdu". Softpedia. Alındı 2016-11-07.
  14. ^ "Firefox Focus 7.0 beta programına giriyor, GeckoView'a (Gecko Motoru) Geçiyor".
  15. ^ a b "GeckoView ile Firefox Focus". Mozilla Hack'leri. Eylül 13, 2018. Alındı 4 Eylül 2019.
  16. ^ "Android için Firefox Focus'taki yenilikler (sürüm 7) | Firefox Focus Yardımı". support.mozilla.org. Alındı 4 Eylül 2019.
  17. ^ "2019'da GeckoView". Mozilla Hack'leri. 27 Haziran 2019. Alındı 4 Eylül 2019.
  18. ^ Vesta Zare (25 Ağustos 2020). "Tüm platformlarda tasarımı gereği hızlı, kişiselleştirilmiş ve özel: Android için yeni bir Firefox deneyimi sunuyoruz". Mozilla Blogu. Alındı 22 Eylül 2020.
  19. ^ "Mozilla CSS destek tablosu". Developer.mozilla.org. 2012-08-04. Arşivlenen orijinal 2014-04-05 tarihinde. Alındı 2012-10-31.
  20. ^ "Mozilla'da ECMAScript 5 desteği". Developer.mozilla.org. 2013-11-14. Alındı 2013-12-02.
  21. ^ "Mozilla SVG Durumu". Mozilla.org. 2012-08-25. Alındı 2012-10-31.
  22. ^ "Mozilla, Yeni Novell Linux Dağıtımının Parçası Olan Algılanamayan document.all Desteği Ekliyor mu?". Developer.mozilla.org. 2004-07-23. Alındı 2018-02-07.
  23. ^ "IE Şarap Altında Gecko Kullanıyor". Şarap Wiki. Alındı 2009-09-14.
  24. ^ sdubois (24 Haziran 2010). "Geko". Özgür Yazılım Vakfı. Alındı 23 Mayıs 2019.
  25. ^ "Linux için Picasa 3.0". Arşivlenen orijinal 2009-01-07 tarihinde. Alındı 2008-12-28.
  26. ^ Martens, Çin (2007-01-03). "Her Çocuğa Bir Dizüstü Bilgisayar 'Şeker' arayüzünü hazırlıyor". IDG Haber Servisi. Arşivlenen orijinal 2008-01-18 tarihinde. Alındı 2007-12-28.
  27. ^ "Windows için Firefox Oluşturma". MDN Web Belgeleri.
  28. ^ http://wiki.jswindle.com/index.php/Fedora#Working_Wine Arşivlendi 11 Haziran 2012, Wayback Makinesi
  29. ^ "Gecko sürümleri ve uygulama sürümleri". MDN. Alındı 2013-11-18.
  30. ^ "Yeni Thunderbird 5'te pek bir şey yok ama yol haritası umut verici görünüyor". Ars Technica. Alındı 2018-02-07.
  31. ^ a b Paul Festa (2003-01-14). "Apple, Mozilla'yı ısırıyor". CNET Ağları. Arşivlenen orijinal 2012-10-25 tarihinde. Alındı 2017-02-16.
  32. ^ a b David Baron (2003-01-09). "2003-01-09 Perşembe". David Baron'un web günlüğü. kendi kendine yayınlandı. Arşivlenen orijinal 2009-07-28 tarihinde. Alındı 2017-02-16.
  33. ^ Ryan Paul (2008-09-09). "WebKit popülaritesi arttıkça Mozilla neden Gecko'ya bağlı?". Alındı 2017-02-16.
  34. ^ Cimpanu, Catalin. "Mozilla, Firefox için Yeni Bir Tarayıcı Motoru olan Quantum'u Duyurdu". Softpedia. Alındı 2017-02-17.
  35. ^ a b "Firefox 57.0, Tüm Yeni Özellikleri, Güncellemeleri ve Düzeltmeleri Görün". Mozilla. Alındı 2018-10-30.
  36. ^ a b "Yeni Firefox Tanıtımı: Firefox Quantum - Mozilla Blogu". Mozilla Blogu. Alındı 2018-10-30.
  37. ^ "Servo kalan iş". GitHub. Alındı 2017-02-17.
  38. ^ "Değişiklik Günlüğü". Değişiklik Günlüğü. Alındı 2017-03-28.
  39. ^ "Bay Area Rust Buluşması Şubat 2016". Air Mozilla. Alındı 2017-03-28.
  40. ^ "Webrender Nerede". Mozilla Wiki. Alındı 2020-07-14.
  41. ^ "Project Quantum'un ilk büyük baytları ile Firefox daha hızlı ve daha kararlı, kompakt temalar ve yeniden tasarım izinleriyle daha basit". Mozilla Blogu. Alındı 2017-04-27.
  42. ^ "Servo Mimarisi". Youtube. Alındı 2017-03-28.
  43. ^ "Mozilla'nın Kuantum Projesi". Bill McCloskey'in Blogu. 2016-10-27. Alındı 2017-03-28.
  44. ^ "Kuantum Çağına Girmek". Mozilla Hack'leri. 2017-11-13. Alındı 2020-07-14.
  45. ^ "Kuantum Akışı". Mozilla Wiki. Alındı 2017-03-28.
  46. ^ "Kuantum Akış Mühendisliği Bülteni # 25". ehsanakhgari.org. 2017-09-17. Alındı 2020-07-14.
  47. ^ dolske (2017-05-18). "Photon Engineering Newsletter # 1". Dolske'nin blogu. Alındı 2017-07-04.
  48. ^ "TPE Necko / Projeler - MozillaWiki". wiki.mozilla.org. Alındı 2017-07-04.
  49. ^ "Firefox 59 Sürüm Notları". www.mozilla.org. Alındı 2019-01-16.
  50. ^ "Platform / GFX / Moz2D - MozillaWiki".
  51. ^ Parfeni, Lucian. "Firefox Artık Tüm Platformlarda Canvas için Azure Graphics API Kullanıyor".
  52. ^ "Azure, Kahire'yi Mozilla Firefox'ta Değiştiriyor - Phoronix".
  53. ^ Willis, Nathan (17 Haziran 2015). "Mozilla Servo ile paralel sayfa oluşturma". LWN.net. Alındı 27 Haziran 2015.
  54. ^ "Azure projesine giriş - JOEDREW!". Arşivlenen orijinal 2016-09-08 tarihinde. Alındı 2019-09-22.

Dış bağlantılar