Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo elegir herramientas de desarrollo de Linux integradasSin embargo, requisitos como la compilación cruzada, el desarrollo/depuración de controladores de dispositivos y el tamaño más pequeño son desafíos serios que enfrentan los desarrolladores de Linux integrado. Para abordar estos desafíos, han surgido herramientas especializadas para el desarrollo de Linux integrado y están creciendo rápidamente. Sin embargo, muchas de estas herramientas no son compatibles con plataformas que no sean X86 y no están bien documentadas ni integradas. Otros entornos de desarrollo no pueden lograr completamente el alto grado de integración entre componentes. Por lo tanto, para aprovechar al máximo estos componentes de software gratuito para crear un entorno de desarrollo multiplataforma completo, los desarrolladores deben ser conscientes de que esto requiere importantes esfuerzos de investigación, implementación, capacitación y mantenimiento. Linux es uno de los pocos sistemas operativos que puede ejecutarse en dispositivos integrados y servir como entorno de desarrollo. Esta característica permite a los desarrolladores desarrollar, depurar y probar aplicaciones y bibliotecas en hardware de uso común, como sistemas de escritorio X86, antes de migrar a ese sistema de desarrollo, lo que reduce la dependencia de plataformas de referencia estándar y emuladores de conjuntos de instrucciones. Esta técnica sólo funciona para aplicaciones y bibliotecas, no para controladores de dispositivos, porque el desarrollo de controladores de dispositivos se basa en la arquitectura de Linux. Las herramientas de desarrollo de controladores de dispositivos están disponibles en la comunidad de código abierto y en algunos proveedores de software. Debido a que los controladores de dispositivos están más cerca del hardware que las aplicaciones estándar, son más difíciles de desarrollar. Afortunadamente, los sistemas de escritorio Linux pueden aprovechar herramientas que Windows y otros sistemas operativos no aprovechan. Es posible que los desarrolladores con suficiente experiencia en el desarrollo de controladores de dispositivos ya estén acostumbrados a utilizar Linux como sistema de desarrollo de escritorio. El rápido crecimiento de Linux y la proliferación de soluciones de escritorio plantea una pregunta importante: ¿Cómo se ejecutará la solución de herramienta elegida en diferentes distribuciones de Linux? ¿Dependen de la configuración del software de la plataforma anfitriona? Algunas herramientas de Linux proporcionan un entorno de desarrollo independiente de la plataforma host que incluye un conjunto de aplicaciones, bibliotecas y utilidades que admiten herramientas de desarrollo. Este enfoque aísla casi por completo el entorno de desarrollo de la configuración del host, por lo que el host puede ser cualquier sistema distribuido Linux y cualquier actualización y modificación no afectará la funcionalidad del entorno de desarrollo. La principal desventaja de este enfoque es el mayor requisito de espacio de almacenamiento (~200 MB), ya que efectivamente equivale a un pequeño sistema de distribución de Linux. Herramientas disponibles El desarrollo de productos Linux integrado pasa por varias etapas, incluida la configuración y construcción de un sistema operativo Linux base para la placa de destino; depuración de aplicaciones, bibliotecas, kernels y controladores de dispositivos/módulos de kernel y optimización, prueba y verificación de la solución final; Hay cientos de herramientas de desarrollo de código abierto disponibles. Siempre que los desarrolladores estén dispuestos a dedicar tiempo y esfuerzo a investigar, implementar y mantener una variedad de herramientas, podrán encontrar una solución completa para casi cualquier tarea de desarrollo. Cuando se trata de depurar aplicaciones y bibliotecas de Linux, GNU Debugger (GDB) ha sido el estándar durante varios años. Es un programa de línea de comandos respaldado por varias interfaces gráficas de usuario diferentes, cada una de las cuales proporciona control de depuración de una manera diferente. Aunque GDB no es una solución perfecta, es adecuado para una variedad de tareas de depuración y cuenta con un amplio apoyo de la comunidad de código abierto. Depurar el kernel de Linux o los controladores de dispositivos es mucho más tedioso que depurar aplicaciones. Al realizar una investigación, se debe prestar especial atención a los siguientes aspectos: ¿Qué métodos de depuración soportan el hardware en el que se desarrollará el producto? ¿Qué otras herramientas se necesitan para proporcionar una solución completa? Tras una mayor investigación, los desarrolladores suelen descubrir que la herramienta A y la herramienta B no proporcionan exactamente la misma funcionalidad porque se desarrollaron de forma independiente. Por lo tanto, los desarrolladores deben considerar exactamente qué funcionalidad puede proporcionar una colección suelta de estas herramientas y cuánto esfuerzo se requiere para formar una solución completa. Si la integración, usabilidad, interoperabilidad y portabilidad entre tipos de procesadores son fundamentales, los desarrolladores deberían considerar comprar herramientas de desarrollo comerciales. Esto se debe principalmente a que las herramientas de desarrollo comerciales no son caras si se tiene en cuenta el esfuerzo necesario para desarrollar soluciones "gratuitas".

Cómo elegir herramientas de desarrollo de Linux integradasSin embargo, requisitos como la compilación cruzada, el desarrollo/depuración de controladores de dispositivos y el tamaño más pequeño son desafíos serios que enfrentan los desarrolladores de Linux integrado. Para abordar estos desafíos, han surgido herramientas especializadas para el desarrollo de Linux integrado y están creciendo rápidamente. Sin embargo, muchas de estas herramientas no son compatibles con plataformas que no sean X86 y no están bien documentadas ni integradas. Otros entornos de desarrollo no pueden lograr completamente el alto grado de integración entre componentes. Por lo tanto, para aprovechar al máximo estos componentes de software gratuito para crear un entorno de desarrollo multiplataforma completo, los desarrolladores deben ser conscientes de que esto requiere importantes esfuerzos de investigación, implementación, capacitación y mantenimiento. Linux es uno de los pocos sistemas operativos que puede ejecutarse en dispositivos integrados y servir como entorno de desarrollo. Esta característica permite a los desarrolladores desarrollar, depurar y probar aplicaciones y bibliotecas en hardware de uso común, como sistemas de escritorio X86, antes de migrar a ese sistema de desarrollo, lo que reduce la dependencia de plataformas de referencia estándar y emuladores de conjuntos de instrucciones. Esta técnica sólo funciona para aplicaciones y bibliotecas, no para controladores de dispositivos, porque el desarrollo de controladores de dispositivos se basa en la arquitectura de Linux. Las herramientas de desarrollo de controladores de dispositivos están disponibles en la comunidad de código abierto y en algunos proveedores de software. Debido a que los controladores de dispositivos están más cerca del hardware que las aplicaciones estándar, son más difíciles de desarrollar. Afortunadamente, los sistemas de escritorio Linux pueden aprovechar herramientas que Windows y otros sistemas operativos no aprovechan. Es posible que los desarrolladores con suficiente experiencia en el desarrollo de controladores de dispositivos ya estén acostumbrados a utilizar Linux como sistema de desarrollo de escritorio. El rápido crecimiento de Linux y la proliferación de soluciones de escritorio plantea una pregunta importante: ¿Cómo se ejecutará la solución de herramienta elegida en diferentes distribuciones de Linux? ¿Dependen de la configuración del software de la plataforma anfitriona? Algunas herramientas de Linux proporcionan un entorno de desarrollo independiente de la plataforma host que incluye un conjunto de aplicaciones, bibliotecas y utilidades que admiten herramientas de desarrollo. Este enfoque aísla casi por completo el entorno de desarrollo de la configuración del host, por lo que el host puede ser cualquier sistema distribuido Linux y cualquier actualización y modificación no afectará la funcionalidad del entorno de desarrollo. La principal desventaja de este enfoque es el mayor requisito de espacio de almacenamiento (~200 MB), ya que efectivamente equivale a un pequeño sistema de distribución de Linux. Herramientas disponibles El desarrollo de productos Linux integrado pasa por varias etapas, incluida la configuración y construcción de un sistema operativo Linux base para la placa de destino; depuración de aplicaciones, bibliotecas, kernels y controladores de dispositivos/módulos de kernel y optimización, prueba y verificación de la solución final; Hay cientos de herramientas de desarrollo de código abierto disponibles. Siempre que los desarrolladores estén dispuestos a dedicar tiempo y esfuerzo a investigar, implementar y mantener una variedad de herramientas, podrán encontrar una solución completa para casi cualquier tarea de desarrollo. Cuando se trata de depurar aplicaciones y bibliotecas de Linux, GNU Debugger (GDB) ha sido el estándar durante varios años. Es un programa de línea de comandos respaldado por varias interfaces gráficas de usuario diferentes, cada una de las cuales proporciona control de depuración de una manera diferente. Aunque GDB no es una solución perfecta, es adecuado para una variedad de tareas de depuración y cuenta con un amplio apoyo de la comunidad de código abierto. Depurar el kernel de Linux o los controladores de dispositivos es mucho más tedioso que depurar aplicaciones. Al realizar una investigación, se debe prestar especial atención a los siguientes aspectos: ¿Qué métodos de depuración soportan el hardware en el que se desarrollará el producto? ¿Qué otras herramientas se necesitan para proporcionar una solución completa? Tras una mayor investigación, los desarrolladores suelen descubrir que la herramienta A y la herramienta B no proporcionan exactamente la misma funcionalidad porque se desarrollaron de forma independiente. Por lo tanto, los desarrolladores deben considerar exactamente qué funcionalidad puede proporcionar una colección suelta de estas herramientas y cuánto esfuerzo se requiere para formar una solución completa. Si la integración, usabilidad, interoperabilidad y portabilidad entre tipos de procesadores son fundamentales, los desarrolladores deberían considerar comprar herramientas de desarrollo comerciales. Esto se debe principalmente a que las herramientas de desarrollo comerciales no son caras si se tiene en cuenta el esfuerzo necesario para desarrollar soluciones "gratuitas".

Un sistema Linux BSPLinux tiene dos componentes principales: el kernel de Linux con controladores de dispositivo y el sistema de archivos raíz, que contiene todas las aplicaciones, servicios y bibliotecas de soporte que requiere el sistema. Además de los componentes del sistema operativo en la placa de destino, también es necesario crear un entorno de compilación cruzada que consista en el compilador GNU configurado para brindar soporte para bibliotecas y binarios (binutils). Si bien casi todos los componentes se pueden encontrar en línea, es difícil recopilar mucha información sobre compatibilidad con controladores de dispositivos o hardware, información de pruebas de integración, guías de compilación cruzada o compatibilidad de software. Si bien los desarrolladores pueden descargar una variedad de componentes de Internet de forma gratuita para configurar un sistema operativo Linux integrado, el estado de cada componente en términos de versión, soporte, estabilidad y pruebas depende del desarrollador. Luego, los desarrolladores deben completar la integración y las pruebas finales del sistema operativo y proporcionar mantenimiento del sistema operativo Linux de por vida para el producto desarrollado. Por otro lado, los paquetes comerciales de soporte para placas Linux de proveedores de Linux integrado generalmente vienen preinstalados y probados, con soporte y mantenimiento proporcionados. Otros factores a considerar incluyen las diferentes bibliotecas y funciones del kernel que se agregarán al host de escritorio de Linux, así como problemas de mantenimiento a largo plazo debido a cambios de desarrolladores dentro de la organización. Los departamentos de control de calidad suelen realizar una serie rigurosa de pruebas de verificación y rendimiento, que incluyen detección/corrección de fugas de memoria, optimización de código y seguimiento de tareas. Aquellos que deseen utilizar herramientas de código abierto para desarrollar productos Linux integrados para plataformas que no sean X86 encontrarán la tarea más difícil que elegir una solución de depuración de código abierto. El kit de herramientas de seguimiento de Linux, las herramientas Valgrind y otros analizadores de memoria pueden realizar algunas de las tareas de prueba y verificación. Sin embargo, en general, carecen de características clave, funcionalidad integrada y amplio soporte de hardware. El proceso para evaluar estas herramientas de análisis de código abierto es esencialmente el mismo que el de evaluar depuradores. El análisis final es que un entorno de desarrollo diseñado adecuadamente debería poder proporcionar las mejores características tanto del mundo comercial como del de código abierto: * Capacidades de desarrollo llave en mano * Facilidad de uso e integración * Control coordinado de una gran organización de ingeniería; y soporte Garantizado; * Continuidad * Capacidad de utilizar código abierto a su propia discreción.