Arquitectura del navegador Chrome

Arquitectura de navegador común

Puede ser un proceso con muchos subprocesos diferentes, o puede ser un proceso con varios subprocesos que se comunican a través de IPC.

Un proceso con muchos hilos diferentes

                        image.png

Proceso de múltiples hilos que se comunican a través de IPC

                            image.png

Atencion

Estas arquitecturas diferentes son detalles de implementación. No hay una especificación estándar sobre cómo construir un navegador web. Un método de navegador puede ser completamente diferente de otro

 

Arquitectura del navegador Chrome

 Arquitectura del sitio web oficial de Chrome (18 años)

                        image.png

 El último diagrama de arquitectura de Chrome (19 años)

image.png

Ventajas y desventajas del modelo multiproceso.

Ventaja

  • Estabilidad, el bloqueo de una página no afectará a otras páginas, ya que se utilizan diferentes procesos de representación
  • Seguridad y sandboxing, el navegador puede seleccionar ciertos procesos a partir de ciertas funciones. Por ejemplo, el navegador Chrome restringe el acceso a los archivos a los procesos que procesan cualquier entrada del usuario, como los procesos de representación.

Desventajas

  • Mayor uso de recursos. Como cada proceso contendrá una copia de la infraestructura común (como V8, que es el motor JavaScript de Chrome), esto significa que el navegador consumirá más recursos de memoria.
  • Arquitectura más compleja. Problemas como un alto acoplamiento y escasa escalabilidad entre los módulos del navegador

 

Arquitectura orientada a servicios

Para resolver una serie de problemas provocados por la arquitectura anterior, ya en 2016, el equipo oficial de Chrome utilizó el concepto de "Arquitectura Orientada a Servicios" (SOA) para diseñar una nueva arquitectura de Chrome. Los diversos módulos originales se reconstruirán en servicios independientes (Servicio), los servicios de acceso (Servicio) deben usar una interfaz definida, a través de IPC para comunicarse, cada servicio (Servicio) puede ejecutarse en un proceso separado, y puede Dividir fácilmente en diferentes procesos o agregar en un solo proceso. Cuando Chrome se ejecuta en hardware potente, puede dividir cada servicio en diferentes procesos para proporcionar una mayor estabilidad, pero si está en un dispositivo con recursos limitados, Chrome integrará los servicios en uno Para ahorrar memoria.

Diagrama de arquitectura del servicio del sitio web oficial (18 años)

image.pngDiagrama del modelo de proceso de "arquitectura orientada al servicio" de Chrome (más reciente)

image.png

Diagrama del modelo de proceso de la "arquitectura orientada a servicios" de Chrome (en dispositivos con recursos limitados)image.png

Proceso de Chrome

Proceso principal

Proceso del navegador, proceso de renderizado, proceso de GPU, proceso de red, proceso de complemento

 

  • Proceso del navegador

Principalmente responsable de la visualización de la interfaz, la interacción del usuario, la gestión de subprocesos, al tiempo que proporciona almacenamiento y otras funciones. Controla la parte "cromada" de la aplicación, incluida la barra de direcciones, los marcadores, los botones hacia atrás y hacia adelante, y también maneja las partes invisibles y privilegiadas del navegador web, como las solicitudes de red y el acceso a archivos.

  • Proceso de renderizado

La tarea principal es convertir HTML, CSS y JavaScript en páginas web con las que los usuarios puedan interactuar. El motor de composición tipográfica Blink y el motor JavaScript V8 se están ejecutando en este proceso. De manera predeterminada, Chrome creará un proceso de representación para cada etiqueta Tab. Por razones de seguridad, el proceso de renderizado se ejecuta en modo sandbox.

  • Proceso de GPU

De hecho, cuando Chrome se lanzó por primera vez, no había proceso de GPU. La intención original de usar GPU es lograr el efecto de CSS 3D. Después de eso, la página web y la interfaz de la interfaz de usuario de Chrome han optado por usar GPU para dibujar, lo que hace que GPU sea una demanda común de los navegadores. Finalmente, Chrome también introdujo procesos de GPU en su arquitectura multiproceso.

  • Proceso de red

Es el principal responsable de cargar los recursos de red de la página. Anteriormente se ejecutaba como un módulo en el proceso del navegador. Solo recientemente se independizó y se convirtió en un proceso separado.

  • Proceso de complemento

Es el principal responsable del funcionamiento del complemento. Debido a que el complemento es fácil de bloquear, debe aislarse mediante el proceso del complemento para garantizar que el proceso del complemento no afecte al navegador ni a la página.

  • proceso de utilidad

A veces, el proceso principal del navegador debe hacer algunas cosas "peligrosas", como la decodificación de imágenes y la descompresión de archivos. Si estas operaciones "peligrosas" fallan, provocará un bloqueo anormal de todo el proceso principal, que no queremos ver. Entonces, Chromium diseñó un mecanismo para el proceso de utilidad. Cuando el proceso principal necesita temporalmente realizar algunas tareas inconvenientes, puede iniciar un proceso de utilidad para reemplazar el proceso principal, que se comunica a través de mensajes IPC.

Si actualmente hay otros procesos en el entorno con recursos suficientes ,

  • Proceso de IU
  • Proceso almacenado
  • Proceso del dispositivo
  • Proceso de audio
  • Proceso de video
  • Proceso de perfil
  • ........

Desarrollo

Dada la complejidad de la arquitectura actual, se estima que llevará varios años completar la transición a una arquitectura orientada a servicios. Sin embargo, el desarrollo de Chrome es un proceso gradual, y se agregarán nuevas características un poco, lo que también significa que siempre podemos ver nuevos cambios en Chrome.

Atencion

⚠️ El último navegador Chrome está actualmente en una arquitectura orientada al servicio, podemos abrir el administrador de tareas de Chrome para echar un vistazo

image.png

Enlace de referencia

Principio de funcionamiento y tiempo de Geek Time Browser

Sitio web oficial de Chrome  https://developers.google.com/web/updates/2018/09/inside-browser-part1

Supongo que te gusta

Origin www.cnblogs.com/suihang/p/12718528.html
Recomendado
Clasificación