¿Qué sistema operativo Linux es mejor para un sistema integrado?

Escribiré aquí sobre cómo seleccionamos el sistema operativo Linux para nuestra plataforma integrada.

Diseñamos una plataforma de hardware integrada basada en el procesador TI AM335x. Tuvimos que seleccionar el sistema operativo Linux para este objetivo. Generalmente habrá tres opciones.

  • El proveedor de chips proporciona el sistema operativo Linux personalizado para su hardware de destino. En nuestro caso, TI proporciona un sistema operativo Linux personalizado para la plataforma AM335x
  • Uso de distribuciones de Linux de código abierto: hay muchas distribuciones de Linux de código abierto, debemos verificar cuál es compatible con nuestro hardware de destino.
  • Uso de distribuciones comerciales de Linux como Montavista, WindRiver, TimeSys, etc.

Entonces, ¿cómo avanzamos con la selección, cuáles son nuestros CTQ para la selección? ¿Cuáles son los pros y los contras de lo anterior?

Las grandes empresas como TI, Free scale proporcionan su propio Linux personalizado en sus plataformas. Personalizan, afinan y realizan un cierto nivel de pruebas en su hardware. Proporcionan soporte en términos de lanzamientos, parches, arreglos, etc. También tienen su equipo de soporte de Linux, soporte de llamadas, soporte interno, etc. Por lo tanto, si su proveedor de chips proporciona Linux, puede ser seguro hacerlo.

Si está creando un gran producto que se vende en grandes cantidades, puede invertir mucho dinero, entonces puede elegir distribuciones comerciales de Linux como Windriver, MVL, TimeSys, etc. Realmente cobran mucho dinero. En general, las grandes empresas los eligen. Proporcionan un servicio completo en términos de agregar nuevos módulos de kernel, parchar el kernel, actualizar la versión del kernel, proporcionar un marco de desarrollo de aplicaciones y lo que no. Por lo tanto, es sin problemas para los desarrolladores. Si alguien descubre una falla de seguridad en alguna versión del kernel, se encarga de liberar y parchar el kernel rápidamente y usted como desarrollador no tiene que entrar en pánico.

Hay distribuciones de Linux de código abierto que puede elegir. Trabajé en el proyecto Yocto, que es básicamente un marco para crear su propia distribución de Linux para sus objetivos. Yocto admite n número de plataformas de hardware. Actualmente, Yocto es muy popular en Embedded Community. Debe esforzarse en aprender el marco de Yocto. Además de Yocto, uso OpenSuse en mi Raspberry PI. También tiene Linux desde cero para construir su propio Linux desde cero. Si usa Linux de código abierto, debe ocuparse de compilar, parchar, agregar nuevos módulos de kernel, solucionar cualquier problema y también tendrá una curva de aprendizaje para comprender las cosas.

En mi caso, después de analizar todas las opciones anteriores, decidimos utilizar TI Linux. ¡No estábamos listos para gastar mucho dinero en WindRiver Linux y tampoco teníamos el tiempo suficiente para aprender Yocto Project!

Solo tiene que averiguar su opción en función de los requisitos del proyecto.

Si desea utilizar Open Source, puede buscar en Yocto Project.

Hay dos maneras: una persona piensa acerca de la distribución más estable y otras ponderadas. Para los sistemas integrados, puede optar por cualquier distribución, ya que se siente cómodo. openSUSE leap 42.2 es una distribución estable y Ubuntu 16.04 es ligero. En lugar de centrarse en la distribución de Linux, vaya a través de los comandos, obtenga la idea del archivo y los elementos internos de Linux más importantes como IPC, hilos y todo.

No será una distribución de la que hayas oído hablar, lo más probable.

Los sistemas integrados generalmente se ejecutan sin cabeza y no ejecutan aplicaciones de escritorio normales. La mayor parte del código en una distribución de escritorio es completamente irrelevante, por lo que no lo coloca allí.

Si eres una empresa pequeña, probablemente comiences con OpenWRT, Buildroot o Gentoo, y construyas tu propia distribución a partir de eso. Si tienes mucho dinero, puedes ir con Montavista. Si su dispositivo va a tener una pantalla táctil, Android OSP podría ser una buena opción.

Sin embargo, el concepto más importante para esto es el de una construcción hermética. De alguna manera, debe asegurarse de que el código que envía en el sistema integrado no tiene absolutamente nada que ver con el sistema operativo en sus máquinas de desarrollo. Esta es la razón principal para no usar una distribución de escritorio.