con su experiencia, solo leer la fuente del núcleo ayudaría.)
Eimantas
3
RTFS siempre es lo mejor, pero a veces un poco de lectura ligera hace que la fuente sea un poco más fácil de entender.
Stephen Jazdzewski
Alguien que tenga privilegios de edición realmente debería editar ese título.
jjclarkson
1
Actualmente estoy siguiendo los consejos de Matt Might en su artículo, What Every Computer Science Major deberían saber . Recomendó El entorno de programación Unix de Kernighan y Pike, Hacks de servidores Linux, UNIX y Linux System Administration Handbook de Nemeth, Synder, Hein y Whaley, Linux Kernel Development by Love y Unix Network Programming de Stevens, Fenner y Rudoff.
Anthony
1
@Anthony, esos son excelentes recursos, pero más orientados a la línea de usuario / comando. Además, particularmente Linux está cambiando muy rápido en este momento, necesitaría mantenerse actualizado. Recursos de Niza son LWN y Kernelnewbies .
vonbrand
Respuestas:
36
Aquí hay algunas sugerencias sobre cómo entender el "espíritu" de Unix, además de las excelentes recomendaciones que se han hecho en las publicaciones anteriores:
"El entorno de programación de Unix" de Kernighan y Pike: un libro antiguo, pero muestra la esencia del entorno de Unix. También lo ayudará a convertirse en un usuario de shell efectivo.
"Unix para pacientes impacientes" es un recurso útil para aprender a navegar en el entorno Unix. Uno de mis favoritos.
Si desea convertirse en un usuario avanzado, no hay nada mejor que las "Herramientas eléctricas Unix" de O'Reilly, que consisten en consejos y trucos colectivos de profesionales de Unix.
Otro libro que no he visto mencionar que es una lectura divertida y educativa es "Sistemas operativos, diseño e implementación", el libro de Andy Tanenbaum que incluía el código fuente de un sistema operativo Unix completo en 12k líneas de código.
+1 para el libro de los Leones. El xv6 de MIT es una versión moderna de Lions v6 que se ejecuta en máquinas x86 y utiliza ANSI C. Tanto el código fuente como el libro de texto asociado se pueden descargar.
Daniel Näslund
8
Libros / sitios / manuales que uso con frecuencia:
El kernel de Linux : este libro se publica en línea como parte de TLDP (The Linux Documentation Project). No está actualizado y no es un manual interno, pero proporciona información útil y materiales introductorios sobre los principios y mecanismos del núcleo.
Comprensión del kernel de Linux: en mi humilde opinión, es el mejor libro para principiantes que tiene experiencia sobre el diseño y el concepto de los sistemas operativos. Se acepta como actualizado, cubre la versión 2.6 del kernel. Hay una versión HTML del libro en la web, pero creo que probablemente sea warez.
Mientras estudia las partes internas del kernel de Linux, generalmente necesita aprender cómo funciona el hardware y qué hardware proporciona de manera abstracta. Intel tiene excelentes manuales para esto.
En pocas palabras, el núcleo de Linux trata sobre cómo construir e instalar el núcleo, no sobre las partes internas de Linux / Unix. No quiere decir que no sea un buen libro, pero soy un poco parcial. Ah, ambos libros son gratuitos en línea si quieres verlos allí.
Greg KH
5
Programación de sistemas Linux o cualquier otro libro de Robert Love (todos estos son libros de O'Reilly):
Estoy de acuerdo con todos los demás y tengo que decir que Stevens 'APUE (tengo la segunda edición) es un clásico. También me gustaría agregar que The Art of UNIX Programming de Eric Raymond está a la altura de Stevens en mi lista.
Bueno, para BSD Unices, está El diseño e implementación del sistema operativo 4.4BSD, cuyas partes ahora están aparentemente disponibles de forma gratuita en http://www.freebsd.org/doc/en/books/design-44bsd/
Linux Device Drivers es otro buen recurso. Te daría otra forma de entrar en el funcionamiento interno. Del prefacio:
Este es, en la superficie, un libro sobre la escritura de controladores de dispositivos para el sistema Linux. Esa es una meta digna, por supuesto; No es probable que el flujo de nuevos productos de hardware disminuya en el corto plazo, y alguien tendrá que hacer que todos esos nuevos dispositivos funcionen con Linux. Pero este libro también trata sobre cómo funciona el kernel de Linux y cómo adaptar su funcionamiento a sus necesidades o intereses. Linux es un sistema abierto; Con este libro, esperamos que sea más abierto y accesible para una comunidad más grande de desarrolladores.
Para tener una idea de por qué y qué debe soportar el núcleo, eche un vistazo a The Art of Unix Programming de Eric Raymond. Lleva las cosas a un nivel filosófico bastante alto, pero iría bien con los detalles esenciales de otros libros.
Me he referido ampliamente al primero (si tuviera mejor memoria y tuviera más tiempo, sabría mucho más que ahora; pero esa es otra historia). Actualmente estoy leyendo el segundo.
Respuestas:
Aquí hay algunas sugerencias sobre cómo entender el "espíritu" de Unix, además de las excelentes recomendaciones que se han hecho en las publicaciones anteriores:
"El entorno de programación de Unix" de Kernighan y Pike: un libro antiguo, pero muestra la esencia del entorno de Unix. También lo ayudará a convertirse en un usuario de shell efectivo.
"Unix para pacientes impacientes" es un recurso útil para aprender a navegar en el entorno Unix. Uno de mis favoritos.
Si desea convertirse en un usuario avanzado, no hay nada mejor que las "Herramientas eléctricas Unix" de O'Reilly, que consisten en consejos y trucos colectivos de profesionales de Unix.
Otro libro que no he visto mencionar que es una lectura divertida y educativa es "Sistemas operativos, diseño e implementación", el libro de Andy Tanenbaum que incluía el código fuente de un sistema operativo Unix completo en 12k líneas de código.
fuente
Definitivamente desea leer Programación avanzada en el entorno Unix de Stevens . No dejes que el título avanzado te asuste, es muy legible.
fuente
fuente
Libros / sitios / manuales que uso con frecuencia:
El kernel de Linux : este libro se publica en línea como parte de TLDP (The Linux Documentation Project). No está actualizado y no es un manual interno, pero proporciona información útil y materiales introductorios sobre los principios y mecanismos del núcleo.
Comprensión del kernel de Linux: en mi humilde opinión, es el mejor libro para principiantes que tiene experiencia sobre el diseño y el concepto de los sistemas operativos. Se acepta como actualizado, cubre la versión 2.6 del kernel. Hay una versión HTML del libro en la web, pero creo que probablemente sea warez.
Un libro sobre gestión de memoria virtual
Mientras estudia las partes internas del kernel de Linux, generalmente necesita aprender cómo funciona el hardware y qué hardware proporciona de manera abstracta. Intel tiene excelentes manuales para esto.
Intel 64 e IA-32 Architectures Software Developer's Manuales : información detallada y actualizada.
Manual de referencia del programador Intel 80386 : Sé que esto es un poco viejo, pero he aprendido muchas cosas de este manual.
Si necesita estudiar sobre el diseño y el concepto de los sistemas operativos, le sugiero el siguiente libro: Conceptos del sistema operativo .
fuente
O'REILLY Linux Kernel en pocas
palabras y controladores de dispositivo O'REILLY Linux
fuente
Programación de sistemas Linux o cualquier otro libro de Robert Love (todos estos son libros de O'Reilly):
http://oreilly.com/catalog/9780596009588
fuente
Estoy de acuerdo con todos los demás y tengo que decir que Stevens 'APUE (tengo la segunda edición) es un clásico. También me gustaría agregar que The Art of UNIX Programming de Eric Raymond está a la altura de Stevens en mi lista.
fuente
Bueno, para BSD Unices, está El diseño e implementación del sistema operativo 4.4BSD, cuyas partes ahora están aparentemente disponibles de forma gratuita en http://www.freebsd.org/doc/en/books/design-44bsd/
fuente
Linux Device Drivers es otro buen recurso. Te daría otra forma de entrar en el funcionamiento interno. Del prefacio:
fuente
Para tener una idea de por qué y qué debe soportar el núcleo, eche un vistazo a The Art of Unix Programming de Eric Raymond. Lleva las cosas a un nivel filosófico bastante alto, pero iría bien con los detalles esenciales de otros libros.
fuente
¿Puedo sugerir los siguientes dos libros también (además de los otros):
Me he referido ampliamente al primero (si tuviera mejor memoria y tuviera más tiempo, sabría mucho más que ahora; pero esa es otra historia). Actualmente estoy leyendo el segundo.
fuente