Ubuntu

¿Qué es Linux embebido? Parte I

«Hola a todos los que usan minix:

Estoy haciendo un sistema operativo (gratuito) (solo un hobby, no será tan grande y profesional como GNU) para 386 (486) clones de AT. […] NO es portátil (usa 386 tareas de conmutación, etc.), y probablemente nunca admitirá nada más que discos duros AT, ya que eso es todo lo que tengo :-(.» [1]

Lo anterior es un extracto del anuncio original de Linus Torvalds de lo que se conoció mundialmente como Linux. sistema operativo (SO), con fecha de agosto de 1991. En retrospectiva, es inconcebiblemente modesto ahora que estamos en una posición mucho mejor para apreciar el alcance revolucionario total de su cargo. En la actualidad, más del 96,4% del millón de aplicaciones de servidor principales se ejecutan en Linux. [2]. En las nubes públicas, el 90% de las cargas de trabajo utilizan Linux como su sistema operativo, siendo Ubuntu la distribución de Linux más popular. [3], [4]. A pesar de debutar como sistema operativo de propósito general (GPOS) para el hardware basado en x86, Linux se trasladó más allá de los servidores web y desde entonces ha tenido una adopción generalizada para los sistemas integrados.

Esta serie de blogs de dos partes tiene como objetivo proporcionar al lector una amplia descripción de temas que abarcan el mundo de Linux, los sistemas integrados y el Internet de las cosas (IoT) en general. En la parte I de esta serie de blogs, comenzaremos echando un vistazo al ecosistema integrado, seguido de una explicación del papel de Linux en él, y concluiremos explicando la razón detrás de la creciente popularidad del SO en los sistemas integrados. En la parte II, nos centraremos en los desafíos más urgentes que enfrentan las empresas hoy en día dentro del espacio integrado. Empecemos.

El paisaje incrustado

Aunque aparece en múltiples formas y formas, un sistema integrado normalmente realiza una función dedicada, tiene recursos limitados y comprende un motor de procesamiento. A riesgo de simplificar demasiado las cosas, podemos delinear tres categorías amplias con respecto al tamaño de un sistema Linux integrado: [5]

  • Sistemas de pequeño tamaño, que comprenden una CPU de baja potencia con al menos 2 MB de memoria de solo lectura (ROM) y 4 MB de Memoria de acceso aleatorio (RAM).
  • Sistemas de tamaño medio, con alrededor de 32 MB de ROM, 64 MB de RAM y una CPU de potencia media.
  • Sistemas integrados de gran tamaño, con CPU potentes y una mayor huella de memoria.

Abarcando prácticamente todas las categorías de gasto de los consumidores, desde la administración de energía automotriz hasta la del hogar, la presencia de Linux en los sistemas integrados es omnipresente.

[6]

Sin embargo, este no siempre ha sido el caso, ya que el progreso en la tecnología de semiconductores ha ayudado sustancialmente a impulsar la adopción de Linux en el mundo embebido. Varias razones explican este crecimiento. Entre ellos, los precios de la memoria flash han disminuido con el tiempo, proporcionando el almacenamiento masivo necesario para el sistema de archivos de Linux. [7]. De manera similar, el hardware System on a Chip (SoC) de bajo consumo y tamaño reducido se está convirtiendo cada vez más en la principal opción de procesador de los desarrolladores. Como consecuencia, prácticamente todos los sistemas integrados son capaces de ejecutar Linux, ¡y lo hacen!

¿Qué es Linux embebido?

Ahora estamos en una mejor posición para analizar la pregunta inicial: «¿Qué es Linux integrado?»

Hay tres niveles en los que podemos intentar una respuesta:

  • El sistema
  • El kernel (es decir, el núcleo del sistema operativo)
  • La distro

El sistema

Intuitivamente, un sistema Linux integrado simplemente denota un sistema integrado que se ejecuta en el kernel de Linux. Centrémonos en las dos piezas restantes.

El kernel de Linux

Linus nunca envió una «versión incorporada» del kernel de Linux. Como desarrollador integrado, es posible que no necesite un kernel personalizado para su sistema y, en su lugar, puede confiar en una versión oficial. Sin embargo, a menudo es posible que necesite un kernel configurado para admitir su hardware personalizado, ya que la configuración de compilación del kernel que se encuentra en un dispositivo integrado generalmente varía de la de un servidor o estación de trabajo.

La distro (o distribución)

La tercera perspectiva a considerar es la de una distribución. Aquí, «distribución» es un término general que generalmente comprende paquetes de software, servicios y un marco de desarrollo además del propio sistema operativo. Ubuntu Core, el sabor de Ubuntu para dispositivos integrados, es un ejemplo de una distribución de Linux integrada.

Linux integrado frente a RTOS

¿Por qué utilizar Linux integrado?

La siguiente pregunta que surge es, ¿qué hace que Linux sea el candidato perfecto para un sistema integrado? Desde la escalabilidad hasta el soporte para desarrolladores y las herramientas, existen innumerables razones por las que esto es cierto. Una discusión en profundidad para cada uno requiere su propio libro. Aquí, nos limitaremos a mencionar algunos destacados:

  • Soporte de hardware
  • Redes
  • Modularidad
  • Soporte comercial

Soporte de hardware

Linux se ejecuta en arquitecturas ARM, x86, MIPS y PowerPC de 32 y 64 bits. Mientras que un procesador de 32 bits es capaz de almacenar 232 (un bit es un 0 o un 1, por lo tanto, hay 2 combinaciones posibles) valores, un procesador de 64 bits puede almacenar más direcciones de memoria. Los procesadores por debajo de 32 bits no pueden ejecutar Linux, lo que descarta los sistemas integrados tradicionales. Para una discusión más profunda sobre el soporte de hardware, puede consultar el rico ecosistema de plataformas para Ubuntu Core aquí.

Redes

Todos somos conscientes de que las capacidades de red se esperan listas para usar en la mayoría de los productos de consumo. Afortunadamente, Linux admite una gran cantidad de protocolos de red. Ya sea que su proyecto de Linux integrado requiera WiFi, banda ancha móvil (WWAN) o conectividad Ethernet, los servicios de red del sistema como NetworkManager son compatibles con Linux. Puede instalar fácilmente NetworkManager en Ubuntu Core siguiendo esta guía.

Modularidad

La tercera razón detrás de la prevalencia de Linux en los sistemas integrados es su modularidad. Con varios paquetes de software que se unen para formar una pila de SO Linux, los desarrolladores pueden personalizarla para cualquier propósito. Por ejemplo, las opciones de personalización para Ubuntu Core incluyen la configuración de hardware y software, y kernels específicos.

Soporte comercial

Otra consideración crucial, pero a veces pasada por alto, para elegir Linux para sus sistemas embebidos es la disponibilidad de soporte comercial.

Los sistemas de compilación mantenidos por la comunidad y disponibles de forma gratuita, como Yocto y Buildroot, permiten a los desarrolladores crear distribuciones de Linux personalizadas para la mayoría de las arquitecturas de hardware. Desafortunadamente, los diversos desafíos que los proyectos comunitarios no abordan seguramente saldrán a la superficie cuando se envíe Linux integrado en producción. Sin embargo, esta brecha se llena fácilmente con proveedores de Linux integrado que brindan soporte y experiencia de nivel empresarial, lo que reduce sustancialmente el tiempo de comercialización.

No solo es costoso para una empresa proporcionar su propio conjunto de correcciones, parches de seguridad y pruebas de hardware, sino que también distrae de su negocio principal. Afortunadamente, los expertos en kernel de Canonical, el patrocinador comercial de Ubuntu, están aquí para ayudar. El equipo de Canonical crea, parchea y mantiene Ubuntu Core para dispositivos integrados.

Si está interesado, en este seminario web o en este documento técnico se encuentra disponible una discusión centrada en los beneficios y desventajas que esperan a los desarrolladores integrados al implementar su propia distribución de Linux en lugar de confiar en una solución con soporte comercial.

Conclusión

A estas alturas, los lectores deberían estar familiarizados con el papel que juega Linux dentro del panorama integrado. En la parte I de esta serie de blogs de dos partes, vimos cómo Linux, con su presencia bien establecida entre servidores y nubes, se está convirtiendo rápidamente en el sistema operativo de facto para el mundo integrado. Existen razones obvias para elegir Linux para un sistema integrado, desde el soporte de hardware y protocolo de red hasta su amplia capacidad de configuración y modularidad. Puede obtener una apreciación de cómo Ubuntu Core, la versión integrada del sistema operativo de servidor más ampliamente implementado en Internet [8], está estableciendo nuevos estándares para Linux embebido navegando a través de su hoja de datos.

En la parte II de esta serie de blogs, discutiremos cómo los desarrolladores deben prestar mucha atención a los problemas de seguridad y capacidad de actualización si quieren aprovechar los beneficios del crecimiento explosivo de IoT. Te veo allí.

Leave a Comment

You may also like

Más