stringtranslate.com

Gecko (programa)

Gecko (estilizado como ɢecko) 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 soportar 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 de 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 . [3]

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

Historia

El desarrollo del motor de diseño ahora conocido como Gecko comenzó en Netscape en 1997, después de que la compañía adquiriera DigitalStyle . El motor de renderizado existente de Netscape, escrito originalmente para Netscape Navigator 1.0 y actualizado a través de los años, era lento, no cumplía bien con los estándares del W3C, tenía un soporte limitado para HTML dinámico y carecía de características como el reflujo incremental (cuando el motor de diseño reorganiza los 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 con el antiguo, 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.

Tras el 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. Originalmente presentado como Raptor , el nombre tuvo que cambiarse a NGLayout (next generation layout) debido a problemas de marca registrada . Netscape luego renombró NGLayout como Gecko . Si bien Mozilla Organization (la precursora de Mozilla Foundation ) inicialmente continuó usando el nombre NGLayout (Gecko era una marca registrada de Netscape), [10] finalmente la marca Gecko triunfó. [ cita requerida ]

En octubre de 1998, Netscape anunció que su próximo navegador utilizaría Gecko (que en ese momento todavía se llamaba NGLayout) en lugar del antiguo motor de diseño, lo que requirió que se reescribieran 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 que se les dio para la reescritura. [11] También significó que la mayor parte del trabajo realizado para Netscape Communicator 5.0 (incluido el desarrollo de las mejoras de Mariner para el antiguo motor de diseño) tuvo que abandonarse. Netscape 6, la primera versión de Netscape que incorporó Gecko, se lanzó en noviembre de 2000 (el nombre Netscape 5 nunca se usó). [ cita requerida ]

A medida que el desarrollo de Gecko continuó, 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 ya tenían Internet Explorer integrado). Sin embargo, con la excepción de unas pocas versiones beta , Gecko nunca se utilizó en el cliente principal de AOL para Microsoft Windows . [ cita requerida ]

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 la principal administradora del desarrollo de Gecko. Hoy, Gecko es desarrollado por empleados de Mozilla Corporation , empleados de empresas que contribuyen al proyecto Mozilla y voluntarios. [ cita requerida ]

En la era de Netscape, una combinación de malas decisiones técnicas y de gestión dieron como resultado la hinchazón del software Gecko . [11] [12] [13] Por lo tanto, en 2001, Apple decidió bifurcar KHTML , no Gecko, para crear el motor WebKit para su navegador Safari . [12] [13] Sin embargo, en 2008 Mozilla había abordado algunos de los problemas de hinchazón, lo que resultó en importantes mejoras de rendimiento para Gecko. [14]

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 para Gecko, tomadas del proyecto experimental Servo . [15] [16] 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 de CSS y GPU . Se fusionarán componentes adicionales de Servo a Gecko de forma incremental en futuras versiones. [15]

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, abarcando los esfuerzos de desarrollo de software más nuevos para "desacoplar el motor en sí de su interfaz de usuario y hacer que sea fácil de integrar en otras aplicaciones". Firefox Focus 7.0, enviado en el mismo mes, [17] es la versión inicial que introdujo GeckoView, con un mayor rendimiento en la carga de páginas media. [18] [19] Firefox Reality también se creó con GeckoView. [18] 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. [20] Firefox para Android 79, también conocido como "Firefox Daylight", que se envió por primera vez en agosto de 2020, es la primera versión estable de este con componentes principales impulsados ​​por el motor GeckoView. [21]

Soporte de estándares

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

Gecko también soporta SVG . [23]

Compatibilidad no estándar con IE heredado

Para poder ofrecer compatibilidad con páginas web diseñadas para versiones anteriores de Netscape e Internet Explorer, Gecko admite el cambio de 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 que tienen un DOCTYPE más antiguo se representan en modo peculiar , que emula algunas de las rarezas no estándar de Netscape Communicator 4.x; sin embargo, algunas de las características 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 marquee y la document.allpropiedad (aunque a las páginas que lo prueben explícitamente document.allse les informará que no es compatible). [24]

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 de navegadores web de Mozilla, como Firefox y Firefox para dispositivos móviles , y en la implementación del clon de Internet Explorer que forma parte de Wine . [25] Mozilla también lo utiliza en su cliente de correo electrónico Thunderbird .

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

Gecko también es utilizado por Sugar para la computadora OLPC XO-1 , [27] y se utiliza como una implementación completa del XUL ( lenguaje de interfaz de usuario XML ). Gecko actualmente define la especificación XUL. [ necesita actualización ] Gecko también es utilizado por el sistema operativo móvil KaiOS , que se basa en el discontinuado Firefox OS . [28]

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 ).

Los productos discontinuados que usaban Gecko incluyen Swiftfox , Flock , Galeon , Camino , Minimo , Beonex Communicator , Kazehakase , Songbird , Sunbird (calendario) , MicroB , Nightingale , Instantbird y Picasa para Linux. [29]

Dependencia propietaria

En Windows y otras plataformas, Gecko depende de compiladores propietarios. [30]

Después de Gecko 2.0, el número de versión se aumentó a 5.0 para que coincida con Firefox 5, y desde entonces se ha mantenido sincronizado con el número de versión principal tanto de Firefox como de Thunderbird, [31] para reflejar el hecho de que ya no es un componente separado. [32]

Cuántico

Quantum es un proyecto de Mozilla que engloba varios esfuerzos de desarrollo de software para "construir el motor web de próxima generación para los usuarios de Firefox ". Incluye numerosas mejoras para Gecko, en gran parte incorporadas desde el proyecto experimental Servo . Quantum también incluye mejoras en la interfaz de usuario y las interacciones. [15] [16]

Firefox 57, lanzado en noviembre de 2017, es la versión inicial con un componente Servo habilitado. Mozilla llama a esta y a varias versiones futuras "Firefox Quantum". [33] [34]

Fondo

En 2012, Mozilla inició el proyecto experimental Servo , que es un motor diseñado desde cero con el objetivo de mejorar la concurrencia y el paralelismo, al mismo tiempo que reduce las vulnerabilidades de seguridad de la memoria . Servo está escrito en el lenguaje de programación Rust , también creado por Mozilla, que está diseñado para generar código compilado con mejor seguridad de memoria, concurrencia y paralelismo que el código C++ compilado. [5]

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

Componentes

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

Azur

El proyecto Mozilla Azure es una API de abstracción de gráficos de bajo nivel sin estado que se utiliza en Firefox . [49]
El proyecto tiene varios objetivos, entre ellos:

Azure proporcionará aceleración de hardware 2D sobre backends de gráficos 3D. Firefox comenzó a utilizar Azure en lugar de Cairo en 2012. [50] [51] Está escrito en C++ y lo utiliza Servo . [52] 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 se nombraban con colores. [53]

Referencias

  1. ^ "Acuerdos de licencia de usuario final de la Fundación Mozilla". Mozilla .
  2. ^ "Políticas de licencias de Mozilla". mozilla.org . Consultado el 26 de marzo de 2013 .
  3. ^ "Incorporación de Mozilla". Mozilla.org. 25 de octubre de 2012. Consultado el 31 de octubre de 2012 .
  4. ^ ab "Compilación sencilla 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.
  5. ^ ab Bergstrom, Lars; et al. (mayo de 2016). "Ingeniería del motor del navegador web Servo con Rust" (PDF) . Actas de la Conferencia internacional sobre ingeniería de software . Archivado (PDF) desde el original el 29 de mayo de 2016.
  6. ^ "Grupos de Google". groups.google.com .
  7. ^ Yegulalp, Serdar (3 de febrero de 2017). "Mozilla vincula el destino de Firefox al lenguaje Rust". InfoWorld .
  8. ^ "Actualización de MPL 2" . Consultado el 18 de agosto de 2012 .
  9. ^ "Preguntas frecuentes sobre Gecko". Documentos web de MDN . Archivado desde el original el 8 de octubre de 2019. Consultado el 3 de mayo de 2017 .
  10. ^ "Proyecto nglayout: crisis de identidad". Mozilla.org. Archivado desde el original el 29 de junio de 2011. Consultado el 31 de octubre de 2012 .
  11. ^ ab Jorge O. Castro (15 de junio de 2004). "Ars Technica se reúne con Scott Collins de Mozilla.org". Ars Technica . Consultado el 16 de febrero de 2017 .
  12. ^ por Paul Festa (14 de enero de 2003). "Apple desairó a Mozilla". CNET Networks . Archivado desde el original el 25 de octubre de 2012. Consultado el 16 de febrero de 2017 .
  13. ^ de David Baron (9 de enero de 2003). "Jueves 9 de enero de 2003". Blog de David Baron . Autopublicado. Archivado desde el original el 28 de julio de 2009. Consultado el 16 de febrero de 2017 .
  14. ^ 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 .
  15. ^ abcd "Quantum". Wiki de Mozilla . Consultado el 20 de abril de 2017 .
  16. ^ ab Cimpanu, Catalin. "Mozilla anuncia Quantum, un nuevo motor de navegación para Firefox". softpedia . Consultado el 7 de noviembre de 2016 .
  17. ^ "Firefox Focus 7.0 entra en fase beta y cambia a GeckoView (Gecko Engine)". 14 de septiembre de 2018. Archivado desde el original el 31 de julio de 2020. Consultado el 19 de septiembre de 2019 .
  18. ^ ab "Firefox Focus con GeckoView". Mozilla Hacks . 13 de septiembre de 2018 . Consultado el 4 de septiembre de 2019 .
  19. ^ "Novedades de Firefox Focus para Android (versión 7) | Ayuda de Firefox Focus". support.mozilla.org . Consultado el 4 de septiembre de 2019 .
  20. ^ "GeckoView en 2019". Mozilla Hacks . 27 de junio de 2019 . Consultado el 4 de septiembre de 2019 .
  21. ^ 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 .
  22. ^ "Compatibilidad entre navegadores de ECMAScript 2015 (ES6) en Firefox 102". www.lambdatest.com . Consultado el 21 de agosto de 2022 .
  23. ^ "Compatibilidad entre navegadores de SVG (soporte básico) en Firefox 102". www.lambdatest.com . Consultado el 21 de agosto de 2022 .
  24. ^ "Mozilla añade compatibilidad con document.all indetectable, parte de la nueva distribución Linux de Novell?". Developer.mozilla.org. 2004-07-23 . Consultado el 2018-02-07 .
  25. ^ "IE usa Gecko en Wine". Wine Wiki . Consultado el 14 de septiembre de 2009 .
  26. ^ sdubois (24 de junio de 2010). "Gecko". Free Software Foundation . Consultado el 23 de mayo de 2019 .
  27. ^ Martens, China (3 de enero de 2007). "One Laptop Per Child 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 .
  28. ^ Hill, Paul (12 de marzo de 2020). «KaiOS Technologies se asocia con Mozilla para mejorar Gecko». Neowin . Consultado el 12 de julio de 2024 .
  29. ^ "Picasa 3.0 para Linux". Archivado desde el original el 7 de enero de 2009. Consultado el 28 de diciembre de 2008 .
  30. ^ "Desarrollo de Firefox para Windows". Documentos web de MDN .
  31. ^ "Versiones de Gecko y versiones de la aplicación". MDN . Archivado desde el original el 2020-10-31 . Consultado el 2013-11-18 .
  32. ^ "No hay mucho en el nuevo Thunderbird 5, pero la hoja de ruta parece prometedora". Ars Technica . 30 de junio de 2011 . Consultado el 7 de febrero de 2018 .
  33. ^ ab "Firefox 57.0, ver todas las nuevas funciones, actualizaciones y correcciones". Mozilla . Consultado el 30 de octubre de 2018 .
  34. ^ ab "Presentación del nuevo Firefox: Firefox Quantum – El blog de Mozilla". El blog de Mozilla . Consultado el 30 de octubre de 2018 .
  35. ^ "Trabajo restante del servo". GitHub . Consultado el 17 de febrero de 2017 .
  36. ^ "Mozilla despide a 250 empleados mientras se centra en productos comerciales". ZDNet . Consultado el 14 de junio de 2022 .
  37. ^ "El registro de cambios". El registro de cambios . 18 de noviembre de 2016 . Consultado el 28 de marzo de 2017 .
  38. ^ "Bay Area Rust Meetup February 2016". Air Mozilla . Consultado el 28 de marzo de 2017 .
  39. ^ "Webrender Where". Wiki de Mozilla . Consultado el 14 de julio de 2020 .
  40. ^ "Firefox es más rápido y estable con los primeros grandes bytes del Proyecto Quantum, más simple con temas compactos y rediseño de permisos". Blog de Mozilla . Consultado el 27 de abril de 2017 .
  41. ^ "Servo Architecture". YouTube . 18 de enero de 2017. Archivado desde el original el 2021-12-11 . Consultado el 28 de marzo de 2017 .
  42. ^ "Proyecto cuántico de Mozilla". Blog de Bill McCloskey . 27 de octubre de 2016. Consultado el 28 de marzo de 2017 .
  43. ^ "Entrando a la era cuántica". Mozilla Hacks . 2017-11-13 . Consultado el 2020-07-14 .
  44. ^ "Flujo cuántico". Wiki de Mozilla . Consultado el 28 de marzo de 2017 .
  45. ^ "Boletín de Ingeniería de Flujo Cuántico n.° 25". ehsanakhgari.org . 2017-09-17 . Consultado el 2020-07-14 .
  46. ^ dolske (18 de mayo de 2017). "Boletín de ingeniería de fotones n.° 1". Blog de Dolske . Consultado el 4 de julio de 2017 .
  47. ^ "TPE Necko/Proyectos - MozillaWiki". wiki.mozilla.org . Consultado el 4 de julio de 2017 .
  48. ^ "Notas de la versión de Firefox 59". www.mozilla.org . Consultado el 16 de enero de 2019 .
  49. ^ "Plataforma/GFX/Moz2D - MozillaWiki".
  50. ^ Parfeni, Lucian. "Firefox ahora utiliza la API de gráficos de Azure para Canvas en todas las plataformas".
  51. ^ "Azure reemplaza a Cairo en Mozilla Firefox - Phoronix".
  52. ^ Willis, Nathan (17 de junio de 2015). "Renderizado de páginas paralelas con Mozilla Servo". LWN.net . Consultado el 27 de junio de 2015 .
  53. ^ "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