Gecko (software)
Entwickler (en) | Mozilla Foundation, Mozilla Corporation, Adobe Systemsund andere Mitwirkende |
---|---|
Stabile Version | 78.0 / Juni 2020 |
Repository | |
Geschrieben in | C ++, JavaScript, Rost |
Typ | Browsermotor |
Lizenz | MPL 2.0[1][2] |
Webseite | Entwickler |
Gecko ist ein Browsermotor entwickelt von Mozilla. Es wird in der verwendet Feuerfuchs Browser, der Thunderbird E -Mail -Clientund viele andere Projekte.
Gecko soll unterstützen offen Internetstandardsund wird von verschiedenen Anwendungen zur Anzeige verwendet Webseiten und in einigen Fällen die Anwendung Benutzeroberfläche sich selbst (durch Rendern Xul). Gecko bietet eine reichhaltige Programmierung API Das macht es für eine Vielzahl von Rollen in internetfähigen Anwendungen geeignet, wie z. Internetbrowser, Inhaltspräsentation und Kundenserver.[3]
Gecko ist geschrieben in C ++ und JavaScript,[4][5] und seit 2016 zusätzlich in Rost.[6][7] es ist Kostenlose und Open-Source-Software Vorbehaltlich der Bedingungen der Mozilla Public Lizenz Version 2.[8] Mozilla unterstützt seine Verwendung offiziell an Android,[4] Linux, Mac OS, und Fenster.[9]
Geschichte
Entwicklung des Layout -Engine, der jetzt als Gecko bekannt ist, begann bei Netscape Im Jahr 1997 nach dem Kauf des Unternehmens von durch das Unternehmen Digitalstyle. Die vorhandene Netscape -Rendering -Engine, die ursprünglich geschrieben wurde für Netscape Navigator 1.0 und im Laufe der Jahre verbessert, war langsam, entsprach nicht gut zu W3C -Standards, hatte eine begrenzte Unterstützung für Dynamisches HTML und fehlten Funktionen wie inkrementeller Reflow (wenn die Layout -Engine Elemente auf dem Bildschirm neu ordnet, wenn neue Daten heruntergeladen und zur Seite hinzugefügt werden). Die neue Layout -Engine wurde parallel zum Alten entwickelt, mit der Absicht, sie in Netscape Communicator zu integrieren, wenn er reif und stabil war. Es wurde erwartet, dass mindestens eine weitere wichtige Überarbeitung von Netscape mit der alten Layout -Engine vor dem Schalter freigesetzt wird.
Nach dem Start des Mozilla-Projekts Anfang 1998 wurde der neue Layout-Engine-Code unter einer Open-Source-Lizenz veröffentlicht. Ursprünglich enthüllt wie Raubvogel, der Name musste geändert werden NGlayout (Layout der nächsten Generation) aufgrund Warenzeichen Probleme. Netscape wurde später NGlayout als umbenannt Gecko. Während Mozilla Organisation (Der Vorläufer der Mozilla Foundation) wurde zunächst weiterhin den Namen nGlayout verwendet (Gecko war eine Netscape -Marke).[10] Schließlich gewann das Gecko -Branding.
Im Oktober 1998 kündigte Netscape an, dass sein nächster Browser Gecko (das zu diesem Zeitpunkt immer noch NGlayout genannt wurde) und nicht die alte Layout -Engine verwenden würde, wobei große Teile der Anwendung umgeschrieben werden mussten. Während diese Entscheidung bei Webstandards für Befürworter beliebt war, war sie bei Netscape -Entwicklern weitgehend unpopulär, die mit den sechs Monaten für das Umschreiben unzufrieden waren.[11] Es bedeutete auch, dass die meisten Arbeiten für die geleistete Arbeit geleistet wurden Netscape Communicator 5.0 (einschließlich der Entwicklung auf der Seemann Verbesserungen des alten Layoutmotors) mussten aufgegeben werden. Netscape 6, die erste Netscape -Veröffentlichung für Gecko, wurde im November 2000 veröffentlicht (der Name Netscape 5 wurde nie verwendet).
Als die Entwicklung von Gecko weiterging, nutzten andere Anwendungen und Einbetten davon. Amerika onlinezu diesem Zeitpunkt übernahm die Muttergesellschaft von Netscape schließlich für die Verwendung in CompuServe 7.0 und AOL für Mac OS X (diese Produkte hatten zuvor Internet Explorer eingebettet). Mit Ausnahme einiger weniger Betas, Gecko wurde nie im Haupt verwendet Microsoft Windows AOL -Kunde.
Am 15. Juli 2003 entließ AOL die verbleibenden Gecko -Entwickler und die Mozilla Foundation (am selben Tag gegründet) wurde zum Hauptverantwortlichen der Entwicklung von Gecko. Heute wird Gecko von Mitarbeitern der entwickelt Mozilla Corporation, Mitarbeiter von Unternehmen, die zum Mozilla -Projekt beitragen, und Freiwillige.
Im Oktober 2016 kündigte Mozilla an Quanten, ein laufendes Projekt, das mehrere umfasst Software-Entwicklung Bemühungen, "die Webmaschine der nächsten Generation aufzubauen, für Feuerfuchs Benutzer ". Es enthält zahlreiche Verbesserungen an Gecko, die aus dem experimentellen Abstand entnommen wurden Servo Projekt.[12][13] Firefox 57, auch als "Firefox Quantum" bekannt, der im November 2017 erster Versand ist, ist die erste Version mit wichtigen Komponenten der Quantum/Servo -Projekte aktiviert. Dazu gehören eine erhöhte Leistung in der CSS und GPU Rendern von Komponenten. Zusätzliche Komponenten werden in zukünftigen Versionen schrittweise von Servo zu Gecko verschmolzen.[12]
Im September 2018 kündigte Mozilla Geckoview an, die Grundlage der nächsten Generation von mobilen Produkten von Mozilla, die auf einer Softwarebibliothek basiert, die Gecko für Android wiederverwendbar macht und neuere Softwareentwicklungsbemühungen umfasst, um die Engine selbst von seiner Benutzeroberfläche zu entkoppeln, und es einfach zu machen. in andere Anwendungen einbetten ". Firefox Focus 7.0, versandt im selben Monat,[14] ist die anfängliche Version, die Geckoview eingeführt hat, mit einer erhöhten Leistung beim Laden der Median -Seite.[15][16] Firefox Reality wurde auch mit Geckoview gebaut.[15] Im Juni 2019 kündigte Mozilla Firefox Preview als laufendes Projekt an, das sich auf den Aufbau eines Android -Webbrowsers mit Geckoview konzentriert.[17] Firefox für Android 79, auch als "Firefox Daylight" bekannt, ist die erste stabile Veröffentlichung mit den wichtigsten Komponenten, die von Geckoview Engine angetrieben werden.[18]
Standards unterstützt
Von Anfang an sollte Gecko offene Internetstandards unterstützen. Einige der Standards der Gecko -Unterstützung umfassen:
- CSS Stufe 2.1 (teilweise Unterstützung für CSS 3)[19]
- Dom Stufe 1 und 2 (teilweise Unterstützung für DOM 3)
- Html4 (teilweise Unterstützung für HTML5-sehen Vergleich von Layout -Motoren (HTML5))
- JavaScript 1.8.5 (voll ECMaskript 5.1 Unterstützung),[20] Implementiert in Spinnenaffe
- Mathml
- RDF
- XForms (über eine offizielle Erweiterung)
- Xhtml 1.0
- Xml 1.0
- Xslt und XPath, implementiert in Transformiix
Gecko unterstützt auch teilweise SVG 1.1.[21] Die SVG -Schriftart-, Farbprofil-, Animations-, Ansichts- und Cursormodule müssen noch implementiert werden und die Filter- und Textmodule werden nur teilweise implementiert. Das Erweiterbarkeitsmodul ist ebenfalls implementiert, derzeit jedoch deaktiviert.
Um zu unterstützen Webseiten Gecko unterstützt für Legacy -Versionen von Netscape und Internet Explorer. DocType Umschalten. Dokumente mit einem modernen docType werden im Standard -Compliance -Modus der Standards gerendert, was dem folgt, der dem folgt W3c Standards streng. Dokumente, die weder docType noch einen älteren DocType haben Mackenmodus, was einige der nicht standardmäßigen Kuriositäten von emuliert Netscape Communicator 4.x; Einige der 4.x -Funktionen (wie z. Schichten) werden nicht unterstützt.
Gecko hat auch nur einige nicht standardmäßige Internet Explorer-Funktionen, wie die Festzeltelement und die document.all
Eigenschaft (obwohl Seiten ausdrücklich auf getestet werden document.all
wird gesagt, es wird nicht unterstützt).[22]
Verwendungszweck
Gecko wird in erster Linie in verwendet Internetbrowser, das früheste Wesen Netscape 6 und Mozilla Suite (später umbenannt Seeaffe). Es wird auch in anderen Mozilla -Webbrowser -Derivaten verwendet, wie z. Feuerfuchs und Firefox für Mobilgeräte und die Umsetzung der Internet Explorer-Kklems, der Teil von ist Wein.[23] Mozilla verwendet es auch in ihren Thunderbird-E-Mail-Client.
Andere Webbrowser verwenden Gecko Gnu icecat,[24] Waterfox, K-Meleon, Lunascape, Tragbares Firefox, Conkeror, CLASSILLA, Tenfourfox.
Gecko wird auch von verwendet von Zucker für die OLPC XO-1 Computer.[25] Gecko wird als vollständige Implementierung der verwendet Xul (Xml Benutzeroberfläche Sprache). Gecko definiert derzeit die XUL -Spezifikation.
Frühere Benutzer
Zu den Produkten, die früher Gecko verwendeten Blasser Mond (Jetzt verwenden Goanna), Offenbarung (jetzt bekannt als Gnome Web und verwenden Webkitgtk), und Gnome DevHelp (Jetzt verwenden Webkitgtk.))
Eingebrachte Produkte, die Gecko verwendeten Swiftfox, Herde, Galleon, Camino, Minimo, Beonex Communicator, Kazehakase, Singvogel, Sunbird (Kalender), Mikrob, Nachtigall, Instantbird, und Picasa Für Linux.[26]
Proprietäre Abhängigkeit
Unter Windows und anderen Plattformen ist Gecko von proprietären Compilern abhängig.[27] Daher, Foss Verteilungen von Linux Kann das Gecko -Paket nicht in der Windows -Kompatibilitätsebene einbeziehen Wein.[28]
Nach Gecko 2.0 wurde die Versionsnummer auf 5,0 gestoßen, um Firefox 5 zu entsprechen, und von da an wurde mit der Hauptversionsnummer sowohl für Firefox als auch für Thunderbird synchronisiert.[29] um die Tatsache widerzuspiegeln, dass es sich nicht mehr um eine separate Komponente handelt.[30]
Aufblähen
In der Netscape -Ära führte eine Kombination aus schlechten technischen und Managemententscheidungen zu Gecko Software aufblähen.[11][31][32] So im Jahr 2001 Apfel entschieden sich für die Gabel Khtml, nicht Gecko, um das zu erschaffen Webkit Motor für seine Safari Browser.[31][32] Bis 2008 hatte Mozilla jedoch einige der Aufbläherprobleme angesprochen, was zu großen Leistungsverbesserungen für Gecko führte.[33]
Quanten
Quanten ist ein Mozilla Projekt umfasst mehrere Software-Entwicklung Bemühungen, "die Webmaschine der nächsten Generation aufzubauen, für Feuerfuchs Benutzer ". Es enthält zahlreiche Verbesserungen an Gecko, die größtenteils aus dem experimentellen Bereich enthält Servo Projekt. Quantum beinhaltet auch Verfeinerungen der Benutzeroberfläche und der Interaktionen.[12][13]
Firefox 57, veröffentlicht im November 2017, ist die erste Version mit einer aktivierten Servokomponente. Mozilla bezeichnet dies und mehrere geplante zukünftige Veröffentlichungen "Firefox Quantum".[34][35]
Hintergrund
2012 begann Mozilla das experimentelle Servoprojekt, was ein Motor ist, der von Grund auf neu gestaltet ist und die Ziele der Verbesserung haben Parallelität und Parallelität Während gleichzeitig reduzieren Speichersicherheit Schwachstellen. Servo ist in der geschrieben Rost -Programmierspracheauch von Mozilla erstellt, das für die Erzeugung entwickelt wurde zusammengestellt Code mit besserer Speichersicherheit, Parallelität und Parallelität als kompilierter C ++ - Code.[5]
Ab April 2016 brauchte Servo mindestens mehrere Jahre Entwicklung, um ein voll ausgestatteter Browsermotor zu werden.[36] Daher die Entscheidung, das Quantenprojekt zu starten, um stabile Teile von Servo in Firefox zu bringen. Mozilla entließ alle Servoentwickler im August 2020.[37]
Komponenten
Das Quantenprojekt besteht aus mehreren Unterprojekten.[12]
- CSS: Servoparallel Stilblatt System in Gecko integriert. Benchmarks deuten darauf hin, dass die Leistungsskala linear mit der Anzahl von Skalen skaliert werden Zentralprozessor Kerne.[38] Dies wurde in Firefox 57 veröffentlicht.[35]
- Machen: Servos Rendering Architektur namens Webrender, integriert in Gecko. Webrender ersetzt die Sofortiger Modus Zeichnungsmodell mit a erhaltener Modus Modell, das von der leichter beschleunigt wird GPU durch Nutzung von CSS/DOMs Ähnlichkeit zu a Szenengrafik. Das schlimmste Case-Szenario-Rendering bei Tests übersteigt 60 Bilder pro Sekunde.[39] Mozilla begann, den neuen Renderer für ausgewählte Hardware-/OS -Kombinationen in Firefox 67 zu ermöglichen.[40]
- Setzer: Geckos existierende Setzer Verschleppt zu seinem eigenen Prozess und isoliert Browser -Registerkarten aus Abstürze bei Grafiktreiber. Da Compositor -Abstürze den Browser -Inhaltsprozess nicht senken, kann der Compositor -Prozess transparent neu gestartet werden, ohne Benutzerdaten zu verlieren. Dies wurde in Firefox 53 veröffentlicht.[41]
- Dom: Lose inspiriert von Servos Konstellationsarchitektur[42] und Oper's Presto Motor,[43] Quantendom verwendet kooperativ geplante Threads innerhalb der Dom die Reaktionsfähigkeit zu erhöhen, ohne die Anzahl der Prozesse und damit die Speicherverwendung zu erhöhen. Der Kern dieses in Firefox 57 verschickt.[44]
- Fließen: Ein Regenschirm für Benutzer sichtbare Leistungsverbesserungen eines Teams, das in Gecko -Komponenten funktioniert. Konzentrieren Webapps, in erster Linie G Suite (jetzt genannt Google -Arbeitsbereich) und Facebook.[45] Diese Arbeiten wurden abgeschlossen und für Firefox 57 verschickt.[46]
- Photon: EIN UI Aktualisierung der gesamten Anwendung mit einem starken Fokus auf die Verbesserung der Benutzeroberfläche. Als Schwesterprojekt für den Quantenfluss behandelt.[47] Dies wurde in Firefox 57 veröffentlicht.[34]
- Netzwerk: Verbessern Sie die Leistung von Nacken, Geckos Netzwerkschicht, indem sie mehr Netzwerkaktivität vom Haupt -Thread verschieben, kontextabhängige Priorisierung von Netzwerkströmen und die Cache -Ebene mit dem Netzwerk rennen.[48] Diese Funktion wurde in Firefox 59 veröffentlicht.[49]
Azurblau
Das Mozilla Azure Das Projekt ist eine staatenlose Grafikabstraktions-API auf niedriger Ebene, die in verwendet wird Feuerfuchs.[50] Das Projekt hat mehrere Ziele, darunter eine genauere Direct2D -Kompatibilität, eine optimierte staatliche Interoperabilität und eine verbesserte Kontrolle über Leistungsmerkmale und Fehler. Azure bietet eine 2D -Hardware -Beschleunigung auf 3D -Grafik -Backends. Firefox begann Azure statt zu benutzen Kairo in 2012.[51][52] Es ist geschrieben in C ++ und benutzt von Servo.[53] Der Azure -Name ist eine Ode an den frühen Netscape -Gründer James H. Clark und seine frühere Arbeit bei Siliziumgrafik Wo Arbeitsstationen oft nach Farben benannt wurden.[54]
Verweise
- ^ "Mozilla Foundation Endbenutzer-Lizenzvereinbarungen". Mozilla.
- ^ "Mozilla Lizenzierungsrichtlinien". Mozilla.org. Abgerufen 2013-03-26.
- ^ "Mozilla einbetten". Mozilla.org. 2012-10-25. Abgerufen 2012-10-31.
- ^ a b "Einfaches Firefox für Android Build". Archiviert von das Original Am 2019-09-29. Abgerufen 2017-05-03.
Gecko wird mit C ++ und JavaScript implementiert.
- ^ a b Bergstrom, Lars; et al. (Mai 2016). "Engineering der Servo -Webbrowser -Engine mit Rost" (PDF). Proceedings der Internationalen Konferenz über Software -Engineering.
- ^ "Google -Gruppen". Groups.google.com.
- ^ Yegulalp, Serdar (3. Februar 2017). "Mozilla bindet das Schicksal von Firefox an die Rostsprache". InfoWorld.
- ^ "MPL 2 Upgrade". Abgerufen 2012-08-18.
- ^ "Gecko FAQ". MDN Web Docs. Archiviert von das Original Am 2019-10-08. Abgerufen 2017-05-03.
- ^ "NGlayout -Projekt: Identitätskrise". Mozilla.org. Archiviert von das Original Am 2011-06-29. Abgerufen 2012-10-31.
- ^ a b Jorge O. Castro (2004-06-15). "ARS Technica setzt sich mit Scott Collins von Mozilla.org zusammen". ARS Technica. Abgerufen 2017-02-16.
- ^ a b c d "Quantum". Mozilla Wiki. Abgerufen 2017-04-20.
- ^ a b Cimpanu, Catalin. "Mozilla kündigt Quantum an, einen neuen Browsermotor für Firefox". Softpedia. Abgerufen 2016-11-07.
- ^ "Firefox Focus 7.0 tritt in Beta ein, wechselt zu Geckoview (Gecko Engine)". 14. September 2018.
- ^ a b "Firefox Focus mit Geckoview". Mozilla Hacks. 13. September 2018. Abgerufen 4. September, 2019.
- ^ "Was ist neu in Firefox Focus für Android (Version 7) | Firefox Focus Hilfe". Support.mozilla.org. Abgerufen 4. September, 2019.
- ^ "Geckoview im Jahr 2019". Mozilla Hacks. 27. Juni 2019. Abgerufen 4. September, 2019.
- ^ Vesta Zare (25. August 2020). "Schnell, personalisiert und privat von Design auf allen Plattformen: Einführung eines neuen Firefox für Android Experience". Mozilla Blog. Abgerufen 22. September, 2020.
- ^ "Mozilla CSS -Unterstützungsdiagramm". Entwickler.mozilla.org. 2012-08-04. Archiviert von das Original Am 2014-04-05. Abgerufen 2012-10-31.
- ^ "ECMascript 5 Unterstützung in Mozilla". Entwickler.mozilla.org. 2013-11-14. Abgerufen 2013-12-02.
- ^ "Mozilla SVG Status". Mozilla.org. 2012-08-25. Abgerufen 2012-10-31.
- ^ "Mozilla fügt nicht nachweisbares Dokument hinzu. Alle Unterstützung, Teil der neuen Novell Linux Distribution?". Entwickler.mozilla.org. 2004-07-23. Abgerufen 2018-02-07.
- ^ "IE verwendet Gecko unter Wein". Wein Wiki. Abgerufen 2009-09-14.
- ^ SDUBOIS (24. Juni 2010). "Gecko". Kostenlose Software -Stiftung. Abgerufen 23. Mai 2019.
- ^ Martens, China (2007-01-03). "Ein Laptop pro Kind laut 'Zucker' Schnittstelle“. IDG News Service. Archiviert von das Original am 2008-01-18. Abgerufen 2007-12-28.
- ^ "Picasa 3.0 für Linux". Archiviert von das Original am 2009-01-07. Abgerufen 2008-12-28.
- ^ "Firefox für Fenster bauen". MDN Web Docs.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ wiki.jswindle.com https://web.archive.org/web/20120611003752/http://wiki.jswindle.com/index.php/fedora#working_wine. Archiviert von das Original am 11. Juni 2012.
{{}}
: Fehlen oder leer|title=
(Hilfe) - ^ "Gecko -Versionen und Anwendungsversionen". Mdn. Abgerufen 2013-11-18.
- ^ "Nicht viel in New Thunderbird 5, aber Roadmap sieht vielversprechend aus". ARS Technica. 30. Juni 2011. Abgerufen 2018-02-07.
- ^ a b Paul Festa (2003-01-14). "Apple Snub Stings Mozilla". CNET -Netzwerke. Archiviert von das Original Am 2012-10-25. Abgerufen 2017-02-16.
- ^ a b David Baron (2003-01-09). "Donnerstag 2003-01-09". David Barons Weblog. selbst veröffentlicht. Archiviert von das Original am 2009-07-28. Abgerufen 2017-02-16.
- ^ Ryan Paul (2008-09-09). "Warum Mozilla Gecko mit wächst Webkit -Popularität verpflichtet". Abgerufen 2017-02-16.
- ^ a b "Firefox 57.0, siehe alle neuen Funktionen, Updates und Korrekturen". Mozilla. Abgerufen 2018-10-30.
- ^ a b "Einführung des neuen Firefox: Firefox Quantum - The Mozilla Blog". Der Mozilla -Blog. Abgerufen 2018-10-30.
- ^ "Servo verbleibende Arbeit". GitHub. Abgerufen 2017-02-17.
- ^ "Mozilla legt 250 Mitarbeiter aus, während es sich auf kommerzielle Produkte neu ausfindet". ZDNET. Abgerufen 2022-06-14.
- ^ "Der Changelog". Der Changelog. Abgerufen 2017-03-28.
- ^ "Bay Area Rust -Meetup Februar 2016". Air Mozilla. Abgerufen 2017-03-28.
- ^ "Webrender wo". Mozilla Wiki. Abgerufen 2020-07-14.
- ^ "Firefox schneller und stabiler mit den ersten großen Bytes von Projektquanten, einfacher mit kompakten Themen und Berechtigungen neu gestaltet". Mozilla Blog. Abgerufen 2017-04-27.
- ^ "Servoarchitektur". Youtube. Archiviert vom Original am 2021-12-11. Abgerufen 2017-03-28.
- ^ "Mozillas Quantenprojekt". Bill McCloskeys Blog. 2016-10-27. Abgerufen 2017-03-28.
- ^ "Eintritt in die Quantenzeit". Mozilla Hacks. 2017-11-13. Abgerufen 2020-07-14.
- ^ "Quantenfluss". Mozilla Wiki. Abgerufen 2017-03-28.
- ^ "Quantenfluss Engineering Newsletter #25". Ehsanakhgari.org. 2017-09-17. Abgerufen 2020-07-14.
- ^ Dolske (2017-05-18). "Photon Engineering Newsletter #1". Dolskes Blog. Abgerufen 2017-07-04.
- ^ "TPE Necko/Projekte - Mozillawiki". Wiki.mozilla.org. Abgerufen 2017-07-04.
- ^ "Firefox 59 Versionsnotizen". www.mozilla.org. Abgerufen 2019-01-16.
- ^ "Plattform/GFX/Moz2d - Mozillawiki".
- ^ Parfeni, Lucian. "Firefox verwendet jetzt die Azure -Grafik -API für Leinwand auf allen Plattformen".
- ^ "Azure ersetzt Kairo in Mozilla Firefox - Phoronix".
- ^ Willis, Nathan (17. Juni 2015). "Parallele Seite Rendering mit Mozilla Servo". Lwn.net. Abgerufen 27. Juni 2015.
- ^ "Einführung des Azure -Projekts - Joedrew!". Archiviert von das Original Am 2016-09-08. Abgerufen 2019-09-22.