Geco (software)

ImprimirCitar

Gecko es un motor de navegación 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 lo utilizan diferentes aplicaciones para mostrar páginas web y, en algunos casos, la propia interfaz de usuario de una aplicación (representando XUL). Gecko ofrece una rica API de programación que lo hace adecuado para una amplia variedad de roles en aplicaciones habilitadas para Internet, como navegadores web, presentación de contenido y cliente/servidor.

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

Historia

El desarrollo del motor de diseño que ahora se conoce como Gecko comenzó en Netscape en 1997, luego de la compra de DigitalStyle por parte de la empresa. El motor de renderizado de Netscape existente, 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 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 los elementos en la pantalla a medida que se descargan nuevos datos y se agregan 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.

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 con la marca comercial. Más tarde, Netscape cambió el nombre de NGLayout a Gecko. Si bien la Organización Mozilla (el precursor de la Fundación Mozilla) inicialmente continuó usando el nombre NGLayout (Gecko era una marca registrada de Netscape), eventualmente ganó la marca Gecko.

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 gran parte 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 otorgados para la reescritura. 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 incorporó Gecko, se lanzó en noviembre de 2000 (nunca se usó el nombre Netscape 5).

A medida que avanzaba 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 habían incorporado previamente Internet Explorer). Sin embargo, con la excepción de algunas versiones beta, Gecko nunca se usó en el cliente principal de Microsoft Windows AOL.

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. Actualmente, Gecko es desarrollado por empleados de Mozilla Corporation, empleados de empresas que contribuyen al proyecto Mozilla y voluntarios.

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 usuarios de Firefox". Incluye numerosas mejoras a Gecko, tomadas del proyecto experimental Servo. 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 representación de CSS y GPU. Los componentes adicionales se fusionarán de Servo a Gecko de forma incremental en futuras versiones.

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 propio motor". desde su interfaz de usuario, y facilitó la integración en otras aplicaciones. Firefox Focus 7.0, enviado el mismo mes, es la versión inicial presentada por GeckoView, con un mayor rendimiento en la carga media de páginas. Firefox Reality también se creó con GeckoView. En junio de 2019, Mozilla anunció Firefox Preview como un proyecto en curso que se enfoca en construir un navegador web para Android con GeckoView. 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 de eso con componentes principales impulsados por el motor GeckoView.

Compatibilidad con estándares

Desde el principio, Gecko fue diseñado para admitir estándares abiertos de Internet. Algunos de los estándares compatibles con Gecko incluyen:

  • CSS Level 3
  • DOM
  • HTML5
  • JavaScript (ECMAScript ES6 o superior, actualmente ECMAScript 2021 ES12), implementado en SpiderMonkey
  • MathML
  • RDF
  • XForms (a través de una extensión oficial)
  • XHTML 1.0
  • XML 1.0
  • XSLT y XPath, implementados en TransforMiiX

Gecko también es compatible con SVG.

Soporte no estándar de IE heredado

Para admitir páginas web diseñadas para versiones heredadas de Netscape e Internet Explorer, Gecko admite el cambio de DOCTYPE. Los documentos con un DOCTYPE moderno se procesan en modo de cumplimiento de estándares, que sigue estrictamente los estándares W3C. Los documentos que no tienen DOCTYPE o un DOCTYPE más antiguo se procesan en modo peculiar, 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 funciones no estándar de Internet Explorer, como el elemento de marquesina y la propiedad document.all (aunque las páginas prueban explícitamente para document.all se le dirá que no es compatible).

Uso

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

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

Gecko también es utilizado por Sugar para la computadora OLPC XO-1. 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 antes 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.

Dependencia propietaria

En Windows y otras plataformas, Gecko depende de compiladores propietarios. Por lo tanto, las distribuciones FOSS de Linux no pueden incluir el paquete Gecko utilizado en la capa de compatibilidad de Windows Wine.

Después de Gecko 2.0, el número de versión pasó a 5.0 para coincidir con Firefox 5, y desde entonces se ha mantenido sincronizado con el número de versión principal tanto para Firefox como para Thunderbird, para reflejar el hecho de que ya no es una versión separada componente.

Inflar

En la era de Netscape, una combinación de decisiones técnicas y administrativas deficientes resultó en un exceso de software de Gecko. Así, en 2001, Apple optó por bifurcar KHTML, no Gecko, para crear el motor WebKit para su navegador Safari. Sin embargo, en 2008, Mozilla había abordado algunos de los problemas de hinchazón, lo que resultó en grandes mejoras de rendimiento para Gecko.

Cuántica

(feminine)

Quantum es un proyecto de Mozilla que abarca 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, en gran parte incorporadas del proyecto experimental Servo. Quantum también incluye mejoras en la interfaz de usuario y las interacciones.

Firefox 57, lanzado en noviembre de 2017, es la versión inicial con un componente Servo habilitado. Mozilla llama a este y varios lanzamientos futuros "Firefox Quantum".

Antecedentes

En 2012, Mozilla comenzó el proyecto experimental Servo, que es un motor diseñado desde cero con el objetivo de mejorar la simultaneidad y el paralelismo y, al mismo tiempo, reducir 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.

A partir de abril de 2016, Servo necesitó al menos varios años de desarrollo para convertirse en un motor de navegador con todas las funciones, 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.

Componentes

El proyecto Quantum se compone de varios subproyectos.

  • CSS: Sistema de hojas de estilo paralelo de Servo integrado en Gecko. Los parámetros sugieren que las escalas de rendimiento son lineales con el número de núcleos de la CPU. Esto fue lanzado en Firefox 57.
  • Render: La arquitectura de renderización de Servo, llamada WebRender, integrada en Gecko. WebRender reemplaza el modelo de dibujo de modo inmediato con un modelo de modo retenido que es más fácilmente acelerado por la GPU aprovechando la similitud de CSS/DOM a un gráfico de escena. El peor escenario de renderización en pruebas supera los 60 marcos por segundo. Mozilla comenzó a habilitar el nuevo renderizador para seleccionar combinaciones hardware/OS en Firefox 67.
  • 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 el compositor se bloquea no reducirá el proceso de contenido del navegador, el proceso del compositor se puede reiniciar transparentemente sin perder datos del usuario. Esto fue lanzado en Firefox 53.
  • DOM: Impresionantemente inspirado por la arquitectura Constellation de Servo y el motor Presto de Opera, Quantum DOM utiliza hilos programados de cooperación dentro de la DOM para aumentar la capacidad de respuesta sin aumentar el número de procesos y, por lo tanto, el uso de la memoria. El núcleo de este envío en Firefox 57.
  • Flujo: Un paraguas para mejoras de rendimiento visible del usuario impulsado por un equipo que trabaja a través de componentes Gecko. Centrado en mejoras reales de rendimiento de los usuarios en las principales aplicaciones web, principalmente G Suite (ahora llamado Google Workspace) y Facebook. Este trabajo completado y enviado para Firefox 57.
  • Foton: Una actualización de la interfaz de usuario de toda la aplicación, con un fuerte enfoque en mejorar el rendimiento de la interfaz de usuario. Tratado como un proyecto de hermana a Quantum Flow. Esto fue lanzado en Firefox 57.
  • Red: Mejorar el rendimiento de Necko, la capa de redes de Gecko, moviendo más actividad de red fuera del hilo principal, priorización de contexto dependiente de flujos de red, y correr la capa de caché con la red. Esta característica fue lanzada en Firefox 59.

Azul

El proyecto Mozilla Azure es una API de abstracción de gráficos de bajo nivel sin estado utilizada en Firefox. El proyecto tiene varios objetivos, incluida una compatibilidad Direct2D más precisa, una interoperabilidad de estado optimizada y un mejor control 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. Está escrito en C++ y lo usa Servo. El nombre de Azure es una oda al primer 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.

Contenido relacionado

Cronología del hardware informático antes de 1950

MATLAB

Posdata

Más resultados...
Tamaño del texto:
Copiar