Cuál es la mejor distribución ligera para aprender el desarrollo del núcleo de Linux. Debe tener muchas herramientas de depuración y creación de perfiles disponibles junto con ella :)distro para el desarrollo del núcleo de Linux
Respuesta
LFS. Luego instale cada depurador y generador de perfiles que pueda encontrar.
He escuchado Linus himself uses Fedora. Recomendaría Gentoo, que permite (pretende) que personalices a mano tu núcleo, es la configuración perfecta para él (y he pasado muchas horas exprimiendo hasta el último pedazo de rendimiento por el gusto de hacerlo).
Naturalmente, Ubuntu es mi distribución preferida, pero puede tener problemas si comienza a secuestrar y eliminar las funciones esperadas del kernel. Gentoo no se quejará, y no espera que comiencen por ahí.
El kernel de Ubuntu lleva una cantidad justa de parches para cosas como el manejo de UUID y otra magia similar. Puedo ejecutar núcleos de vainilla en mi caja de gentoo todo el tiempo sin problemas. – stsquad
Fedora es también mi favorita, malditamente estable. –
La distribución probablemente no haga mucha diferencia ya que trabajará en su núcleo y no en el kernel de "fregadero de cocina" que las distros tienden a proporcionar con un montón de parches en la mayoría de los casos.
Si está haciendo un trabajo de desarrollo del kernel, entonces supongo que quiere una distribución que se inicie rápidamente, algo como el cachorro podría ser ideal aquí y hacer su codificación real de algo como Ubuntu.
La distribución realmente no importa. Es lo que quiere hacer con el núcleo y hacer su función de desarrollo/prueba.
Aquí hay algunas cosas que hacer.
a. Active la depuración del kernel y las opciones de registro. Esos definitivamente te ayudarían en la depuración. ver useful linux kernel debug options to turn on
b. Herramienta de Getdebuggers como Valgrind que verifica la pérdida de memoria. Consulte doc como https://www.kernel.org/doc/Documentation/kmemleak.txt
c. Encontré un buen editor para editar. No quiero comenzar una guerra vim vs emacs. En realidad, es una preferencia personal, solo asegúrate de seguir las pautas de estilo de codificación del kernel de Linux. https://www.kernel.org/doc/Documentation/CodingStyle
d. Familiarícese con los sistemas de registro y el sistema de proceso, ya que proporcionan información valiosa.
e. Lea la documentación en la documentación Muy buen punto directorio/usr/src/linux/de partida para comprender el núcleo
Buildroot
Buildroot es un conjunto de secuencias de comandos que genera pequeñas distribuciones con rootfs imágenes más pequeñas que 10MiB.
Descarga todo de la fuente y lo compila, por lo que es trivial parchear paquetes.
Las imágenes generadas son tan pequeñas que es posible comprender toda la configuración del usuario, lo que hará que sea más fácil enfocarse en el kernel.
Ventaja sobre LFS: todo está completamente automatizado. Debido a esto, Buildroot se usa profesionalmente en organizaciones grandes.
He creado esta configuración para automatizar cosas tanto como sea posible: https://github.com/cirosantilli/linux-kernel-module-cheat
- 1. Cambiar el temporizador del núcleo de Linux
- 2. Programación del núcleo de Linux para principiantes
- 3. list.h del núcleo de Linux
- 4. Volcado del núcleo en Linux
- 5. Compilación del núcleo de Linux - hola mundo
- 6. depuración del núcleo de Linux pánico
- 7. ¿Qué partes del núcleo de Linux puedo leer para divertirme?
- 8. desarrollo del kernel de Linux
- 9. Cronometraje en el núcleo de Linux 2.6
- 10. Cómo comenzar con el desarrollo del kernel de Linux
- 11. ¿Cuál es el mejor mecanismo de bloqueo del núcleo de Linux para un escenario específico
- 12. Flujo de trabajo de Git para el desarrollo corporativo del kernel de Linux
- 13. Nuevo en el desarrollo del kernel/controlador de Linux
- 14. Abstruse macro #define encontrado en las fuentes del núcleo Linux
- 15. Enhebrar datos locales en el módulo de núcleo de Linux
- 16. envío de paquetes UDP desde el núcleo de Linux
- 17. cómo usar CryptoAPI en el núcleo de Linux 2.6
- 18. lo que es la "corriente" en linux fuente del núcleo
- 19. Desarrollo Solaris/FreeBSD vs. Linux para Java
- 20. ¿Qué es una buena distribución barebones de Linux para el desarrollo de kernel para principiantes?
- 21. elija la distribución de Linux para el desarrollo de Haskell
- 22. Cómo configurar encabezados y bibliotecas para el desarrollo de Linux
- 23. Desarrollo de Bada en Linux
- 24. Cómo funciona NOHZ = Encendido do_timer en el núcleo de Linux
- 25. pthread_create diferencias en el núcleo de Linux 2.4.20 y 2.4.36
- 26. Cambiar a Linux para el desarrollo de Windows, ¿mala idea?
- 27. Herramientas para el entorno de desarrollo haskell? (Linux)
- 28. IDE para el desarrollo de C# en Linux?
- 29. Cygwin vs Linux ¿Máquina virtual para desarrollo?
- 30. El enlace del núcleo de Ninject anula
puedo usar todos esos y que son cool, pero se necesita mucho tiempo para remendar, pruebas, etc. – user361697
también tener una mira Buildroot, que automatiza todo: https://stackoverflow.com/a/44625382/895245 –