stringtranslate.com

Geco (software)

Gecko es un motor de navegador desarrollado por Mozilla . Se utiliza en el navegador Firefox , el cliente de correo electrónico Thunderbird y muchos otros proyectos.

Gecko está diseñado para admitir estándares abiertos de Internet y es utilizado por diferentes aplicaciones para mostrar páginas web y, en algunos casos, la propia interfaz de usuario de una aplicación (mediante la representación XUL ). Gecko ofrece una rica API de programación que lo hace adecuado para una amplia variedad de funciones en aplicaciones habilitadas para Internet, como navegadores web , presentación de contenido y cliente/servidor . [4]

Gecko está escrito en C++ y JavaScript , [5] [6] y, desde 2016, adicionalmente en Rust . [7] [8] Es un software gratuito y de código abierto sujeto a los términos de la Licencia pública de Mozilla versión 2. [9] Mozilla admite oficialmente su uso en Android , [5] Linux , macOS y Windows . [10]

Historia

El desarrollo del motor de diseño ahora conocido como Gecko comenzó en Netscape en 1997, tras la compra de DigitalStyle por parte de la empresa . El motor de renderizado Netscape existente, escrito originalmente para Netscape Navigator 1.0 y actualizado a lo largo de los años, era lento, no cumplía bien con los estándares W3C, tenía soporte limitado para HTML dinámico y carecía de funciones como el reflujo incremental (cuando el motor de diseño reorganiza elementos en la pantalla a medida que se descargan y agregan nuevos datos a la página). El nuevo motor de diseño se desarrolló en paralelo al anterior, con la intención de integrarlo en Netscape Communicator cuando estuviera maduro y estable. Se esperaba que se lanzara al menos una revisión importante más de Netscape con el antiguo motor de diseño antes del cambio.

Después del lanzamiento del proyecto Mozilla a principios de 1998, el nuevo código del motor de diseño se publicó bajo una licencia de código abierto. Presentado originalmente como Raptor , el nombre tuvo que cambiarse a NGLayout (diseño de próxima generación) debido a problemas de marca registrada . Más tarde, Netscape cambió el nombre de NGLayout a Gecko . Si bien la Organización Mozilla (la precursora de la Fundación Mozilla ) inicialmente continuó usando el nombre NGLayout (Gecko era una marca registrada de Netscape), [11] finalmente ganó la marca Gecko. [ cita necesaria ]

En octubre de 1998, Netscape anunció que su próximo navegador usaría Gecko (que todavía se llamaba NGLayout en ese momento) en lugar del antiguo motor de diseño, lo que requería reescribir grandes partes de la aplicación. Si bien esta decisión fue popular entre los defensores de los estándares web, fue en gran medida impopular entre los desarrolladores de Netscape, quienes no estaban contentos con los seis meses dados para la reescritura. [12] También significó que la mayor parte del trabajo realizado para Netscape Communicator 5.0 (incluido el desarrollo de las mejoras de Mariner en el antiguo motor de diseño) tuvo que abandonarse. Netscape 6, la primera versión de Netscape que incorpora Gecko, se lanzó en noviembre de 2000 (el nombre Netscape 5 nunca se utilizó). [ cita necesaria ]

A medida que continuó el desarrollo de Gecko, otras aplicaciones e integradores comenzaron a utilizarlo. America Online , en ese momento la empresa matriz de Netscape, finalmente lo adoptó para su uso en CompuServe 7.0 y AOL para Mac OS X (estos productos previamente incluían Internet Explorer). Sin embargo, con la excepción de algunas versiones beta , Gecko nunca se usó en el cliente principal de Microsoft Windows AOL. [ cita necesaria ]

El 15 de julio de 2003, AOL despidió a los desarrolladores restantes de Gecko y la Fundación Mozilla (formada el mismo día) se convirtió en el principal administrador del desarrollo de Gecko. Hoy en día, Gecko es desarrollado por empleados de Mozilla Corporation , empleados de empresas que contribuyen al proyecto Mozilla y voluntarios. [ cita necesaria ]

En octubre de 2016, Mozilla anunció Quantum, un proyecto en curso que abarca varios esfuerzos de desarrollo de software para "construir el motor web de próxima generación para los usuarios de Firefox ". Incluía numerosas mejoras a Gecko, tomadas del proyecto experimental Servo . [13] [14] Firefox 57, también conocido como "Firefox Quantum", que se lanzó por primera vez en noviembre de 2017, es la versión inicial con los principales componentes de los proyectos Quantum/Servo habilitados. Estos incluyen un mayor rendimiento en los componentes de renderizado CSS y GPU . Se fusionarán componentes adicionales de Servo a Gecko de forma incremental en versiones futuras. [13]

En septiembre de 2018, Mozilla anunció GeckoView, la base de la próxima generación de productos móviles de Mozilla basada en una biblioteca de software que hace que Gecko sea reutilizable para Android, que abarca nuevos esfuerzos de desarrollo de software para "desacoplar el motor de su interfaz de usuario y facilitar su incrustar en otras aplicaciones". Firefox Focus 7.0, lanzado el mismo mes, [15] es la versión inicial presentada por GeckoView, con mayor rendimiento en la carga de páginas media. [16] [17] Firefox Reality también se creó con GeckoView. [16] En junio de 2019, Mozilla anunció Firefox Preview como un proyecto en curso que se centra en la creación de un navegador web para Android con GeckoView. [18] Firefox para Android 79, también conocido como "Firefox Daylight", que se lanzó por primera vez en agosto de 2020, es la primera versión estable con componentes principales impulsados ​​por el motor GeckoView. [19]

Soporte de estándares

Desde el principio, Gecko fue diseñado para soportar estándares abiertos de Internet. Algunos de los estándares que admite Gecko incluyen:

Gecko también es compatible con SVG . [21]

Soporte no estándar de IE heredado

Para admitir páginas web diseñadas para versiones heredadas de Netscape e Internet Explorer, Gecko admite la conmutación DOCTYPE . Los documentos con un DOCTYPE moderno se representan en modo de cumplimiento de estándares, que sigue estrictamente los estándares del W3C . Los documentos que no tienen DOCTYPE o tienen un DOCTYPE más antiguo se representan en modo peculiares , que emula algunas de las rarezas no estándar de Netscape Communicator 4.x; sin embargo, algunas de las funciones de 4.x (como las capas ) no son compatibles.

Gecko también tiene soporte limitado para algunas características no estándar de Internet Explorer, como el elemento de marquesina y la document.allpropiedad (aunque a las páginas que prueban explícitamente document.allse les informará que no es compatible). [22]

Uso

Gecko se utiliza principalmente en navegadores web , siendo los primeros Netscape 6 y Mozilla Suite (posteriormente rebautizado como SeaMonkey ). También se utiliza en otros derivados del navegador web de Mozilla como Firefox y Firefox para móviles y en la implementación del clon de Internet Explorer que forma parte de Wine . [23] Mozilla también lo utiliza en su cliente de correo electrónico Thunderbird .

Otros navegadores web que utilizan Gecko incluyen GNU IceCat , [24] Waterfox , K-Meleon , Lunascape , Portable Firefox , Conkeror , Classilla , TenFourFox .

Sugar también utiliza Gecko para la computadora OLPC XO-1 . [25] Gecko se utiliza como una implementación completa de XUL ( lenguaje de interfaz de usuario XML ). Gecko define actualmente la especificación XUL.

Usuarios anteriores

Los productos que anteriormente usaban Gecko incluyen Pale Moon (ahora usa Goanna ), Epiphany (ahora conocido como GNOME Web y usa WebKitGTK ) y GNOME DevHelp (ahora usa WebKitGTK ).

Discontinued products that used Gecko include Swiftfox, Flock, Galeon, Camino, Minimo, Beonex Communicator, Kazehakase, Songbird, Sunbird (calendar), MicroB, Nightingale, Instantbird, and Picasa for Linux.[26]

Proprietary dependency

On Windows and other platforms, Gecko depends on proprietary compilers.[27] Thus, FOSS distributions of Linux cannot include the Gecko package used in the Windows compatibility layer Wine.[28]

After Gecko 2.0, the version number was bumped to 5.0 to match Firefox 5, and from then on has been kept in sync with the major version number for both Firefox and Thunderbird,[29] to reflect the fact that it is no longer a separate component.[30]

Bloat

In the Netscape era, a combination of poor technical and management decisions resulted in Gecko software bloat.[12][31][32] Thus in 2001 Apple chose to fork KHTML, not Gecko, to create the WebKit engine for its Safari browser.[31][32] However, by 2008 Mozilla had addressed some of the bloat problems, resulting in significant performance improvements for Gecko.[33]

Quantum

Quantum is a Mozilla project encompassing several software development efforts to "build the next-generation web engine for Firefox users". It includes numerous improvements to Gecko, largely incorporated from the experimental Servo project. Quantum also includes refinements to the user interface and interactions.[13][14]

Firefox 57, released in November 2017, is the initial version with a Servo component enabled. Mozilla dubs this and several planned future releases "Firefox Quantum".[34][35]

Background

In 2012, Mozilla began the experimental Servo project, which is an engine designed from scratch with the goals of improving concurrency and parallelism while also reducing memory safety vulnerabilities. Servo is written in the Rust programming language, also created by Mozilla, which is designed to generate compiled code with better memory safety, concurrency, and parallelism than compiled C++ code.[6]

En abril de 2016, Servo necesitaba al menos varios años de desarrollo para convertirse en un motor de navegador con todas las funciones, [36] de ahí la decisión de iniciar el proyecto Quantum para llevar partes estables de Servo a Firefox. Mozilla despidió a todos los desarrolladores de Servo en agosto de 2020. [37]

Componentes

El proyecto Quantum se compone de varios subproyectos. [13]

Azur

El proyecto Mozilla Azure es una API de abstracción de gráficos de bajo nivel sin estado utilizada en Firefox . [50] El proyecto tiene varios objetivos que incluyen una compatibilidad Direct2D más precisa, una interoperabilidad de estado optimizada y un control mejorado sobre las características de rendimiento y los errores. Azure proporcionará aceleración de hardware 2D además de backends de gráficos 3D. Firefox comenzó a usar Azure en lugar de Cairo en 2012. [51] [52] Está escrito en C++ y lo utiliza Servo . [53] El nombre Azure es una oda al fundador de Netscape, James H. Clark , y su trabajo anterior en Silicon Graphics , donde las estaciones de trabajo a menudo recibían nombres de colores. [54]

Referencias

  1. ^ "Firefox 106.0.5, vea todas las funciones nuevas, actualizaciones y correcciones".
  2. ^ "Acuerdos de licencia de usuario final de la Fundación Mozilla". Mozilla .
  3. ^ "Políticas de licencias de Mozilla". mozilla.org . Consultado el 26 de marzo de 2013 .
  4. ^ "Integración de Mozilla". Mozilla.org. 25 de octubre de 2012 . Consultado el 31 de octubre de 2012 .
  5. ^ ab "Compilación simple de Firefox para Android". Archivado desde el original el 29 de septiembre de 2019 . Consultado el 3 de mayo de 2017 . Gecko se implementa utilizando C++ y JavaScript.
  6. ^ ab Bergstrom, Lars; et al. (mayo de 2016). "Ingeniería del motor de navegador web servo utilizando Rust" (PDF) . Actas de la Conferencia Internacional sobre Ingeniería de Software . Archivado (PDF) desde el original el 29 de mayo de 2016.
  7. ^ "Grupos de Google". grupos.google.com .
  8. ^ Yegulalp, Serdar (3 de febrero de 2017). "Mozilla vincula el destino de Firefox al lenguaje Rust". InfoMundo .
  9. ^ "Actualización MPL 2" . Consultado el 18 de agosto de 2012 .
  10. ^ "Preguntas frecuentes sobre gecos". Documentos web de MDN . Archivado desde el original el 8 de octubre de 2019 . Consultado el 3 de mayo de 2017 .
  11. ^ "proyecto nglayout: crisis de identidad". Mozilla.org. Archivado desde el original el 29 de junio de 2011 . Consultado el 31 de octubre de 2012 .
  12. ^ ab Jorge O. Castro (15 de junio de 2004). "Ars Technica se sienta con Scott Collins de Mozilla.org". Ars Técnica . Consultado el 16 de febrero de 2017 .
  13. ^ abcd "Cuántico". Wiki de Mozilla . Consultado el 20 de abril de 2017 .
  14. ^ ab Cimpanu, Catalin. "Mozilla anuncia Quantum, un nuevo motor de navegador para Firefox". softpedia . Consultado el 7 de noviembre de 2016 .
  15. ^ "Firefox Focus 7.0 entra en versión beta, cambia a GeckoView (Gecko Engine)". 14 de septiembre de 2018.
  16. ^ ab "Firefox Focus con GeckoView". Hacks de Mozilla . 13 de septiembre de 2018 . Consultado el 4 de septiembre de 2019 .
  17. ^ "Novedades de Firefox Focus para Android (versión 7) | Ayuda de Firefox Focus". soporte.mozilla.org . Consultado el 4 de septiembre de 2019 .
  18. ^ "GeckoView en 2019". Hacks de Mozilla . 27 de junio de 2019 . Consultado el 4 de septiembre de 2019 .
  19. ^ Vesta Zare (25 de agosto de 2020). "Rápido, personalizado y privado por diseño en todas las plataformas: presentamos una nueva experiencia de Firefox para Android". Blog de Mozilla . Consultado el 22 de septiembre de 2020 .
  20. ^ "Compatibilidad entre navegadores de ECMAScript 2015 (ES6) en Firefox 102". www.lambdatest.com . Consultado el 21 de agosto de 2022 .
  21. ^ "Compatibilidad entre navegadores de SVG (soporte básico) en Firefox 102". www.lambdatest.com . Consultado el 21 de agosto de 2022 .
  22. ^ "Mozilla agrega soporte para documentos indetectables. ¿Todo, parte de la nueva distribución de Novell Linux?". Desarrollador.mozilla.org. 2004-07-23 . Consultado el 7 de febrero de 2018 .
  23. ^ "IE usa Gecko debajo del vino". Wiki del vino . Consultado el 14 de septiembre de 2009 .
  24. ^ sdubois (24 de junio de 2010). "Geco". Fundación de Software Libre . Consultado el 23 de mayo de 2019 .
  25. ^ Martens, China (3 de enero de 2007). "Una computadora portátil por niño prepara la interfaz 'Sugar'". Servicio de noticias IDG. Archivado desde el original el 18 de enero de 2008 . Consultado el 28 de diciembre de 2007 .
  26. ^ "Picasa 3.0 para Linux". Archivado desde el original el 7 de enero de 2009 . Consultado el 28 de diciembre de 2008 .
  27. ^ "Creación de Firefox para Windows". Documentos web de MDN .
  28. ^ "Fedora - Vino-Wiki". wiki.jswindle.com . Archivado desde el original el 11 de junio de 2012.
  29. ^ "Versiones Gecko y versiones de aplicaciones". MDN . Archivado desde el original el 31 de octubre de 2020 . Consultado el 18 de noviembre de 2013 .
  30. ^ "No hay mucho en el nuevo Thunderbird 5, pero la hoja de ruta parece prometedora". Ars Técnica . 30 de junio de 2011 . Consultado el 7 de febrero de 2018 .
  31. ^ ab Paul Festa (14 de enero de 2003). "El desaire de Apple pica a Mozilla". Redes CNET . Archivado desde el original el 25 de octubre de 2012 . Consultado el 16 de febrero de 2017 .
  32. ^ ab David Barón (9 de enero de 2003). "Jueves 9 de enero de 2003". Blog de David Baron . autoeditado. Archivado desde el original el 28 de julio de 2009 . Consultado el 16 de febrero de 2017 .
  33. ^ Ryan Paul (9 de septiembre de 2008). "Por qué Mozilla apuesta por Gecko a medida que crece la popularidad de WebKit" . Consultado el 16 de febrero de 2017 .
  34. ^ ab "Firefox 57.0, vea todas las funciones nuevas, actualizaciones y correcciones". Mozilla . Consultado el 30 de octubre de 2018 .
  35. ^ ab "Presentación del nuevo Firefox: Firefox Quantum - El blog de Mozilla". El blog de Mozilla . Consultado el 30 de octubre de 2018 .
  36. ^ "Trabajo restante del servo". GitHub . Consultado el 17 de febrero de 2017 .
  37. ^ "Mozilla despide a 250 empleados mientras se centra en productos comerciales". ZDNet . Consultado el 14 de junio de 2022 .
  38. ^ "El registro de cambios". El registro de cambios . 18 de noviembre de 2016 . Consultado el 28 de marzo de 2017 .
  39. ^ "Encuentro sobre óxido del Área de la Bahía de febrero de 2016". Aire Mozilla . Consultado el 28 de marzo de 2017 .
  40. ^ "Webrender dónde". Wiki de Mozilla . Consultado el 14 de julio de 2020 .
  41. ^ "Firefox más rápido y estable con los primeros grandes bytes de Project Quantum, más simple con temas compactos y rediseño de permisos". Blog de Mozilla . Consultado el 27 de abril de 2017 .
  42. ^ "Arquitectura servo". YouTube . Archivado desde el original el 11 de diciembre de 2021 . Consultado el 28 de marzo de 2017 .
  43. ^ "Proyecto cuántico de Mozilla". Blog de Bill McCloskey . 2016-10-27 . Consultado el 28 de marzo de 2017 .
  44. ^ "Entrando en la era cuántica". Hacks de Mozilla . 2017-11-13 . Consultado el 14 de julio de 2020 .
  45. ^ "Flujo cuántico". Wiki de Mozilla . Consultado el 28 de marzo de 2017 .
  46. ^ "Boletín n.º 25 sobre ingeniería de flujo cuántico". ehsanakhgari.org . 2017-09-17 . Consultado el 14 de julio de 2020 .
  47. ^ dolské (18 de mayo de 2017). "Boletín n.º 1 sobre ingeniería de fotones". El blog de Dolské . Consultado el 4 de julio de 2017 .
  48. ^ "TPE Necko/Proyectos - MozillaWiki". wiki.mozilla.org . Consultado el 4 de julio de 2017 .
  49. ^ "Notas de la versión de Firefox 59". www.mozilla.org . Consultado el 16 de enero de 2019 .
  50. ^ "Plataforma/GFX/Moz2D - MozillaWiki".
  51. ^ Parfeni, Lucian. "Firefox ahora utiliza la API de gráficos de Azure para Canvas en todas las plataformas".
  52. ^ "Azure reemplazando a Cairo en Mozilla Firefox - Phoronix".
  53. ^ Willis, Nathan (17 de junio de 2015). "Representación de páginas paralelas con Mozilla Servo". LWN.net . Consultado el 27 de junio de 2015 .
  54. ^ "Presentación del proyecto Azure - ¡JOEDREW!". Archivado desde el original el 8 de septiembre de 2016 . Consultado el 22 de septiembre de 2019 .

enlaces externos