La Red de Conocimientos Pedagógicos - Aprendizaje de redacción de artículos/tesis - Libros sobre programación LINUX

Libros sobre programación LINUX

Suponga que está en una clase de informática y ha estudiado todos los cursos básicos del departamento de informática, como estructuras de datos, sistemas operativos, arquitectura, principios de compilación y redes informáticas.

Creo que se puede dividir en cuatro etapas, desde el nivel bajo hasta el nivel avanzado.

Uso desde la instalación = >Comandos comunes de Linux = programación del sistema gtLinux = desarrollo del kernel gt leyendo el código fuente del kernel

Al aprender los comandos comunes de Linux, debes aprender a compilar el kernel, optimizar el sistema y ajuste el parámetro.

Hay demasiados libros de instalación y comandos comunes. Simplemente busque uno que sea un poco más detallado y también necesitará aprender expresiones regulares.

La programación de sistemas recomienda la programación avanzada en entorno Unix, que en términos coloquiales se llama APUE.

Y "Programación de red Unix"

En este momento, probablemente necesite leer la información para comprender el formato, el conector y el cargador del archivo elf. Es mejor un libro de texto chino llamado "Comprensión profunda de los sistemas informáticos".

En la etapa de desarrollo del kernel, se lee el código fuente del kernel. El desarrollo del kernel de Linux comienza con la escritura de controladores y se profundiza gradualmente.

Los libros de referencia son los siguientes: Controlador de dispositivo Linux, llamado ldd en jerga.

Desarrollo del kernel de Linux, la jerga se llama lkd.

Comprender el kernel de Linux, o utlk en jerga.

Análisis de escenarios del código fuente de Linux

Estos cuatro libros son de lectura obligada para el kernel.

Finalmente, en la tercera y cuarta etapa, la acción es lo más importante, las palabras vacías son inútiles. No se pueden entender esas cosas simplemente leyendo sin encubrir o tomar medidas.

Sugerencias para aprender métodos de programación de Linux/Unix

Ruta de aprendizaje sugerida:

Primero aprenda editores, vim, emacs, etc.

Luego, aprenda a crear archivos. Siempre que comprenda un poco, podrá prepararse para la programación.

Entonces mira el lenguaje de programación C K;r. En este caso, básicamente puedes hacer programación general. Por cierto, busque un libro sobre estructuras de datos.

Si quieres aprender programación UNIX/LINUX, "APUE" es un libro de texto absolutamente clásico. Para profundizar los conceptos básicos, estudia el segundo volumen de "UNP". De esta manera básicamente puedes dominar el sistema.

Luego lea el primer volumen de "Internet Internet usando TCP/IP" de Douglas E. Comer para comprender la red, y luego lea el primer volumen de UNP. No solo aprenda programación de redes, sino que también se familiarice con algunas técnicas comunes de programación de sistemas. Si continúa con la programación de redes, le recomiendo leer el tercer volumen de "Conexión a Internet TCP/IP", que contiene muchos protocolos de aplicación como telnet y ftp.

Si desea escribir un controlador de dispositivo, primero debe estar familiarizado con las interfaces de programación de su sistema, como archivos e IPC, y luego aprender LDD》2.

Comentarios sobre varios libros de texto clásicos;

"Lenguaje de programación C" Libro de texto de programación en lenguaje C clásico K ampr, el autor es el inventor del lenguaje C, el contenido del libro de texto es simple. Aunque es un poco antiguo, es un manual imprescindible y ahora lo leo con frecuencia. El espacio es relativamente pequeño, pero ganarás algo cada vez que lo leas. Además, también puede utilizar la programación en lenguaje C de Tan Haoqiang.

"Programación avanzada en entorno UNIX" W. Richard Stevens: También es un libro muy clásico (¡tonterías, el libro de Stevens no es un clásico! Aunque los principiantes también pueden entenderlo, de hecho lo es). Materiales auxiliares para la programación de redes Unix. El nivel de traducción nacional de programación avanzada en un entorno UNIX no es muy bueno. Hoy en día existe una versión fotocopia, por lo que es más fácil leerlo directamente en inglés que en chino.

"Programación de red UNIX" W. Richard Stevens: El primer volumen habla sobre la interfaz de programación de red BSD Socket y otra interfaz de programación de red, pero BSD Socket ahora se usa comúnmente, por lo que solo necesita leer este libro. Aproximadamente la mitad. El segundo volumen no tiene ningún diseño sobre la red y habla principalmente sobre comunicación entre procesos y subprocesos Posix.

Para que puedas verlo después de ver APUE. Básicamente, el sistema se resume en APUE y UNP Vol 2. Después de leer UNP, conocerá la mayoría de las habilidades de programación de sistemas, incluso si el primer volumen trata sobre programación de redes. La programación de redes Unix fue traducida por la Universidad de Tsinghua en China. El traductor tiene habilidades básicas relativamente altas y la traducción es relativamente buena. Por eso recomiendo ver la versión china.

TCP/IP Solutions tiene tres volúmenes, uno trata sobre el protocolo, el segundo trata sobre la implementación y el tercero trata sobre la aplicación de programación. No he visto mucho de eso. Pero algunas personas dicen que es un clásico, pero no tienen tiempo para leer el segundo volumen, por lo que no conviene valorarlo.

“Interconexión a Internet mediante TCP/IP” Douglas. E.Comer tiene tres volúmenes, uno sobre principios, otro sobre implementación y el tercero sobre protocolos de alto nivel. Siento que esta colección es mejor que la de Stevens, e incluso Stevens tiene que admitir que el primer volumen es un clásico. De hecho, incluso si no tienes ningún conocimiento sobre Internet en el primer volumen, conocerás los entresijos de Internet después de leerlo. Hay muchos ejercicios en el primer volumen que también son clásicos y prácticos, porque el autor es profesor y el primer volumen es un libro de texto para estudiantes de posgrado extranjeros. Los ejercicios no tienen respuestas y se deja que el lector piense en ellos, ya que las respuestas a las preguntas pueden convertirlo en un hacker intermedio. Las respuestas a estas preguntas se pueden obtener como Douglas, pero sólo él le dio al profesor el segundo volumen, que no leí mucho. El volumen 3 se puede utilizar como manual de referencia y los ejemplos también son clásicos. Si ha visto 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. Con respecto al libro "Principios de red", lo recomiendo en lugar de la solución TCP/IP de Stevens.

"Sistema Operativo - Diseño e Implementación" Este es un libro sobre sistemas operativos, tomando Minix como ejemplo. El idioma nativo del autor no es el inglés, por lo que el inglés parece oscuro y difícil de entender. La traducción nacional es "diseño e implementación de sistemas operativos". No he leído la versión china porque el traductor es Eugene Yuan y su traducción de "Apu" me decepcionó. Después de leer este libro, entiendo cómo funciona el sistema operativo subyacente.

Tener una comprensión clara.

Controladores de dispositivos Linux" 2e es uno de los pocos buenos libros sobre controladores de dispositivos Linux. Pero el contenido es un poco desordenado. Si no tiene experiencia escribiendo controladores, puede resultar un poco confuso a primera vista. He tenido un contacto profundo con los traductores de la segunda, primera y segunda ediciones de las traducciones nacionales de controladores de dispositivos Linux, pero en general, aunque la traducción de la segunda edición es algo insatisfactoria, ha ido más allá de la primera. Para leer este libro, al menos debe encontrar algunos libros sobre principios y arquitectura de computadoras para leer, y al menos comprender el proceso de trabajo del hardware y las computadoras.