Red de conocimiento informático - Conocimiento informático - Desarrollo de Linux en dispositivos integrados para dispositivos integrados

Desarrollo de Linux en dispositivos integrados para dispositivos integrados

Linux está creciendo de manera constante en el desarrollo integrado. Debido a que Linux usa la GPL (consulte Recursos más adelante en este artículo), cualquier persona interesada en personalizar Linux en una PDA, computadora portátil o dispositivo portátil puede descargar su kernel y sus aplicaciones de forma gratuita desde Internet y comenzar a migrar o desarrollar. Muchas variantes de Linux se adaptan al mercado integrado/en tiempo real. Estas variantes incluyen RTLinux (Linux en tiempo real), uclinux (Linux para dispositivos que no son MMU), Montavista Linux (distribución de Linux para ARM, MIPS y PPC), ARM-Linux (Linux en ARM) y otros sistemas Linux. p>

El desarrollo de Linux integrado implica tres capas principales: el cargador de arranque, el kernel de Linux y la interfaz gráfica de usuario o GUI. El gestor de arranque suele ser el primer código que se ejecuta en cualquier hardware. En los sistemas tradicionales, como las computadoras de escritorio, el cargador de arranque generalmente se carga en el registro de arranque maestro (MBR) o en el primer sector del disco donde se encuentra Linux. Normalmente, en una computadora de escritorio u otro sistema, el BIOS entrega el control al cargador de arranque.

El software especializado puede interactuar directamente con el dispositivo de memoria flash en el sistema remoto e instalar el cargador de arranque en una ubicación específica de la memoria flash. Los dispositivos de memoria flash son chips especiales que funcionan como dispositivos de almacenamiento en el sentido de que almacenan información de forma persistente, es decir, su contenido no se borra al reiniciar.

Algunos tipos de dispositivos integrados tienen un pequeño código de inicio (basado en unos pocos bytes de instrucciones) que inicializarán ciertas configuraciones de DRAM y habilitarán el puerto serie (o USB o Ethernet) en la red de destino para comunicarse. el programa anfitrión. El programa host o el cargador pueden usar esta conexión para transferir el cargador de arranque al destino y escribirlo en la memoria flash. La configuración de la cadena de herramientas crea un entorno de compilación en el host que compila el kernel y las aplicaciones para ejecutarlas en el destino, ya que el nivel de ejecución binaria del hardware de destino puede no ser compatible con el host.

Una cadena de herramientas consta de un conjunto de componentes que se utilizan para compilar, ensamblar y vincular núcleos y aplicaciones. Estos componentes incluyen Binutils, una colección de utilidades para manipular archivos binarios. g - Compilador GNU C. glibc: la biblioteca C con la que se vincularán todas las aplicaciones de usuario. Los kernels y otras aplicaciones que evitan el uso de funciones de la biblioteca C se pueden compilar sin esta biblioteca. La cadena de herramientas de compilación crea un entorno entre compiladores. Un compilador nativo compila instrucciones para el mismo procesador que la máquina local. Un compilador cruzado se ejecuta en un procesador pero compila instrucciones para otro procesador. Restablecer una cadena de herramientas entre compiladores no es una tarea sencilla: implica descargar el código fuente, parchear, configurar, compilar, configurar encabezados, instalar y más. Además, un proceso de compilación tan exhaustivo requiere mucha memoria y disco duro. Sin suficiente memoria y espacio en el disco duro, pueden surgir muchos problemas durante la fase de compilación debido a problemas de dependencia, configuración o configuración del archivo de encabezado.

Así que poder obtener binarios precompilados de Internet es algo bueno (pero también tiene sus inconvenientes, la mayoría de los cuales se limitan a sistemas basados ​​en ARM, pero eso cambiará tarde o temprano). Las cadenas de herramientas precompiladas populares incluyen las proporcionadas por Compaq (Familiar Linux), LART (LART Linux) y Embedian (basado en Debian, pero no relacionado con Debian), todos para plataformas basadas en ARM. Desde la perspectiva del usuario, la interfaz gráfica de usuario (GUI) es uno de los aspectos más críticos de un sistema: es a través de la GUI que los usuarios interactúan con el sistema. Por lo tanto, la interfaz gráfica de usuario debe ser fácil de usar y muy confiable.

Pero también debe tener en cuenta la memoria para ejecutarse sin problemas en dispositivos integrados pequeños y con memoria limitada. Por lo tanto debe ser liviano y cargarse rápidamente.

Otro aspecto importante a considerar es la concesión de licencias. La licencia de algunas distribuciones de GUI permite su uso gratuito, incluso en algunos productos comerciales. Mientras que otras licencias requieren que pagues regalías si deseas incorporar una GUI a tu proyecto.

En última instancia, la mayoría de los desarrolladores probablemente elegirán XFree86 porque les proporciona un entorno familiar en el que utilizar sus herramientas favoritas. Pero las interfaces gráficas de usuario más nuevas en el mercado (como Nano-X y Trolltech QT/Embedded de Century Software) compiten con X en el espacio de Linux integrado, principalmente porque consumen menos recursos, se ejecutan rápidamente y admiten herramientas personalizadas de Windows.