Introducción Ubuntu Embebido

Tomado de https://ubuntu.com/blog/what-is-embedded-linux

“ Hola a todos los que usan minix:

 Estoy haciendo un sistema operativo (gratuito) (solo un pasatiempo, no será grande y profesional como gnu) para clones 386 (486) AT. […] NO es portátil (utiliza el cambio de tareas 386, 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 llegó a conocerse mundialmente como el sistema operativo (SO) Linux , con fecha de agosto de 1991. En retrospectiva, es inconcebiblemente modesto ahora que estamos en una posición mucho mejor para apreciar el plena amplitud revolucionaria 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 sistema operativo, siendo Ubuntu la distribución de Linux más popular [3], [4] . A pesar de debutar como un sistema operativo de propósito general (GPOS) para hardware basado en x86, Linux fue más allá de los servidores web y desde entonces ha experimentado una adopción generalizada para los sistemas integrados.

Esta serie de blogs de dos partes tiene como objetivo brindar al lector una visión general amplia de temas que abarcan el mundo de Linux, los sistemas integrados y la 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 lógica detrás de la creciente popularidad del sistema operativo en los sistemas integrados. En la parte II , nos centraremos en los desafíos más apremiantes 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 generalmente realiza una función dedicada, tiene recursos limitados y comprende un motor de procesamiento. A riesgo de simplificar demasiado las cosas, podemos delinear tres amplias categorías con respecto al tamaño de un sistema Linux embebido: [5]

  • Sistemas de pequeño tamaño, que comprenden una CPU de bajo consumo con al menos 2 MB de memoria de solo lectura (ROM) y 4 MB de memoria de acceso aleatorio (RAM) .
  • Sistemas de tamaño mediano, con alrededor de 32 MB de ROM, 64 MB de RAM y una CPU de potencia media.
  • Sistemas embebidos de gran tamaño, con potentes CPU y una huella de memoria más grande.

Abarcando prácticamente todas las categorías de gasto de los consumidores, desde la automoción hasta la gestión energética 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 estimular la adopción de Linux en el mundo integrado. Varias razones explican tal 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] . Del mismo modo, 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 integrado?

Ahora estamos en una mejor posición para ver la pregunta inicial, "¿Qué es Linux incorporado?"

Hay tres niveles en los que podemos intentar una respuesta:

  • El sistema
  • El núcleo (es decir, el núcleo del sistema operativo)
  • la distribución

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 núcleo de Linux

Linus nunca envió una "versión integrada" 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é usar Linux embebido?

La siguiente pregunta que surge es, ¿qué hace que Linux sea el candidato perfecto para un sistema integrado? Desde la escalabilidad hasta el soporte y las herramientas para desarrolladores, 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 2 32 (un bit es un 0 o un 1, por lo que hay 2 combinaciones posibles) valores, un procesador de 64 bits puede almacenar más direcciones de memoria. Los procesadores de menos de 32 bits no son capaces de 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 muy conscientes de que se esperan capacidades de red 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 incorporado requiera Wi-Fi, 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 personalizarlo 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 que a veces se pasa por alto al elegir Linux para sus sistemas integrados 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 están obligados a salir a la superficie cuando se envía Linux integrado a producción. Sin embargo, esta brecha la llenan fácilmente los 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 la atención 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 construye, 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 las desventajas que les esperan a los desarrolladores integrados cuando implementan su propia distribución de Linux en lugar de confiar en una solución compatible comercialmente .

Conclusión

A estas alturas, los lectores deberían sentirse familiarizados con el papel que desempeña 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. Hay razones obvias para elegir Linux para un sistema integrado, desde 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 implementado en Internet [8] , está estableciendo nuevos estándares para Linux integrado al navegar 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 actualización si quieren obtener los beneficios del crecimiento explosivo de IoT. Te veo allí.

 

Palabras clave: 
Categoría: