“Todo” en Linux es una gran cantidad de cosas que aprender y algunas de ellas serán difíciles. Supongo que no está buscando el tipo de cosas que un administrador de sistemas debe saber, pero que realmente quiere saber qué está pasando dentro de la máquina y el sistema operativo.
Afortunadamente, todo el código fuente está disponible para que lo examine. Hay tantas líneas de código que es fácil perderse. Mantener notas. Mira a tu alrededor para la documentación existente. Siéntase libre de escribir nueva documentación para capturar lo que aprende a medida que lo aprende. Es dudoso que, al final, todo se ajuste dentro de su cabeza.
Algunas partes de Linux interactúan con el hardware, por lo que además de aprender qué hay en el software de Linux, también debe esperar pasar un tiempo investigando la documentación del hardware de la computadora (interrupciones, gestión de memoria [asignación de direcciones], interfaces de E / S, BIOS, … ) y de protocolos (TCP / IP, DNS, SMTP, NFS,…).
Otro aspecto de Linux, un poco distinto de los problemas de hardware y software, es el aspecto “social” de la comunidad. Hay muchas personas, en todo el mundo, involucradas con la continua evolución del proyecto. Tienen intereses particulares, especialidades, experiencia variada, y cada uno tiene su propia personalidad. Te sugiero que hagas un hábito de leer Bienvenido a LWN.net regularmente para tener una idea de lo que está pasando en el mundo de Linux. ¿En qué problemas se está trabajando? ¿Bichos recurrentes? ¿Mejoras deseadas que no se están trabajando (mucho)?
- ¿Es más fácil aprender a conducir si el coche es más pequeño?
- ¿Qué lenguaje de programación puedo aprender en 1 mes?
- ¿Qué es un arte marcial que enfatiza ‘ser como el agua’ sobre otras artes marciales?
- ¿Por qué es tan difícil aprender matemáticas como un estudiante promedio de matemáticas en la universidad?
- ¿Por qué es difícil aprender a tejer?
Creo que descubrirás que mantener el entusiasmo por saber cómo funciona todo es muy difícil. Cuando comience a ver las piezas y sus interfaces, es posible que algunas le resulten más interesantes que otras. Está bien aceptar que hay un código “allí” que maneja los detalles y proporciona esta abstracción útil en esta interfaz. No necesariamente necesitas saber todo lo esencial de cómo exactamente ese código “por allá” hace su trabajo. Puede ser suficiente para que entiendas la abstracción que proporciona y cómo la interfaz que presenta es útil para el resto del sistema. Si, en algún momento, ve cómo un cambio en la interfaz podría mejorar el sistema, entonces podría pensar en cómo podría cambiar el código “allí” para presentar su nueva y mejor interfaz, y cómo cambiaría el resto. Del sistema para aprovechar el cambio.
El código fuente está disponible para usted y usted es libre de hacer cambios experimentales y ver cómo van. Si lo intentas, perfeccionarás tus habilidades para probar y depurar. Practicar en la medición del rendimiento puede ser importante para evaluar ciertos cambios que puede intentar.