Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Cómo leer "Comprensión profunda de los sistemas informáticos"

Cómo leer "Comprensión profunda de los sistemas informáticos"

Si ha estudiado la estructura, el sistema operativo, la arquitectura, los principios de compilación y la red informática, creo que se puede dividir aproximadamente en 4 etapas, de menor a mayor, desde la instalación y el uso => ​​Linux común comandos => Programación del sistema Linux => Desarrollo del kernel. Lea el código fuente del kernel. Al aprender los comandos comunes de Linux, debe aprender a compilar el kernel usted mismo, optimizar el sistema, ajustar la instalación de parámetros y los libros de comandos de uso común. Está bien encontrar uno un poco más detallado. Durante este proceso, necesita aprender expresiones regulares para la programación del sistema. Recomendamos "Programación avanzada en entorno Unix", que en términos coloquiales se llama "Programación de red Unix". En este momento, probablemente necesite leer la información para comprender el formato de archivo elf, los conectores y los cargadores. Un libro de texto de CMU se llama "Comprensión profunda" en chino y es mejor en la etapa de desarrollo del kernel. Leer el código fuente del kernel, comenzar por escribir los controladores y llegar gradualmente al libro de referencia de desarrollo del kernel de Linux de la siguiente manera: "controladores de dispositivos Linux", que en jerga se llama ldd "desarrollo del kernel de Linux" y lkd "comprender el kernel de Linux" en jerga. Estos cuatro libros llamados utlk "Análisis de escenarios de código fuente de Linux" son libros de lectura obligada para trabajar en el kernel. Finalmente, las palabras vacías no son suficientes para la tercera y cuarta etapa. Sin experiencia práctica, no puedes entender esas cosas y aprender Linux/Ruta de aprendizaje sugerida para los métodos de programación de Unix: primero aprende el editor, vim, emacs, etc. Luego, aprenda a crear el archivo. Siempre que sepa un poco al respecto, podrá prepararse para programar. Luego, eche un vistazo al "Lenguaje de programación C" K&R. De esta manera, básicamente puede realizar programación general. Por cierto, busque un libro sobre estructuras de datos. Si desea aprender programación UNIX/LINUX, "APUE" es un libro de texto absolutamente clásico. Profundice sus habilidades y estudie el segundo volumen de "UNP". De esta manera, básicamente podrás dominar los aspectos del sistema. Luego lea el primer volumen de "Interconexión de Internet con TCP/IP" de Douglas E. Comer para aprender algunos conocimientos sobre redes, y luego lea el primer volumen de "UNP" para aprender no solo la programación de redes, sino también algunos métodos comunes de programación de sistemas. Las técnicas son muy familiares. Si continúa con la programación de redes, se recomienda leer el tercer volumen de "TCP/IP para la interconexión de Internet", que contiene mucha programación sobre 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 del sistema, como archivos, IPC, etc., y luego estudiar "LDD" 2. Evaluación de varios libros de texto clásicos: "El lenguaje de programación C" K&R es un libro de texto de programación en lenguaje C clásico. El autor es el inventor del lenguaje C. El contenido del libro de texto es fácil de entender y comprender. Aunque es un poco antiguo, es un manual imprescindible y todavía lo leo a veces. La extensión es relativamente pequeña, pero cada vez que lo leas, ganarás algo nuevamente. Además, en su lugar se 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, ¡cómo es posible que el libro de Stevens no sea un clásico! Aunque puede ser leído por principiantes, de hecho es parte de "). Programación de red Unix" Esta información de respaldo. El nivel de traducción nacional de "Programación avanzada en entorno UNIX" no es muy bueno. Ahora hay una versión fotocopiada y es más fácil de leer 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. Sin embargo, ahora generalmente se usa BSD Socket, por lo que solo necesita leer aproximadamente la mitad de este libro. El segundo volumen no está diseñado para cubrir cuestiones de red, sino que habla principalmente sobre comunicación entre procesos y subprocesos Posix. Entonces, después de ver "APUE", puedes verlo. Básicamente, el sistema se resume en "APUE" y "UNP" vol2. 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.

En China, la "Programación de redes Unix" fue traducida por la Universidad de Tsinghua. El traductor tiene una experiencia relativamente alta y la traducción es relativamente buena. Por eso se recomienda leer la versión china. "TCP/IP Xiangjie" tiene tres volúmenes: el volumen uno habla sobre protocolos, el volumen dos habla sobre implementación y el volumen tres habla sobre aplicaciones de programación. No he visto mucho de eso. , pero también se dice que es un clásico. No tengo tiempo para leer el Volumen 2, así que no puedo comentar. "Interconexión de Internet mediante TCP/IP" Douglas.E.Comer tiene tres volúmenes: el volumen uno habla sobre principios, el volumen dos habla sobre implementación y el volumen tres habla sobre protocolos avanzados. Siento que esta colección es mejor que la de Stevens, e incluso Stevens tiene que admitir que su primer volumen es muy clásico. De hecho, incluso si no tienes ningún conocimiento de Internet en el primer volumen, conocerás bien los entresijos de Internet después de leerlo. Hay muchos ejercicios en el primer volumen que también están diseñados para ser clásicos y prácticos, porque el autor es profesor y el primer volumen es un libro de texto para estudiantes graduados extranjeros. No hay respuestas a los ejercicios, y se deja que los lectores piensen en ellas, porque las respuestas a las preguntas pueden convertirlo en un Hacker intermedio. Puede pedirle a Douglas las respuestas a estas preguntas, pero él es el único que puede hacerlo. Solo le doy al profesor la Prueba 2. No pienso mucho en ella. La Prueba 3 se puede utilizar como referencia. Los ejemplos del manual también son muy clásicos. 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. Para un libro sobre principios de red, lo recomiendo en lugar de la "Explicación TCP/IP" de Stevens. "Sistema operativo: diseño e implementación" es un libro sobre sistemas operativos, que utiliza Minix como ejemplo. 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 You Jinyuan y su traducción de "APUE" ya me ha decepcionado. Después de leer este libro, comprenderá claramente 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 controladores, se sentirá un poco confundido cuando lo lea por primera vez. La traducción nacional es la segunda edición de "Linux Device Drivers". Tengo un profundo contacto con los traductores de la primera y segunda edición, pero en general, aunque la traducción de la segunda edición es algo insatisfactoria, sigue siendo relativamente buena. Mucho mejor que la primera edición. Para leer este libro, al menos debe encontrar algunos libros sobre "Principios de computadora" y "Arquitectura de computadora" para leerlos de manera informal. Al menos debe tener cierta comprensión del proceso de trabajo del hardware y las computadoras.