¿Cuáles son algunas limitaciones de usar y desarrollar software de Linux cuando se ejecuta en una Raspberry Pi?

Parece que el hardware será más un factor limitante que el software 🙂

Lo más importante a tener en cuenta: ahora estás en la tierra de ARM, no x86_64. No vaya a construir el software x86_64 y espere que funcione correctamente. Suponiendo que su distribución de Linux tiene un puerto adecuado para su hardware (lo que probablemente hace gracias a la encantadora comunidad integrada / kernel), debería funcionar con todo lo que conoce y ama de Linux. En términos de uso, solo tenga en cuenta los recursos limitados disponibles al iniciar nuevos procesos.

Cuando se trata de desarrollo, solo tendrá que tener cuidado con las limitaciones de su hardware. Si está trabajando en C, esté interesado en malloc () y fork () ing correctamente. Linux es totalmente compatible con subprocesos múltiples, lo que puede ser útil si cree que el tiempo de ejecución será un problema. Solo tenga en cuenta la sobrecarga de cambio de contexto.

Si tiene múltiples Pi, podría construir un clúster potentially las opciones y soluciones son prácticamente ilimitadas.

Feliz desarrollo, amigo!

PD: Personalmente, me mantendría alejado de Raspbian cuando opere su Pi. Se siente hinchado y probablemente tenga mucho más software innecesario del que necesitará / usará. Puede usar lo que le plazca, pero siempre puedo recomendar Arch Linux como una solución ligera. ¡No tengas miedo de aventurarte y probar cosas nuevas!

La mayoría del software de Linux se desarrolla en el entorno i386 o x86_64, por lo que incluso si el software dice “Es compatible con Linux”, generalmente solo proporcionan binarios para i386 / x86_64, a menos que sea un software dirigido a Raspberry Pi, y dado que Raspberry Pi es una arquitectura ARM , no puede ejecutar esos binarios.

Mientras permanezca en el mundo del código abierto, no es un gran problema. Es posible que deba tomarse un tiempo adicional para recompilar algunas cosas para ARM, o encontrar un paquete que alguien haya compilado para ARM en la naturaleza, pero aún es posible.

Sin embargo, una vez que intentas interactuar con productos comerciales o productos de código cerrado, a veces no hay solución y simplemente no puedes hacerlo. Un caso común es la falta de conductores. Controladores de impresora, controladores para algo incrustado, etc. Si está desarrollando un servidor de red o cliente, entonces supongo que no hay un gran problema.

Para el desarrollo no comercial de aficionados, no hay muchas limitaciones. Estas limitaciones que se aplican son consideraciones realmente profesionales que no son importantes para el usuario típico de R-Pi.

Como dice Michael Gilroy, la consideración principal es que desarrollará y probará en un entorno ARM. Eso significa que si su máquina de destino es otra arquitectura (Intel o lo que sea), tendrá que repetir las pruebas en una máquina real de esa arquitectura antes de poder lanzar la versión final. Esto es cierto para todas las combinaciones de hardware de desarrollo y hardware de destino, y es por eso que el desarrollo casi siempre se realiza en la arquitectura de destino.

La segunda consideración es que si su objetivo no es el mismo modelo de R-Pi que está desarrollando, ninguna prueba de rendimiento debe realizarse en la máquina de desarrollo, ya que los resultados no serán válidos para la máquina de destino.

TL; DR no hay limitaciones que sean significativas para los desarrolladores aficionados y estudiantes.

Las limitaciones de desarrollar en Raspberry Pi están fundamentalmente asociadas a las capacidades de la misma. Te recomendaría desarrollar en cli para cli, no en gui

Diría que las limitaciones de hardware, está ejecutando un procesador ARM no x86_64 y similares.