Gecko es un motor de navegador desarrollado por Mozilla . Se utiliza en el navegador Firefox , el cliente de correo electrónico Thunderbird y, aunque actualmente no se usa, en Netscape 6 , Netscape 7 , Netscape Browser y Netscape Navigator 9 de AOL ; además de en 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 de XUL ). Gecko ofrece una API de programación completa 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, también en Rust . [ 6 ] [ 7 ] Es software libre 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 maquetación, ahora conocido como Gecko, comenzó en Netscape en 1997, tras la adquisición de DigitalStyle . El motor de renderizado de Netscape, originalmente escrito para Netscape Navigator 1.0 y actualizado a lo largo 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 funciones como el reflujo incremental (que permite al motor de maquetación reorganizar los elementos en la pantalla a medida que se descargan y añaden nuevos datos a la página). El nuevo motor de maquetación se desarrolló en paralelo con el anterior, con la intención de integrarlo en Netscape Communicator una vez que estuviera maduro y estable. Se esperaba que se lanzara al menos una revisión importante más de Netscape con el antiguo motor de maquetación antes del cambio.
Tras el lanzamiento del proyecto Mozilla a principios de 1998, el código del nuevo motor de maquetación 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 . Posteriormente, Netscape renombró NGLayout como Gecko . Si bien la Organización Mozilla (precursora de la Fundación Mozilla ) inicialmente continuó usando el nombre NGLayout (Gecko era una marca registrada de Netscape), [ 10 ] finalmente la marca Gecko se impuso.
En octubre de 1998, Netscape anunció que su siguiente navegador usaría Gecko (que en ese momento todavía se llamaba NGLayout) en lugar del antiguo motor de diseño, lo que requirió reescribir gran parte de la aplicación. Si bien esta decisión fue popular entre los defensores de los estándares web, fue muy impopular entre los desarrolladores de Netscape, quienes no estaban contentos con los seis meses dados 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 ser abandonado. Netscape 6, la primera versión de Netscape en incorporar Gecko, se lanzó en noviembre de 2000 (el nombre Netscape 5 nunca se utilizó).
A medida que continuaba el desarrollo de Gecko, otras aplicaciones y desarrolladores comenzaron a utilizarlo. America Online , que por entonces era la empresa matriz de Netscape, finalmente lo adoptó para su uso en CompuServe 7.0 y AOL para Mac OS X (estos productos ya incluían Internet Explorer). Sin embargo, con la excepción de algunas versiones beta , Gecko nunca se utilizó en el cliente principal de AOL para Microsoft Windows .
El 15 de julio de 2003, AOL despidió a los desarrolladores restantes de Gecko y la Fundación Mozilla (creada ese mismo día) se convirtió en la principal responsable del desarrollo de Gecko. Actualmente, Gecko es desarrollado por empleados de Mozilla Corporation , empleados de empresas que contribuyen al proyecto Mozilla y voluntarios. [ 12 ]
En la era de Netscape, una combinación de malas decisiones técnicas y de gestión resultó en el exceso de software de Gecko . [ 11 ] [ 13 ] [ 14 ] Por lo tanto, en 2001 Apple optó por bifurcar KHTML , no Gecko, para crear el motor WebKit para su navegador Safari . [ 13 ] [ 14 ] Sin embargo, para 2008 Mozilla había abordado algunos de los problemas de exceso de software, lo que resultó en mejoras significativas en el rendimiento de Gecko. [ 15 ]
Cuántico
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 . [ 16 ] [ 17 ] Firefox 57, también conocido como "Firefox Quantum", se lanzó por primera vez en noviembre de 2017 y fue 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. [ 16 ]
GeckoView
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 nuevos esfuerzos de desarrollo de software para "desacoplar el motor en sí de su interfaz de usuario y facilitar su integración en otras aplicaciones". Firefox Focus 7.0, lanzado ese mismo mes, [ 18 ] es la versión inicial que introdujo GeckoView, con un rendimiento mejorado en la carga media de páginas. [ 19 ] [ 20 ] Firefox Reality también se construyó con GeckoView. [ 19 ] 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. [ 21 ] Firefox para Android 79, también conocido como "Firefox Daylight", lanzado por primera vez en agosto de 2020, es la primera versión estable con componentes principales impulsados por el motor GeckoView. [ 22 ]
Soporte de estándares
Algunos de los estándares que Gecko admite incluyen:
- CSS Nivel 3
- DOM
- HTML5
- JavaScript ( ECMAScript ES6 o superior, [ 23 ] actualmente ECMAScript 2021 ES12), implementado en SpiderMonkey
- MatemáticasML
- RDF
- XForms (mediante una extensión oficial)
- XHTML 1.0
- XML 1.0
- XSLT y XPath , implementados en TransforMiiX
- SVG [ 24 ]
Compatibilidad con versiones anteriores de IE sin soporte estándar
Para admitir páginas web diseñadas para versiones antiguas de Netscape e Internet Explorer, Gecko admite el cambio de DOCTYPE . Los documentos con un DOCTYPE moderno se renderizan 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 antiguo se renderizan en modo peculiar , que emula algunas de las peculiaridades no estándar de Netscape Communicator 4.x; sin embargo, algunas de las características de la versión 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 indicará que no es compatible). [ 25 ]
Uso
Gecko se utiliza principalmente en navegadores web , siendo los primeros Netscape 6 y Mozilla Suite (posteriormente renombrado SeaMonkey ). También se utiliza en otros derivados de navegadores web de Mozilla como Firefox y Firefox para Android y la implementación del clon de Internet Explorer que forma parte de Wine . [ 26 ] Las bifurcaciones de Firefox que también utilizan Gecko incluyen LibreWolf , Zen Browser , GNU IceCat , [ 27 ] Midori , [ 28 ] Waterfox , Portable Firefox y Floorp . Mozilla también lo utiliza en su cliente de correo electrónico Thunderbird .
Otros navegadores web que utilizan Gecko son Lunascape y Sailfish Browser .
Gecko también es utilizado por el sistema operativo móvil KaiOS , que está basado en el descontinuado Firefox OS . [ 29 ]
Usuarios anteriores
Entre los productos que antes utilizaban Gecko se incluyen Pale Moon y K-Meleon (ambos ahora utilizan Goanna), Epiphany (ahora conocido como GNOME Web y que utiliza WebKitGTK ) y GNOME DevHelp (que ahora utiliza WebKitGTK ).
Entre los productos descontinuados que utilizaban Gecko se incluyen Swiftfox , Flock , Galeon , Camino , Minimo , Beonex Communicator , Kazehakase , Songbird , Sunbird (calendario) , MicroB , Nightingale , Instantbird , Conkeror , Classilla , TenFourFox y Picasa para Linux. [ 30 ]
Gecko también fue utilizado por Sugar para la computadora OLPC XO-1 , [ 31 ] antes de pasar a WebKit en 2009.
Dependencia propietaria
En Windows y otras plataformas, Gecko depende de compiladores propietarios. [ 32 ]
Control de versiones
Después de Gecko 2.0, el número de versión se elevó a 5.0 para que coincidiera con Firefox 5, y desde entonces se ha mantenido sincronizado con el número de versión principal tanto de Firefox como de Thunderbird, [ 33 ] para reflejar el hecho de que ya no es un componente separado. [ 34 ]
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 a Gecko, incorporadas en gran medida del proyecto experimental Servo . Quantum también incluye refinamientos en la interfaz de usuario y las interacciones. [ 16 ] [ 17 ]
Firefox 57, lanzado en noviembre de 2017, es la versión inicial con el componente Servo habilitado. Mozilla denomina a esta y a varias versiones futuras planificadas "Firefox Quantum". [ 35 ] [ 36 ]
Fondo
En 2012, Mozilla inició el proyecto experimental Servo , un motor diseñado desde cero con el objetivo de mejorar la concurrencia y el paralelismo, a la vez que se reducen las vulnerabilidades de seguridad de la memoria . Servo está escrito en el lenguaje de programación Rust , también creado por Mozilla, diseñado para generar código compilado con mayor 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 completo, [ 37 ] 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. [ 38 ]
Componentes
El proyecto Quantum se compone de varios subproyectos. [ 16 ]
- CSS : Sistema de hojas de estilo paralelo de Servo integrado en Gecko. Las pruebas de rendimiento sugieren que el rendimiento escala linealmente con el número de núcleos de CPU . [ 39 ] Esto se lanzó en Firefox 57. [ 36 ]
- Renderizado : La arquitectura de renderizado de Servo , llamada WebRender, se integró en Gecko en 2019, 2 años después del primer lanzamiento de Firefox Quantum, Firefox 67. WebRender reemplaza el modelo de dibujo de modo inmediato con un modelo de modo retenido que se acelera más fácilmente mediante la GPU al aprovechar la similitud de CSS/DOM con un grafo de escena . El renderizado en el peor de los casos en las pruebas supera los 60 fotogramas por segundo. [ 40 ] Mozilla comenzó a habilitar el nuevo renderizador para ciertas combinaciones de hardware/SO en Firefox 67. [ 41 ]
- Compositor : El compositor existente de Gecko se trasladó a su propio proceso, aislando las pestañas del navegador de los fallos relacionados con el controlador gráfico. Dado que los fallos del compositor no detienen el proceso de contenido del navegador, el proceso del compositor se puede reiniciar de forma transparente sin perder datos del usuario. Esto se lanzó en Firefox 53. [ 42 ]
- DOM : Inspirado libremente en la arquitectura Constellation de Servo [ 43 ] y el motor Presto de Opera [ 44 ] , Quantum DOM utiliza subprocesos programados de forma cooperativa dentro del DOM para aumentar la capacidad de respuesta sin aumentar el número de procesos y, por lo tanto, el uso de memoria. El núcleo de esto se incluyó en Firefox 57 [ 45 ].
- Flow : Un marco para mejoras de rendimiento visibles para el usuario, impulsado por un equipo que trabaja en todos los componentes de Gecko. Centrado en mejoras reales del rendimiento del usuario en las principales aplicaciones web , principalmente G Suite (ahora llamada Google Workspace ) y Facebook . [ 46 ] Este trabajo se completó y se lanzó para Firefox 57. [ 47 ]
- Photon : Una actualización de la interfaz de usuario de toda la aplicación, con un fuerte enfoque en la mejora del rendimiento de la interfaz de usuario. Considerado un proyecto hermano de Quantum Flow. [ 48 ] Se lanzó en Firefox 57. [ 35 ]
- Red : Mejora el rendimiento de Necko , la capa de red de Gecko, moviendo más actividad de red fuera del hilo principal, priorizando flujos de red en función del contexto y sincronizando la capa de caché con la red. [ 49 ] Esta característica se lanzó en Firefox 59. [ 50 ]
Azur
El proyecto Mozilla Azure es una API de abstracción gráfica de bajo nivel sin estado utilizada en Firefox . [ 51 ] El proyecto tiene varios objetivos, entre ellos:
- Compatibilidad con Direct2D más precisa
- interoperabilidad de estados optimizada
- Control mejorado sobre las características de rendimiento y los errores.
Azure proporcionará aceleración de hardware 2D sobre backends de gráficos 3D. Firefox comenzó a usar Azure en lugar de Cairo en 2012. [ 52 ] [ 53 ] Está escrito en C++ y lo usa Servo . [ 54 ] El nombre Azure es un homenaje al fundador de Netscape, James H. Clark, y a su trabajo anterior en Silicon Graphics, donde las estaciones de trabajo a menudo recibían nombres de colores. [ 55 ]
Referencias
- ↑ "Acuerdos de licencia de usuario final de la Fundación Mozilla" . Mozilla .
- ↑ "Políticas de licencias de Mozilla" . mozilla.org . Consultado el 26 de marzo de 2013 .
- ↑ "Integración de Mozilla" . Mozilla.org. 25 de octubre de 2012. Consultado el 31 de octubre de 2012 .
- 1 2 "Versión sencilla de Firefox para Android" . Archivado del original el 29/09/2019 . Consultado el 03/05/2017 .
Gecko está implementado con C++ y JavaScript.
- 1 2 Bergstrom, Lars; et al. (mayo de 2016). "Ingeniería del motor del navegador web Servo usando Rust" (PDF) . Actas de la Conferencia Internacional sobre Ingeniería de Software . Archivado (PDF) del original el 29 de mayo de 2016.
- ↑ "Grupos de Google" . groups.google.com .
- ↑ Yegulalp, Serdar (3 de febrero de 2017). "Mozilla vincula el destino de Firefox al lenguaje Rust" . InfoWorld .
- ↑ "Actualización MPL 2" . Consultado el 18 de agosto de 2012 .
- ↑ "Preguntas frecuentes sobre geckos" . MDN Web Docs . Archivado del original el 8 de octubre de 2019. Consultado el 3 de mayo de 2017 .
- ↑ "Proyecto nglayout: crisis de identidad" . Mozilla.org. Archivado del original el 29 de junio de 2011. Consultado el 31 de octubre de 2012 .
- 1 2 Jorge O. Castro (15 de junio de 2004). "Ars Technica se sienta con Scott Collins de Mozilla.org" . Ars Technica . Recuperado el 16 de febrero de 2017 .
- ↑ mozilla. "Colaboradores de mozilla/gecko-dev" . GitHub . Consultado el 6 de enero de 2026 .
- 1 2 Paul Festa (14 de enero de 2003). "El desaire de Apple perjudica a Mozilla" . CNET Networks . Archivado del original el 25 de octubre de 2012. Recuperado el 16 de febrero de 2017 .
- 1 2 David Baron (09-01-2003). "Jueves 09-01-2003" . Blog de David Baron . Publicado por el propio autor. Archivado del original el 28-07-2009 . Consultado el 16-02-2017 .
- ↑ Ryan Paul (09/09/2008). "Por qué Mozilla sigue apostando por Gecko a medida que crece la popularidad de WebKit" . Consultado el 16/02/2017 .
- 1 2 3 4 "Quantum" . Mozilla Wiki . Consultado el 20 de abril de 2017 .
- 1 2 Cimpanu, Catalin. "Mozilla anuncia Quantum, un nuevo motor de navegador para Firefox" . softpedia . Consultado el 7 de noviembre de 2016 .
- ↑ "Firefox Focus 7.0 entra en fase beta y cambia a GeckoView (Gecko Engine)" . 14 de septiembre de 2018. Archivado del original el 31 de julio de 2020. Consultado el 19 de septiembre de 2019 .
- 1 2 "Firefox Focus con GeckoView" . Mozilla Hacks . 13 de septiembre de 2018. Consultado el 4 de septiembre de 2019 .
- ↑ "Novedades de Firefox Focus para Android (versión 7) | Ayuda de Firefox Focus" . support.mozilla.org . Consultado el 4 de septiembre de 2019 .
- ↑ "GeckoView en 2019" . Mozilla Hacks . 27 de junio de 2019. Consultado el 4 de septiembre de 2019 .
- ↑ 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 .
- ↑ "Compatibilidad entre navegadores de ECMAScript 2015 (ES6) en Firefox 102" . www.lambdatest.com . Archivado del original el 21/08/2022 . Consultado el 21/08/2022 .
- ↑ "Compatibilidad entre navegadores de SVG (soporte básico) en Firefox 102" . www.lambdatest.com . Archivado del original el 9 de diciembre de 2022. Consultado el 21 de agosto de 2022 .
- ↑ "¿Mozilla añade soporte indetectable para document.all como parte de la nueva distribución Novell Linux?" . Developer.mozilla.org. 23-07-2004 . Consultado el 07-02-2018 .
- ↑ "IE utiliza Gecko bajo Wine" . Wine Wiki . Consultado el 14 de septiembre de 2009 .
- ↑ sdubois (24 de junio de 2010). "Gecko" . Free Software Foundation . Consultado el 23 de mayo de 2019 .
- ↑ "Midori Browser navegador web ligero" . Astian, Inc. Recuperado el 4 de febrero de 2025 .
- ↑ Hill, Paul (12 de marzo de 2020). "KaiOS Technologies se asocia con Mozilla para mejorar Gecko" . Neowin . Consultado el 12 de julio de 2024 .
- ↑ "Picasa 3.0 para Linux" . Archivado del original el 7 de enero de 2009. Consultado el 28 de diciembre de 2008 .
- ↑ Martens, China (3 de enero de 2007). "One Laptop Per Child prepara la interfaz 'Sugar'" . IDG News Service. Archivado del original el 18 de enero de 2008. Consultado el 28 de diciembre de 2007 .
- ↑ "Cómo crear Firefox para Windows" . Documentación web de MDN .
- ↑ "Versiones de Gecko y versiones de la aplicación" . MDN . Archivado del original el 31/10/2020 . Consultado el 18/11/2013 .
- ↑ "No hay muchas novedades 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 .
- 1 2 "Firefox 57.0, vea todas las nuevas funciones, actualizaciones y correcciones" . Mozilla . Consultado el 30 de octubre de 2018 .
- 1 2 "Presentando el nuevo Firefox: Firefox Quantum – El blog de Mozilla" . El blog de Mozilla . Consultado el 30 de octubre de 2018 .
- ↑ "Servo remaining work" . GitHub . Consultado el 17 de febrero de 2017 .
- ↑ "Mozilla despide a 250 empleados mientras se reorienta hacia los productos comerciales" . ZDNet . Consultado el 14 de junio de 2022 .
- ↑ "El registro de cambios" . El registro de cambios . 18 de noviembre de 2016. Consultado el 28 de marzo de 2017 .
- ↑ "Encuentro de Rust en el Área de la Bahía, febrero de 2016" . Air Mozilla . Consultado el 28 de marzo de 2017 .
- ↑ "Webrender Where" . Mozilla Wiki . Consultado el 14 de julio de 2020 .
- ↑ "Firefox es más rápido y estable con las primeras grandes mejoras del Proyecto Quantum, más sencillo con temas compactos y un rediseño de permisos" . Blog de Mozilla . Consultado el 27 de abril de 2017 .
- ↑ "Servo Architecture" . YouTube . 18 de enero de 2017. Archivado del original el 11 de diciembre de 2021. Consultado el 28 de marzo de 2017 .
- ↑ "Proyecto cuántico de Mozilla" . Blog de Bill McCloskey . 27 de octubre de 2016. Consultado el 28 de marzo de 2017 .
- ↑ "Entrando en la era cuántica" . Mozilla Hacks . 13 de noviembre de 2017. Consultado el 14 de julio de 2020 .
- ↑ "Flujo cuántico" . Wiki de Mozilla . Consultado el 28 de marzo de 2017 .
- ↑ "Boletín informativo de ingeniería de flujo cuántico n.° 25" . ehsanakhgari.org . 17 de septiembre de 2017. Consultado el 14 de julio de 2020 .
- ↑ dolske (18 de mayo de 2017). "Boletín de ingeniería fotónica n.° 1" . Blog de Dolske . Consultado el 4 de julio de 2017 .
- ↑ "TPE Necko/Proyectos - MozillaWiki" . wiki.mozilla.org . Consultado el 4 de julio de 2017 .
- ↑ "Notas de la versión de Firefox 59" . www.mozilla.org . Consultado el 16 de enero de 2019 .
- ↑ "Plataforma/GFX/Moz2D - MozillaWiki" .
- ↑ Parfeni, Lucian (7 de septiembre de 2012). "Firefox ahora utiliza la API de gráficos de Azure para Canvas en todas las plataformas" .
- ↑ "Azure reemplaza a Cairo en Mozilla Firefox - Phoronix" .
- ↑ Willis, Nathan (17 de junio de 2015). "Renderizado de página paralela con Mozilla Servo" . LWN.net . Recuperado el 27 de junio de 2015 .
- ↑ "Presentando el proyecto Azure - ¡JOEDREW!" . Archivado del original el 08/09/2016 . Consultado el 22/09/2019 .
Enlaces externos
- Gecko - Documentación web de MDN
- Wiki de desarrollo de Gecko (wiki.mozilla.org)
- Renderizado cuántico (wiki.mozilla.org)
- Propuesta de estrategia de producto de Mozilla (BORRADOR)
- Compatibilidad con estándares de navegadores web
- JRex archivado el 24/10/2005 en Wayback Machine ( API de Java para Gecko)
- Software multiplataforma
- Motores de diseño gratuitos
- Software libre programado en C++
- Software libre programado en Rust.
- Software basado en Gecko
- Mozilla
- Software que utiliza Cairo (gráficos)
- Netscape
- Software que utiliza la Licencia Pública de Mozilla.
