Como todos sabemos, el kernel de Linux es el corazón del sistema operativo que permite que funcione el sistema operativo real. De hecho, el kernel de Linux es el proyecto de código abierto más famoso jamás creado. La mayoría de los desarrolladores de todo el mundo tienden a trabajar en aplicaciones o bibliotecas de GUI (interfaz gráfica de usuario) que generalmente están escritas en lenguajes de nivel superior que abstraen mucho de la preocupación por problemas de nivel inferior como la administración de memoria, sistema de archivos, controlador de dispositivo , etc.
Mientras tanto, este artículo se recomienda a todas aquellas personas que quieran contribuir al kernel de Linux del proyecto de código abierto más grande. Sin embargo, el desarrollo del Kernel no es tan fácil y requiere mucha paciencia y trabajo duro. El kernel es una parte crítica del sistema operativo, por lo que requiere un conocimiento profundo del dominio en particular.
Echemos un vistazo a las habilidades y enfoques requeridos para hacer una carrera como desarrollador de kernel de Linux”
1. Aprende programación en C
En primer lugar, necesitas aprender Programación en C. La mayoría de las partes de los kernels de Linux están escritas en C y algunas de las partes están escritas en ensamblador. Si desea contribuir a partes de muy bajo nivel del núcleo, también puede aprender lenguaje ensamblador. Pero en la etapa inicial, aprender el lenguaje C es imprescindible. Aquí hay algunos libros mencionados a continuación que se pueden tener en cuenta para aprender programación en C:
- El lenguaje de programación C de Kernighan y Ritchie
- Programación práctica en C por Steve Oualline
- C: un manual de referencia de Harbison y Steele
También debe tener en cuenta que el kernel de Linux no depende de la biblioteca C estándar, por lo que algunas partes de la biblioteca C no son compatibles.
2. Aprenda la estructura de datos y el algoritmo
Para convertirse en desarrollador/mantenedor de kernel de Linux, debe tener un conocimiento fundamental de estructuras de datos y algoritmos . Un algoritmo suele ser un enfoque paso a paso para resolver un problema específico, mientras que las estructuras de datos se ocupan de la forma de organizar los datos. Estos dos conceptos ayudan a los programadores a resolver el problema en menos tiempo y memoria. La comprensión de los conceptos de estructuras de datos y algoritmos lo ayudará a encontrar la solución óptima para un problema específico. Mientras tanto, puede optar por varios recursos en línea y fuera de línea, como GeeksforGeeks, etc. para dominar los conceptos de estructuras de datos y algoritmos.
3. Aprenda sobre el sistema operativo
Ahora has aprendido a programar. Después de aprender a programar, debe aprender sobre el sistema operativo y su concepto central. Puede utilizar libros para aprender acerca de los sistemas operativos. Estos son algunos de los libros.
- Sistemas operativos: componentes internos y principios de diseño
- Diseño del Sistema Operativo UNIX
- Sistemas operativos modernos
4. Aprenda sobre el kernel de Linux
Ahora, debe aprender sobre las funciones internas del kernel de Linux. Para aprender sobre el kernel de Linux, se recomienda leer varios libros de renombre. También puede leer la documentación del kernel de Linux. Aquí están los libros:
5. Haz algo de programación competitiva
Para dominar el algoritmo y la estructura de datos, puede hacer programación competitiva. Ahora surge una pregunta en su mente: ¿qué es la programación competitiva? La programación competitiva se trata de resolver problemas en una pequeña cantidad de tiempo y límites de memoria. Es un deporte mental. Te enseña a pensar. También te enseña cómo resolver un problema en un tiempo limitado. Es muy importante para un programador competitivo resolver un problema en menos tiempo. En el desarrollo del kernel, todos los días surgirá un problema y debe resolverlo de manera que el código se ejecute rápidamente y tenga una pequeña cantidad de memoria. La programación competitiva es muy beneficiosa para un desarrollador de kernel. Puedes usar GeeksforGeeks para practicar la programación competitiva.
Publicación traducida automáticamente
Artículo escrito por coderabhijit90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA