Recomendaciones del libro: ¿Cuál es el mejor libro sobre programación de sistemas?

Advertisement

Pensé que los libros de W. Stevens eran muy útiles cuando empecé a hacer algunos programas básicos de programación de sistemas de nivel, y son sólo un útil hoy como lo eran hace una década.

Sin embargo, la pregunta como fraseada es semejante a preguntar "¿cuál es el mejor libro sobre aprender cómo conducir?"

Debido a su naturaleza, la programación de sistemas es una de esas cosas donde no hay sustituto para la implementación real, los libros no son particularmente útiles.

Código fuente es el mejor libro de texto que se puede encontrar, y en este día una edad hay un montón de proyectos de sistemas interesantes que son de código abierto.

Grab código fuente para un "sistema" de su elección abiertamente disponible - un servidor web, por ejemplo, es probablemente uno de los más fáciles con los que puede comenzar.

Pon tus manos sucias, repara bichos con él, pasa a un sistema más complejo, vuelve a repetir. Lea el código fuente del kernel para las llamadas al sistema que usan sus aplicaciones y averigüe cómo se implementan.

Una vez que esté familiarizado con los sistemas de nivel de aplicación y desee realizar alguna programación del kernel, busque un trabajo en el campo o participe en un proyecto de código abierto.

Aplicar la misma filosofía de aprendizaje en trozos de tamaño de mordedura a los principales componentes de desarrollo de sistemas, y posteriormente el diseño de sistemas completos de su cuenta.

[1] http: //www.amazon.com/Programmin ...

[2] http: //www.amazon.com/UNIX-Netwo ...


Si usted tiene solamente un libro para leer en sistemas de computadora, entonces recomiendo encarecidamente los sistemas informáticos: la perspectiva de un programador por Randal Bryant y David OHallaron. Http://csapp.cs.cmu.edu/

Este libro (CS: APP2e) es la segunda edición de un libro que se deriva del curso introductorio de sistemas de computación que desarrollamos en la Universidad Carnegie Mellon University, comenzando en el otoño de 1998, llamado "Introducción a los Sistemas Computacionales" (ICS). La presentación se basa en los siguientes principios, que tienen como objetivo ayudar a los estudiantes a ser mejores programadores y ayudarlos a prepararse para los cursos de sistemas de nivel superior:

  • Los estudiantes deben ser introducidos a los sistemas informáticos desde la perspectiva de un programador, más bien desde la perspectiva más tradicional de un implementador de sistemas. ¿Qué significa esto?
  • Los estudiantes deben obtener una visión del sistema completo, que comprende el hardware, el sistema operativo, el compilador y la red.
  • Los estudiantes aprenden mejor al desarrollar y evaluar programas reales que se ejecutan en máquinas reales.

Cubrimos representaciones de datos, representaciones a nivel de máquina de programas C, arquitectura de procesadores, optimizaciones de programas, jerarquía de memoria, enlaces, flujo de control excepcional (excepciones, interrupciones, procesos y señales Unix), memoria virtual y gestión de memoria, S, programación de red básica y programación simultánea. Estos conceptos están respaldados por series de tareas divertidas y prácticas. Vea el Prefacio del manuscrito para más detalles.

También verifique http://www.cs.cmu.edu/~213/ para asignaciones de laboratorio de 213 curso.


Para un libro sobre la programación de nuevos sistemas informáticos, realmente me gustan los principios de diseño de sistemas informáticos [1] (segunda parte disponible en la web en [2]).

Los libros sobre la programación de sistemas informáticos en particular son más especializados. Para Linux, estoy actualmente enamorado de la interfaz de programación de Linux [3], pero hay otros excelentes libros disponibles.

[1] http: //www.amazon.com/Principles ...
[2] http: //ocw.mit.edu/resources/res ...
[3] http://nostarch.com/tlpi


Estos dos libros le harán un ** rockstar ** programador de sistemas dándole las dos perspectivas a nivel de usuario y la programación a nivel de kernel.

Programación de Sistemas Linux - Robert Love.

Para la programación de sistemas a nivel de usuario, que se ocupa de las herramientas del sistema de escritura como gcc, bash, servidores web, etc. Esto le hará competente en el uso de las llamadas al sistema, las funciones de libc y la comprensión de las funcionalidades del kernel.

Linux System Programming: Hablando Directamente con el Núcleo y la Biblioteca C: Robert Love: 9781449339531: Amazon.com: Books

Desarrollo del kernel de Linux - Robert Love.

Esta es la otra parte de la programación de sistemas que implica escribir módulos del kernel, controladores de dispositivos, etc. Love describe las implementaciones de kernel subyacentes tales como programadores de procesos, administración de dispositivos y memoria, implementaciones de llamadas de sistema, estructuras de datos de kernel y mucho más. Poco a poco, también le presentará a linux código fuente y la comunidad.

Amazon.com: Linux Kernel Development (3ra Edición) (9780672329463): Robert Love: Libros


Es realmente difícil especificar uno como "el mejor" libro para la programación de sistemas. Realmente depende de lo que usted está buscando.

Programación Unix Avanzada y Programación Avanzada en el entorno Unix son realmente buenos para cubrir muchos temas.

Modernos sistemas operativos de Tanenbaum es también un buen libro para hacer referencia.

Similar Posts: