Ejecutar varios sistemas operativos en la misma CPU integrada: ¿cómo pueden los fabricantes de equipos originales superar la crisis de escasez de chips?

A medida que avanza la tecnología, especialmente en los sectores automovilístico, de la electrónica de consumo y médico, los chips se integran en casi todos los aspectos de la vida cotidiana, desde el infoentretenimiento automovilístico hasta las pantallas quirúrgicas inteligentes para quirófanos. Debido a la pandemia, la ralentización de la fabricación de semiconductores provocó una escasez de chips que se prevé que termine a finales de 2023. Sin embargo, el problema ha continuado e interferido en la producción de tecnología común. A medida que más países levantan las restricciones y la economía se recupera, los fabricantes de dispositivos integrados y otras tecnologías también pueden volver a la normalidad. Pero las condiciones posteriores a la pandemia dejaron una escasez de chips, lo que limitó la capacidad de los fabricantes para fabricar y distribuir productos. Para los ingenieros, los gestores de productos y los desarrolladores, esto puede parecer un obstáculo difícil de superar, pero existen alternativas: la virtualización y los contenedores. Ambas soluciones se pueden utilizar en sistemas Linux integrados para proporcionar soporte a múltiples sistemas operativos y mantener los plazos de implementación de las aplicaciones según lo previsto.

Contenedores y Linux integrado

El uso de un entorno contenedorizado en Linux integrado es diferente al de sus homólogos de escritorio debido a los recursos limitados de los sistemas integrados. Los contenedores se comercializan como una opción ligera y más flexible que el hipervisor, y los desarrolladores pueden aislar las aplicaciones de otras que se ejecutan en el mismo sistema. Aunque no son lo mismo que chroot, los contenedores en Linux son similares en el sentido de que los procesos están aislados de otras aplicaciones y proporcionan a las aplicaciones un espacio de nombres, memoria y recursos de red dedicados. Los contenedores están aislados de los demás, pero pueden comunicarse entre sí mediante su API. Esta comunicación entre contenedores puede estar sujeta a políticas de seguridad muy detalladas (aproximadamente comparables a un cortafuegos en las tecnologías de red).

En el desarrollo, los contenedores son mucho más prácticos y versátiles que las máquinas virtuales. Un desarrollador puede crear un contenedor e implementarlo en varios sistemas, incluido su entorno de desarrollo integrado local o el hardware integrado de destino. Las configuraciones del contenedor y la configuración del entorno personalizado se incluyen en el paquete, por lo que solo es necesario implementar el contenedor. En otras palabras, ya no es necesario configurar individualmente el dispositivo de destino después de implementar la aplicación. Lo mismo se puede hacer con un sistema Linux integrado en chipsets, emuladores y dispositivos.

Otra ventaja de los contenedores es que se pueden crear y eliminar según sea necesario, por lo que su mantenimiento es mucho más sencillo. En lugar de gestionar la aplicación con actualizaciones instaladas, se puede eliminar un contenedor de aplicaciones y volver a crearlo para cada nueva versión, actualización o parche. Esta ventaja, que supone un ahorro de tiempo, ha convertido a los contenedores en la opción preferida de muchos ingenieros de aplicaciones y equipos de desarrollo en los que se implementan múltiples sistemas operativos, aplicaciones y versiones.

Para los fabricantes que trabajan con Linux integrado, los contenedores pueden ayudar a aliviar la lucha por la escasez de chips al proporcionar una solución flexible para la implementación de aplicaciones. Sin embargo, para alojar varios sistemas operativos, los contenedores se utilizan junto con hipervisores o virtualización.

Hipervisor, máquinas virtuales y Linux integrado

Aunque hay muchas razones para utilizar contenedores en el desarrollo, algunos fabricantes de equipos originales siguen prefiriendo la virtualización. Una desventaja de los contenedores es que comparten recursos con el sistema operativo subyacente, por lo que deben diseñarse para cada sistema operativo. La virtualización es beneficiosa para los desarrolladores que tienen múltiples aplicaciones que deben ejecutarse en sistemas operativos individuales. Los desarrolladores diseñan y prueban aplicaciones utilizando un entorno virtualizado para emular cada dispositivo de destino y su sistema operativo.

La virtualización permite que las aplicaciones se ejecuten en instancias de hardware abstractas, por lo que resulta beneficioso si los desarrolladores tienen una única aplicación que debe interactuar con el sistema operativo como si se estuviera ejecutando en hardware dedicado. Esto puede ser un poco más «engorroso» en términos de uso de recursos, pero sigue permitiendo a los desarrolladores ejecutar varios sistemas operativos en un solo dispositivo. Dado que los chips son actualmente limitados, supone una gran ventaja para los fabricantes que luchan por cumplir los plazos de implementación sin el hardware necesario para sus pruebas tradicionales de ingeniería y control de calidad.

En Linux integrado, la máquina virtual basada en kernel (KVM) se utiliza habitualmente para admitir la virtualización. KVM permite que los entornos virtualizados se ejecuten en el mismo hardware físico y ya forma parte nativa del kernel de Linux, lo que proporciona a los desarrolladores una solución para ejecutar instancias de cada máquina virtual con su propia memoria, CPU y recursos de red. 

Las máquinas virtuales se utilizan además de los contenedores cuando se necesitan varios sistemas operativos. Un problema subyacente de los contenedores es que la versión del núcleo del sistema operativo debe ser la misma para todos los contenedores compatibles; por ejemplo, así es como se puede seguir ejecutando el contenedor Android sobre el sistema operativo Linux integrado. En este complicado escenario y con el fin de superar estas limitaciones, los fabricantes de equipos originales a veces utilizan máquinas virtuales para virtualizar el hardware y, a continuación, implementan contenedores configurados para un sistema operativo específico que se ejecuta en instancias individuales. Los desarrolladores obtienen lo mejor de ambos mundos, ya que se pueden ejecutar varios sistemas operativos utilizando un hipervisor y, a continuación, se pueden utilizar contenedores para implementar aplicaciones aisladas.

¿Cómo ayudan la virtualización y los contenedores durante la escasez de chips?

Seha informado deque la escasez de chips podría prolongarse hasta 2023. Esto significa que los desarrolladores de aplicaciones destinadas a sistemas integrados deben encontrar formas de continuar con el desarrollo de productos con menos chips disponibles para realizar pruebas. La tecnología de máquinas virtuales y contenedores permite probar aplicaciones en múltiples sistemas operativos en un único dispositivo físico.L4B Softwaretrabaja con ambas tecnologías para que los fabricantes puedan cumplir con los plazos de desarrollo y dar soporte a las aplicaciones integradas mientras continúe la escasez de chips.

Contáctenos