¿Cómo debo acercarme a Linux (Linux para tontos)?

Empiezas saltando directamente a él. Deja de usar el RPi para aprender Linux. Rpi es una mejor opción para aprender programación basada en ARM. Instale Linux en su computadora portátil personal,. Si eres un principiante, no insisto en que instales Linux exclusivamente en tu computadora portátil. Más bien instálelo junto con Windows para que arranque dual. NO lo instale en una máquina virtual. Arruinar las cosas, aprender de los errores. Aprende por las malas y no lo olvidarás. Aunque primero haga copias de seguridad de sus datos 😛

  • Comience haciendo las actividades diarias en Linux en lugar de en Windows, ya sea explorando películas, etc.
  • Intenta hurgar y cambiar la apariencia de tu entorno. Descubra cómo cambiar los iconos de fuentes de temas y otras cosas para varias interfaces de escritorio (GNOME, KDE, XFCE, etc.)
  • Si hay algún software que generalmente usa en Windows, pero no está disponible para Linux, habrá opciones alternativas para hacer lo mismo. Averígualo, intenta configurarlos.
  • Comprenda la importancia de saber cómo administrar una computadora Linux, principalmente el administrador de paquetes en esa distribución. Este es el software más importante que debe usar regularmente para actualizaciones en toda la instalación, no solo el sistema operativo, sino que también incluye las aplicaciones de código abierto disponibles para usted. Averigua qué significa un repositorio, paquetes binarios, paquetes fuente, compilación, etc.
  • Hay muchas distribuciones de Linux, como bien sabrás. No te instales con la opción más popular como Ubuntu o Linux Mint. Prueba al menos 5 de ellos. Diría que deberías probar Fedora, OpenSUSE, Elementary, Bodhi Linux, Solus OS, Manjaro, etc. Todos estos aspectos se ven y se sienten diferentes. En el proceso, aprenderá cómo instalar software utilizando varios administradores de paquetes y compilar software por su cuenta.
  • Como eres un experto en sistemas integrados, es posible que ya hayas encontrado herramientas como make, git, autotools, etc. Experimenta más con ellas.
  • Después de una nueva instalación de Linux, no obtendrá buenos números de consumo de energía. Es porque tienes muchas opciones de optimización. Busque en Internet cómo optimizar el consumo de energía en Linux y pruébelos. palabras clave: TLP, Bumblebee (si tiene tarjeta nvidia), opciones del módulo i915, etc. Una vez que haya realizado la optimización adecuada, verá que funciona mejor que Windows 🙂
  • Pruebe funciones avanzadas como LVM y cifrado durante la instalación, arruine sus datos y aprenda de sus errores 😛
  • Acostúmbrate a la idea de usar comandos y el terminal / shell.
  • Si le gustan las cosas relacionadas con el diseño web, pruebe un nuevo software como servidores web y cosas locales en su máquina Linux. Tal vez pueda probar la configuración del servidor git, intente configurar la pila XAMPP, etc.
  • Busque proyectos interesantes de código abierto en dominios que le interesen e intente configurar su entorno de desarrollo. La razón por la que enfatizo los proyectos de código abierto se debe a que la mayoría de los desarrolladores originales usarán Linux o Mac. De esta manera, aprenderá temas avanzados en Linux y los temas técnicos que le gusten.
  • Dado que está en sistemas embebidos, en el trabajo, puede estar utilizando herramientas de Windows para compilar su software. Tome esto como un desafío: intente configurar su entorno de desarrollo utilizando herramientas exclusivas de código abierto como GCC, Make, etc. para generar los firmwares de su controlador sin usar ningún IDE robusto. Si su sistema operativo no proporciona una cadena de herramientas precompilada de compilación cruzada, primero comience allí: compile gcc binutils para su arquitectura de destino, compile newlib o su biblioteca C preferida, cree su propio script de enlazador o reutilice uno de otro lugar, compile el código usted mismo, encuentre una forma de actualizar el firmware compilado en su dispositivo de destino. Si está trabajando en ARM, debería ser fácil encontrar herramientas nativas de Linux que lo ayuden a actualizar y depurar su firmware, como OpenOCD, que ya puede estar utilizando.
  • En resumen, abandone las ventanas y venga al mundo de Linux, donde el usuario final tiene todo el poder, y no un a ** corporativo que decide qué hacer con su computadora.

Necesitará ayuda en algún momento. Si está relacionado con la distribución, busque el foro oficial y haga preguntas allí. Si necesita respuestas rápidas y desea hablar con la gente en tiempo real acerca de sus problemas, visite varios canales de IRC en freenode. La mayoría de las distribuciones tienen un canal allí. Algunos pueden tener en diferentes servidores. Consulte el sitio web de la distribución para obtener más información. Las personas estarán felices de ayudarlo si hace su tarea antes de preguntar.

Linux puede ser un poco más complejo que Windows para aprender. Es porque es MUCHO MÁS POTENTE, ya que le permite hacer muchas cosas que no puede hacer con un sistema operativo propietario. Ofrece un rendimiento y estabilidad superiores. Es por eso que el 99% de las 500 supercomputadoras más importantes del mundo ejecutan Linux, no porque sea gratuito; y no, no me pagan por dar publicidad 😀

Para comenzar, es mejor que tenga una plataforma de host (PC) que pueda admitir cualquiera de los sabores del sistema operativo que admitan un kernel de Linux (Ubuntu, Debian, Mint). Esta es una forma en que podría familiarizarse con el terminal de “Interfaz de línea de comando”. Comience con comandos de terminal. Esto podría ser de gran ayuda (confía en mí). Copie, elimine, cree, mueva, ejecute, haga lo que esté haciendo, hágalo desde la terminal en lugar de desde la GUI.

La arquitectura de Linux es diferente de una arquitectura de firmware RTOS. Tener un alto nivel de comprensión del espacio Usuario / Kernel. Comience con la programación del espacio del usuario. Como está familiarizado con RTOS, sabría qué es una tarea / subproceso. Comience a aprender sobre la creación / control de procesos de Linux. Puede obtener mucha ayuda en línea. Aprenda la comunicación entre procesos una vez que sea bueno con los procesos. Aprende sobre hilos. Haz aplicaciones multiproceso. Aprenda sobre bibliotecas, estáticas y dinámicas. Comprenda la memoria virtual, puede comprender la belleza de la administración de la memoria de Linux de esa manera. Aprender tomas de corriente. Comprende qué son las llamadas al sistema. Ninguno de estos son requisitos previos para comenzar a programar en una placa RPi, pero creo que estará mucho más equipado de esta manera.

Ahora su tablero RPi estaría basado en una arquitectura Arm; Su PC por otro lado, un x86 o algo similar. Aprenda sobre los gestores de arranque (UBoot). Comprenda lo que puede hacer una cadena de herramientas. Obtenga uno de la página web de GNU. Descargue el código fuente del kernel de Linux. Una vez que esté familiarizado con las cadenas de herramientas, puede configurar y compilar el núcleo usted mismo. Es hora de portar algunos de sus programas espaciales de usuario a la placa RPi. Cross compila tus programas. Descargue sus archivos binarios al sistema de archivos (bajo la noción de que ya estaría familiarizado con los sistemas de archivos). Arranca el tablero y ejecuta tus programas.

Nota: Esta es una nota de muy alto nivel sobre una de las muchas formas en que puede proceder. Leer mucho. ¡Mucho! Obtenga recursos gratuitos en el kernel de Linux, controladores de Linux, administración de memoria de Linux, shell de Linux. Siempre que se enfrente a un problema, recuerde que hay una gran comunidad para ayudarlo.

No he agregado nada en la programación espacial Kernel. Puedes explorar todo a tu ritmo. Después de todo, es de código abierto 🙂

  1. Use KolibriOS, MenuetOS, FreeBDS, Ubuntu JeOS, Arch Linux, Gentoo, Fedora, Slax, CentOS, SUSE y Linux desde el inicio y pruebe tantas distribuciones de Linux en Virtual box como pueda. Comprenda cómo estas distribuciones son diferentes entre sí y dependencias. Familiarícese con los comandos de Linux, el sistema de archivos y los repositorios de distribución.
  2. Familiarícese con dos o tres programas de bajo nivel y de alto nivel. Lea el código fuente y la documentación en wikis de distribución de Linux.
  3. Hackea viejas radios, televisores, PC, consolas de juegos, enrutadores y auriculares (HTC one o Motorola), instala la distribución de Linux en teléfonos Android viejos.
  4. Trabaje en proyectos de hardware abiertos y lea la documentación de origen.

Trabajar en el enfoque base del proyecto:

Proyecto 1: Trabaje en proyectos complejos de frambuesa pi tanto como pueda y copie proyectos similares en otros tableros también, es decir, copie el mismo proyecto en otros tableros como ODroid, Beagle-bone Black, Banana Pi, Humming board-i1, Minnow-board.

Esto le dará conocimientos para trabajar con diferentes Hardware.

Proyecto 2: Use Ubuntu JeOS, Arch Linux y construya un escritorio completo en él. Use solo líneas de comando y escriba su propio script bash.

Esto le dará control sobre los comandos de Linux y las secuencias de comandos Bash.

Proyecto 3 Aprenda Linux desde cero y cree el sistema operativo suficiente para ejecutar una sola aplicación: ejemplo: sistema de sonido Jack, centro multimedia Kodi, Pidgin messenger, Guitarix, etc.

Esto le dará comprensión para construir kernel a bajo nivel y dependencias de la aplicación.

Proyecto 4: aplique el enfoque de mezcla para piratería de hardware, compre componentes usados ​​viejos y úselo para construir algo nuevo.

Comenzar con Raspberry Pi es una buena opción. También hay otras alternativas, como Beaglebone, Wandboard, etc. Todo lo que se necesita es comprender el código y comenzar a experimentar con el tablero.

Entonces, ¿cómo entender Linux?

Encontré un enlace muy útil – Inicio | Linux Journey, comienza desde lo básico hasta algunos temas avanzados sobre Linux. Los tutoriales son realmente buenos y transmiten los conceptos muy bien.

Será beneficioso tener una PC con Linux y practicar trabajando en la interfaz de línea de comandos (CLI), antes de trabajar realmente en placas de desarrollo integradas. Después, puede experimentar y desarrollar su experiencia.

More Interesting

¿Qué sucede cuando no usamos la palabra clave 'volátil' para definir registros de hardware en la programación de sistemas integrados?

Cómo prepararme para cumplir con el 'conocimiento de los microcontroladores y la experiencia de deseable incrustado' este requisito de trabajo cuando soy un profesional de software puro con Java y C ++

¿De qué maneras se puede agregar conectividad a Internet a los microcontroladores Atmega?

¿Qué debería leer un estudiante universitario para mantenerse al día con el mundo de los sistemas integrados?

Hay muchos microprocesadores y microcontroladores como 8085 8086 PIC, etc. ¿En qué se diferencian entre sí y el estudio de cualquier microprocesador y microcontrolador le da una comprensión de todos los demás?

¿Cómo se programan los quadcopters?

Cómo comenzar a aprender uClinux o Linux incrustado

¿Hacer un curso de capacitación de verano en sistemas integrados me ayudaría durante los placememts?

Sistemas embebidos: ¿Cómo ejecuta un microprocesador el código binario?

¿Cómo pensar en C?

¿Cómo puedo diseñar un sistema integrado para un microcontrolador que no puedo simular?

¿Cuáles son las cosas que debo saber absolutamente sobre el microprocesador y el microcontrolador para estudiar sistemas embebidos?

¿Cuál es el mejor entre los sistemas embebidos y el diseño VLSI para un estudiante completado y cómo?

¿Puedo grabar el programa 8051 en atmega8?

Dado que la generación automática de código C o C ++ para sistemas integrados se ha generalizado y la codificación manual está mal vista en muchas partes de la industria automotriz, ¿podría un desarrollo similar afectar a otras partes de la industria y hacer que las habilidades de programación sean inútiles eventualmente?