Análisis detallado de los aspectos internos

Este es un proceso avanzado que no recomendamos para usuarios nuevos de Linux.

ChromeOS admite la ejecución de código arbitrario dentro de las VMs. Esta es la documentación de bajo nivel sobre esa compatibilidad. Para obtener una vista más fácil de usar, consulta las faq.

Requisitos previos

Funciones del tiempo de ejecución

Deberías esperar que las siguientes funciones funcionen cuando ejecutes tu contenedor de Linux:

Funciones faltantes

  • Decodificación de hardware de video
  • IME

El equipo de ChromeOS adopta un enfoque medido para implementar funciones nuevas con el fin de garantizar que no se vea comprometida la seguridad general del sistema. Consulta las preguntas frecuentes de Crostini para obtener información más detallada que abarque la mayoría de los temas relacionados con el desarrollo de Linux en ChromeOS.

Seguridad

Si bien ejecutar código arbitrario suele ser un riesgo de seguridad, el equipo de ChromeOS cree que el modelo de tiempo de ejecución que emplea Linux en el contenedor de ChromeOS mitiga y contiene lo suficiente ese riesgo de seguridad. La máquina virtual (VM) es el límite de seguridad, y todo lo que está dentro se considera no confiable. La imagen de invitado de VM actual también ejecuta un kernel reforzado personalizado para mejorar aún más la seguridad de los contenedores, pero se considera una función útil en lugar de que se dependa de ella para garantizar la seguridad general del sistema.

En este modelo, el resto del sistema ChromeOS debe permanecer protegido del código arbitrario (malicioso o accidental) que se ejecuta dentro de los contenedores dentro de la VM.

El único contacto con el mundo exterior es a través de crosvm, y cada canal habla con procesos individuales (cada uno de los cuales está muy aislado).

Datos del usuario en el contenedor

Con el cambio a los servicios en la nube, el pensamiento de seguridad actual destaca el hecho de que obtener credenciales de la cuenta (p.ej., tus contraseñas de Google o Facebook) es un vector de ataque más lucrativo que atacar tu computadora de escritorio o laptop. No se equivocan. La solución actual de VM/contenedor de ChromeOS no mejora esto. En pocas palabras, todo lo que se ingresa en el contenedor es responsabilidad del usuario actualmente. Por lo tanto, si ejecutas un contenedor inseguro o comprometido y, luego, escribes tus contraseñas en el contenedor, se pueden robar incluso mientras el resto del sistema ChromeOS permanece seguro.

Persistencia del proceso

Los procesos en VMs y contenedores no sobreviven a la salida (ya que residen en el almacenamiento encriptado del usuario) y se finalizan automáticamente. Tampoco se inician automáticamente cuando se accede (para evitar ataques persistentes) ni se pueden ejecutar automáticamente en el arranque (sin una sesión de acceso), ya que no serían accesibles (ya que están en el almacenamiento encriptado del usuario).

Código ejecutable y grabable

La imagen de disco de la VM de Termina se descarga en la partición con estado grabable como otros componentes de Chrome. Para asegurarte de que no se modifique el contenido, se usa dm-verity. Esto también significa que solo se pueden cargar imágenes firmadas por Google, y la imagen siempre es de solo lectura.

Ataques de hardware

Las vulnerabilidades de Meltdown/Spectre tienen implicaciones para usar VMs de forma segura. Aplicamos correcciones y mitigaciones para asegurarnos de que las VMs no puedan atacar el sistema host ni otras VMs. Consulta la página de la wiki de Chromium OS sobre el estado de vulnerabilidad de Meltdown y Spectre para dispositivos ChromeOS para obtener más detalles.

Lifecycles

Una vez que habilites el contenedor de Linux (que se encarga de instalar todos los demás componentes necesarios, como Termina), el sistema estará listo para usarse.

Si bien estos componentes pueden estar instalados, nada comienza a ejecutarse de inmediato. Cuando sales, todo se apaga y se finaliza, y cuando accedes, nada se reinicia automáticamente.

Cuando ejecutas la app de Terminal o cualquier otra app de Linux que inicia el contenedor, y su contenedor superior aún no se está ejecutando, la VM de Termina se iniciará automáticamente, y el contenedor predeterminado de Linux en ChromeOS (también conocido como Crostini) se iniciará en ese. Esto te permite conectarte al contenedor a través de SSH o SFTP (a través de la app de Archivos).

Cuando cierras todas las aplicaciones visibles, no se apagan las VMs ni los contenedores. Si quieres, puedes detenerlos y reiniciarlos de forma manual, así como generar más contenedores que el predeterminado.

Persistencia de datos

Todas las VMs y los contenedores creados, y los datos dentro de esos contenedores, persistirán en las sesiones del usuario (salida/acceso). Se conservan en el mismo almacenamiento encriptado por usuario que el resto de los datos del navegador.

Si una VM o un contenedor se detiene o finaliza de forma incorrecta (p.ej., pérdida de energía), es posible que se pierdan los datos y necesiten recuperación como cualquier otra cosa en el sistema.

Dispositivos compatibles

Si bien el deseo es que Linux en ChromeOS funcione con todas las Chromebooks, el kernel y las funciones de hardware requeridos limitan dónde se puede implementar. El equipo se centró en la seguridad y la estabilidad del sistema mientras realizaba el portabilidad inversa de las funciones cuando tenía sentido. Esta es un área de esfuerzo continuo.

Compatibilidad actual

Para obtener una lista de los dispositivos compatibles actualmente, consulta Sistemas ChromeOS compatibles con Linux.

Requisitos de hardware

Si bien actualmente no hay una cantidad mínima de RAM, almacenamiento o velocidad de CPU requerida para ejecutar el contenedor de Linux en ChromeOS, cuanto más tengas de cada uno, mejor funcionará el sistema.

Dicho esto, necesitarás una CPU que admita la virtualización de hardware. En las plataformas x86, esto tiene muchos nombres. Intel se refiere a ella como VT-x y VMX. AMD se refiere a ella como AMD-V & SVM.

Sistemas BayTrail

Las Chromebooks que usan BayTrail de Intel no incluyen VT-x. Si bien esta CPU normalmente incluye VMX, la variante en Chromebooks no lo hace y, por lo tanto, lamentablemente, nunca será compatible.

Para verificar si una placa es compatible, busca BayTrail en nuestra lista pública de dispositivos en la columna Platform.

Kernels anteriores

No hay planes para admitir Linux 3.14 ni versiones anteriores. Estos requieren portabilidad inversa de funciones nuevas que son extensas y, a menudo, invasivas. Por ejemplo:

Para verificar si una placa es compatible, busca números de versión inferiores a 3.14 en nuestra lista pública de dispositivos en la columna Kernel.

CPUs ARM de 32 bits

Hacer que las máquinas virtuales funcionen con CPUs ARM de 32 bits es difícil, no es estándar y requiere coordinación con el firmware. Lamentablemente, el firmware de ChromeOS no suele configurar las extensiones. Por lo tanto, estos sistemas no son compatibles.

Para verificar si una placa es compatible, busca arm en nuestra lista pública de dispositivos en la columna Kernel ABI.