¿Cuáles son los libros de referencia clásicos para aprender el desarrollo de controladores de bajo nivel de Linux?
Creo que se puede dividir en cuatro etapas, de nivel bajo a alto
Desde la instalación hasta el uso. = gt; comandos comunes de Linux = gt; programación del sistema Linux = gt; desde el desarrollo del kernel hasta la lectura del código fuente del kernel
Para aprender los comandos comunes de Linux, debe aprender a compilar el kernel, optimizar el sistema y ajustarlo. parámetros usted mismo
Hay demasiados libros sobre instalación y comandos comunes. Solo busque uno que sea un poco más detallado. Durante este período, necesita aprender expresiones regulares
Se recomienda la programación del sistema. "Programación avanzada en entorno Unix", que en el lenguaje coloquial se llama APUE
p>También existe "Programación en red Unix"
En este momento, probablemente necesites leer información. para comprender mejor el formato de archivo elf, el conector y el cargador, y cmu. Un libro de texto chino llamado "Comprensión profunda de los sistemas informáticos"
En la etapa de desarrollo del código fuente del kernel, comience escribiendo controladores y. profundice gradualmente en el desarrollo del kernel de Linux
Los libros de referencia son los siguientes: "Linux Device Driver", Helvetica Language LDD"
"Linux Kernel Development"
" Comprensión del kernel de Linux"
"utlk in black"
"Análisis de escenarios del código fuente de Linux"
Estos cuatro libros imprescindibles para el núcleo
Finalmente, la tercera y cuarta etapa son la máxima prioridad.
La tercera y cuarta etapa son las más prácticas. Hablar en vano es inútil. Solo leer no puede cubrirlo. Si no lo haces, no podrás entender esas cosas.
p>Sugerencias para aprender métodos de programación de Linux/Unix
Ruta de aprendizaje sugerida:
En primer lugar, aprenda el editor. Puede conocer vim, emacs, etc.
Luego, aprenda a crear archivos, aprenda un poco sobre conocimientos relevantes y prepárese para la programación.
Entonces eche un vistazo al "Lenguaje de programación C" K & R. De esta manera, básicamente puede hacer programación general. Por cierto, busque un libro sobre estructuras de datos.
Si quieres aprender programación UNIX/LINUX, "APUE" es definitivamente un libro de texto clásico. Para profundizar tus habilidades, estudia el segundo volumen de "UNP". De esta forma, básicamente podrás dominar el conocimiento del sistema.
Luego lea el primer volumen de "TCP/IP Interconnection" de Douglas E. Comer para aprender conocimientos sobre redes, y luego lea el primer volumen de "UNP" para aprender no solo el conocimiento de la programación de redes, sino también Además, el conocimiento del sistema es muy familiar para algunas tecnologías de programación comunes. Si continúa con la programación de redes, se recomienda leer el tercer volumen de "Interconexión TCP/IP", que contiene mucha información sobre el protocolo de aplicación telnet. Hay mucha programación sobre protocolos de aplicación telnet, ftp y otros.
Si desea escribir un controlador de dispositivo, primero debe estar familiarizado con las interfaces de programación del sistema, como archivos, IPC, etc., y luego estudiar "LDD" 2.
Para Evaluación de varios libros de texto clásicos:
"Lenguaje de programación C" K&R es un libro de texto de programación C clásico. El autor es el inventor del lenguaje C. El inventor del lenguaje C, el libro de texto lo explica en términos simples. Aunque está un poco desactualizado, es un manual imprescindible y todavía lo leo en ocasiones. Aunque es relativamente pequeño, hay algo gratificante cada vez que lo miras. También puede utilizar la "Programación en lenguaje C" de Tan Haoqiang.
"Programación avanzada en el entorno Unix" W. Richard Stevens: También es un libro muy clásico (tonterías, ¡cómo es posible que el libro de Stevens no sea un clásico!), ¡aunque los principiantes también pueden leerlo! Aunque los principiantes pueden entenderlo, en realidad es un libro de texto auxiliar para la programación de redes Unix. La traducción al chino de "Programación avanzada en entorno UNIX" no es muy buena. Ahora hay una fotocopia y es más conveniente leerla directamente en inglés que en chino.
"Programación de red Unix" W. Richard Stevens: El primer volumen tiene la interfaz de programación de red BSD Socket y otra interfaz de programación de red, pero ahora se usa generalmente BSD Socket, por lo que solo necesita leer aproximadamente la mitad de este libro Eso es todo. El segundo volumen no está diseñado para temas de red, sino que habla principalmente sobre comunicación entre procesos y subprocesos Posix. Entonces puedes leerlo después de leer "APUE". Básicamente, las cosas del sistema se resumen en el segundo volumen de "APUE" y "UNP". Después de leer UNP, aunque el Volumen 1 trata sobre programación de redes, conocerá la mayoría de las técnicas de programación para la programación de sistemas. En China, la Universidad de Tsinghua tradujo "Programación de redes Unix". El traductor tiene un nivel más alto y la traducción es mejor. Por tanto, se recomienda leer la versión china.
"TCP/IP" 1**** tiene tres volúmenes. El primer volumen habla sobre el protocolo, el segundo volumen habla sobre la implementación y el tercer volumen habla sobre la aplicación de programación. No leo mucho.
"TCP/IP" tiene tres volúmenes en total. El primer volumen habla sobre el protocolo, el segundo volumen habla sobre la implementación y el tercer volumen habla sobre la aplicación de programación.
"Uso de TCP/IP para realizar la interconexión de redes" Douglas.E.Comer a **** Hay tres volúmenes en total. El primer volumen habla sobre principios, el segundo volumen habla sobre implementación y el. El tercer volumen habla de protocolos avanzados. Siento que este conjunto de libros es mejor que el de Stevens, e incluso Stevens tiene que admitir que su primer volumen es un clásico. De hecho, incluso si no tiene ningún conocimiento sobre Internet, comprenderá bien sus entresijos después de leer este volumen. Muchos ejercicios del primer volumen también están diseñados para ser muy clásicos y prácticos, porque el propio autor es profesor y el primer volumen es un libro de texto escrito para estudiantes graduados extranjeros. No hay respuestas a las preguntas en el libro, lo que deja que los lectores piensen en ellas, porque las respuestas a las preguntas pueden convertirlo en un hacker intermedio. Las respuestas a estas preguntas se pueden obtener de Douglas, pero él sólo se las proporciona al profesor. Si ha leído el código fuente de Qterm, sabrá que la mayor parte de la implementación de telnet de Qterm proviene del código fuente de este libro. En términos de principios de redes, recomiendo este libro en lugar de TCP/IP Explicado de Stevens.
"Sistema Operativo - Diseño e Implementación" es un libro sobre sistemas operativos, tomando como ejemplo Minix. El idioma nativo del autor no es el inglés, por lo que el inglés parece bastante oscuro. La traducción nacional es "Diseño e implementación del sistema operativo". No he leído la versión china porque el traductor es Eugene Yuan. Me decepcionó mucho su traducción de "APUE". Después de leer este libro,
tendrá una comprensión clara de cómo funciona el sistema operativo subyacente.
Linux Device Driver, 2e, uno de los pocos buenos libros sobre controladores de dispositivos Linux. Sin embargo, el contenido es un poco confuso. Si no tiene experiencia en escribir programas de controladores, se sentirá un poco confundido cuando lo lea por primera vez. He tenido un contacto profundo con los traductores de la primera y segunda edición de la segunda edición traducida nacionalmente de "Controladores de dispositivos Linux", pero en general, aunque la traducción de la segunda edición es algo insatisfactoria, ha recorrido un largo camino en comparación con la primera versión. Para leer este libro, al menos debe encontrar algunos libros sobre "Principios de computadora" y "Arquitectura de computadora" y leerlos. Al menos debe tener una cierta comprensión del hardware y los procesos de trabajo de la computadora.