Une Bibliographie Linux (The Linux Reading List HOWTO)

Eric S. Raymond Traduction Thierry Le Quéau, thierry.lequeau@wanadoo.fr 1.2, 29 Novembre 1997

Ce document donne la liste des livres de référence que je considère essentiels pour débuter et programmer sous UNIX (et spécialement sous Linux).

Table des matières

1 Introduction 2 1.1 But de ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Nouvelles versions de ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Joindre l’auteur : commentaires et corrections . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Autres ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Conventions utilisées dans ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Approche générale, histoire et pratique. 3

3 Livres sur les généralités UNIX/LINUX 3 3.1 Installation et administration de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.2 Utiliser Unix & Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3 Sécurité du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 Livres sur les shell, les langages de commandes, la programmation Web 4

5 Livres sur les éditeurs de texte 5 5.1 TeX et LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

6 Livres sur la programmation en C et C++ 6 6.1 C et C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2 L’interface des appels systèmes en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

7 Livres sur le réseau 7

8 Livres sur l’implémentation du noyau sous Unix 7 8.1 Ancêtres de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8.2 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8.3 Relatifs à Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

9 Livres sur l’architecture et la programmation des processeurs Intel 8 10 Livres sur le matériel PC 9

11 Aspects administratifs 9

11.1 Conditions d’utilisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

11.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1 Introduction

1.1 But de ce document

Ce document donne la liste des livres de référence que je considère essentiels pour débuter et programmer sous UNIX (et spécialement sous Linux).

1.2 Nouvelles versions de ce document

De nouvelles versions de ce document seront postées régulièrement dans comp.os.linux.answer. Elles seront également disponibles sur les divers sites WWW et FTP Linux, notamment le site du LDP (Linux Documentation Project). La version française est disponible sur <http://www.freenix.fr/linux/HOWTO>.

Vous pouvez aussi voir la dernière version à l’adresse <http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.
html>.

1.3 Joindre l’auteur : commentaires et corrections

Si vous avez des questions ou des commentaires au sujet de ce document (ou si vous voulez conseiller un livre), ne le gardez pas pour vous, faites-en part à Eric S. Raymond, esr@thyrsus.com. Je recevrai avec plaisir toute suggestion ou critique.

1.4 Autres ressources

Pour les HOWTOs en ligne, magazines et autres supports voyez à l’adresse du Linux Documentation Project

<http://sunsite.unc.edu/LDP/HOWTO>. En français : <http://www.freenix.fr/linux/HOWTO>.

Il y a quelques années j’ai écrit une bibliographie sur UNIX, moins axée sur LINUX, qui présente encore quelque intérêt et peut prêter à sourire. Vous pouvez trouver la "Loginataka" à l’adresse <http://www.

ccil.org/~esr/faqs/loginataka.html>.

1.5 Conventions utilisées dans ce document

Les commentaires qui ne sont pas entre guillemets sont les miens, ou je n’ai pas jugé bon de modifier ceux de Jim Haynes (mon prédécesseur). Les commentaires envoyés par d’autres personnes sont entre guillemets, précédés du nom de leur auteur. (JH = Jim Haynes).

Les URLs "voir" apparaissant à côté des informations sur la publication renvoient au catalogue en ligne de la maison d’édition et pointent généralement sur une page contenant une vue de la couverture, une brève description et un formulaire de commande. Certains ouvrages ne l’on pas, parce que le site web utilise des cadres rendant impossible l’accès direct à la page concernée.Pour les livres édités par Addison-Wesley, l’url vous amène sur la page de garde, le chemin amenant jusqu’au livre semblant poser problème aux sgml-tools.

Les différents sujets sont d’abord traités de manière générale. Les sections suivantes aprofondiront le sujet. (dans l’ordre : généralités, programmation au niveau utilisateur, programmation du noyau, enfin le matériel.) J’ai essayé de présenter d’abord les livres les plus utiles, dans la mesure où ils me sont familiers. Si l’un de mes ouvrages est cité en premier, il s’agit d’une coïncidence embarrassante ! (Toute suggestion pour une meilleure organisation acceptée avec plaisir). NdT: Vous pouvez trouver les Editions O’Reilly en français à

l’adresse suivante : O’Reilly France <http://www.ora.com/www/international/france/index.html>

2 Approche générale, histoire et pratique.

The New Hacker’s Dictionary (Third Edition)

Raymond, Eric S.; MIT Press; 1996; ISBN 0-262-68092-0; 547pp.

Voir <http://www-mitpress.mit.edu/book-home.tcl?isbn=0262680920>.

Euh, un guide sur la culture internet. A beaucoup de fans. HTML à : Jargon File Resource Page <http://www.ccil.org> Version Française : "Le Cyberlexis, dictionnaire du jargon informatique", 1997,Edition Masson, 345FF

A Quarter Century of Unix Salus, Peter H.; Addison-Wesley; 1994; ISBN 0-201-54777-5; 256pp.

Voir <http://www.awl.com/cp/authors/salus/unix/unix.html>

Linux fait partie de la tradition Unix. Ce livre retrace l’histoire d’Unix vu par ses utilisateurs (origine, évolution, expansion).

The Mythical Man Month (Anniversary Edition)

Brooks, Frederick P.; Addison-Wesley 1995 (ISBN 0-201-83595-9).

Voir <http://cseng.aw.com>.

Le seul livre sur la programmation qui devrait être lu par tout le monde. Alan Cox : "Je ne recommande pas ce livre pour sa valeur technique mais plus pour le réalisme et le bon sens des projets proposés." JH : "Ah oui. Qu’est-ce que ça aurait été si on avait donné à Linus 200 programmeurs et si on lui avait demandé de fournir Linux en 3 mois !" Version française : "Le Mythe du mois-homme" 1996, Edition Inter. Thomson, 240FF.

Bell System Technical Journal, July-August 1978, Vol. 57, No. 6, part 2 AT&T; 416 pp.

Plusieurs articles sur les débuts d’Unix, notamment : Ritchie & Thompson, "The UNIX Time Sharing System"; Thompson, "UNIX Implementation"; Richie, "A Retrospective"; Bourne, "The UNIX Shell"...

3 Livres sur les généralités UNIX/LINUX

3.1 Installation et administration de Linux

Linux Installation and Getting Started Welsh, Matt; LDP; 1997. Disponible sur la page d’accueil du LDP, ou directement à : <http://

sunsite.unc.edu/LDP/LDP/gs/gs.html>.

On y trouve comment installer Linux, l’explication des bases de Linux, ainsi qu’une initiation à l’administration système.

Linux System Administrator’s Guide Wirzenius, Lars; LDP; 1997. Disponible sur la page d’accueil du LDP, ou directement à : <http:

//sunsite.unc.edu/LDP/LDP/sag>.

Un excellent livre pour débuter. On y trouve comment entretenir et administrer un système Linux.

Essential System Administration (Second Edition)

Frisch, Aeleen; O’Reilly; 1995; ISBN 0-937175-80-3; 788 pp; $32.95.

Voir <http://www.ora.com/catalog/esa2/noframes.html>.

Une exploration plus en profondeur des tâches normales d’administration système. Ce n’est pas un livre exclusivement sur Linux mais il contient des infos sur le matériel. Version française de ce livre : Les bases de l’administration système. ISBN : 2-84177-008-7; 768 pages, 320 francs.

3.2 Utiliser Unix & Linux

Linux in a Nutshell Hekman, Jessica P. et al.; O’Reilly; 1997; ISBN 1-56592-167-4; 438 pp. $9.95.

Voir <http://www.ora.com/catalog/linuxnut/noframes.html>.

D’après "The Desktop Reference for Linux" de O’Reilly. Pour les utilisateurs de Linux, cet ouvrage rend obsolète l’édition "Unix in a Nutshell" qui était orientée stations SVR4/Solaris.

Running Linux (Second Edition)

Welsh, Matt, & Kaufman, Lar; O’Reilly; ISBN 1-56592-151-8; 1996; 650pp; $24.95.

Voir <http://www.ora.com/catalog/runux2/noframes.html>.

Tout ce que vous avez besoin pour comprendre, installer et utiliser le système Linux. Excellent livre pour débutants. Version française : "Linux mode d’emploi" 1996, Edition Sybex, 436p, 79FF.

3.3 Sécurité du système

Practical Unix Security Garfinkel, Simpson, and Spafford, Gene; O’Reilly Associates; ISBN 0-56592-148-8; 1991.

Voir <http://www.ora.com/catalog/puis/noframes.html>.

Ronald P. Miller : "Quelques reprises du livre "Essential System Admin", mais globalement bien fait sur la sécurité, et spécialement pour ceux qui veulent créer un serveur sous Linux accessible par de multiples utilisateurs via le net."

Firewalls & Internet Security Cheswick, William R. & Bellovin, Steven M.; Addison-Wesley; 1994; ISBN 0-201-63357-4; 320pp. Voir <http://cseng.aw.com/>. Il existe un livre "Firewalls : la sécurité sur Internet" en français mais qui n’a rien à voir avec l’édition anglaise.

4 Livres sur les shell, les langages de commandes, la programmation Web

Programming Perl (Second Edition)

Wall, Larry & Christiansen, Tom & Schwartz, Randal; O’Reilly; 1997; ISBN 0-56592-149-6; 644pp.

Voir <http://www.ora.com/catalog/pperl2/noframes.html>.

Le Shell est mort (non seulement pour son langage de programmation mais aussi pour son écriture archaïque), Vive Perl ! C’est la seconde édition du livre sur Perl, bien mieux organisée que la première et elle intègre Perl 5. Version française : "Programmation en Perl 2e édition" ISBN : 2-84177-004-4, 710 pages, 280 francs.

Programming Python Lutz, Mark; O’Reilly; 1997; ISBN 0-56592-197-6; 880pp.

Voir <http://www.ora.com/catalog/python/noframes.html>.

Etape suivante après Perl. Belle présentation de Python, avec une meilleure intégration de C, il est plus adapté aux projets d’envergure.

HTML : The Definitive Guide (2nd Edition)

Musciano, Chuck & Kennedy. Bill; O’Reilly; 1997; ISBN 0-56592-235-2; 552pp.

Voir <http://www.ora.com/catalog/html2/noframes.html>.

Le meilleur guide de référence que je connaisse, et le seul livre sur le HTML dont vous ayez besoin à moins de vouloir utiliser le CGI (Common Gateway Interface).

The Unix Programming Environment Kernighan, Brian, and Pike, Rob; Prentice-Hall; 1984; ISBN 0-13-937681-X; 1984.

Un pur classic, sans doute la meilleure présentation en un seul volume de la philosophie UNIX. Version française : "L’environnement de programmation UNIX" 1986, International Edition, 376p, 259FF.

5 Livres sur les éditeurs de texte

5.1 TeX et LaTeX

The LaTeX Companion Goossens, Michael & Mittlebach, Frank, & Samarin, Alexander; Addison-Wesley; 1994; ISBN 0-201-54199-8; 530pp.

Voir <http://cseng.aw.com/>.

Si vous êtes un des utilisateurs voulant savoir comment LaTeX peut vous aider à créer les plus beaux documents sans devenir un expert, alors ce guide est pour vous (tiré de la préface). Bruce Thompson ajoute : "Un très joli livre qui vous donne beaucoup d’infos sur les nouvelles extensions à LaTeX avec un large choix d’exemples vous montrant comment effectuer la mise en forme de vos documents."

LaTeX: A Document Preparation System (Second Edition)

Lamport, Leslie; Addison-Wesley; 1994; ISBN 0-201-52983-1; 256pp.

Voir <http://cseng.aw.com/>.

Bruce Thompson : "Le top des références sur LaTeX 2.09 par son auteur. Une nouvelle édition couvrant LaTeX2e est en préparation (cette version est incluse dans la distribution TeX/LaTeX). LaTeX 2.09 est compatible 100% avec LaTeX2e. Un Must pour quiconque veut utiliser LaTeX. Il donne une introduction simple sur la préparation de document et les différents outils pour les produire avec une qualité professionnelle. De nombreux exemples."

The TeXbook, Volume A of Computers and Typesetting Knuth, Donald A.; Addison-Wesley; 1986, ISBN 0-201-13448; 496pp. Voir <http://cseng.aw.com/> Bruce Thompson : "Le Livre d’Or de TeX (comprenant manuel d’utilisateur et livre de référence). Vous n’en aurez probablement jamais besoin pour utiliser TeX de manière normale, mais il reste toutefois un livre fascinant." Je rajouterais que ce livre ne s’adresse pas aux néophytes, à réserver aux experts de TeX.

The METAFONT book, Volume C of Computers and Typesetting Knuth, Donald A.; Addison-Wesley; 1986; 0-201-13444-6, 1986; 384pp.

Voir <http://cseng.aw.com/>

Bruce Thompson : "Le guide définitif et complet sur METAFONT, une extension de TeX pour la création de polices de caractères. Un excellent ouvrage si vous projetez de créer vos propres polices pour TeX et LaTeX. METAFONT est inclus avec la distribution normale de TeX/LaTeX." Ce livre n’est vraiment pas (mais alors pas du tout !) pour les néophytes, pro only !

6 Livres sur la programmation en C et C++

6.1 C et C++

The C Programming Language (Second Edition)

Kernighan, Brian W.; Ritchie, Dennis M; Prentice-Hall; 1988; ISBN 0-13-110362-8, 272pp.

Une seconde édition améliorée et inspirée du livre édité par le créateur du C "K & R", incluant ANSI C. Toujours le meilleur ! Version française : "Le langage C norme ANSI" seconde édition, 1997, Edition Masson, 296p, 195FF.

Who’s Afraid of C++?

Heller, Steve; Academic Press; 1996; ISBN 0-12-339097; 508pp.

Le meilleur livre d’initiation sur la programmation en C++ que je connaisse.

6.2 L’interface des appels systèmes en C

POSIX Programmer’s Guide : Writing Portable Unix Programs Lewine, Donald; O’Reilly; 1992; ISBN 0-937175-73-0; 607pp.

Voir <http://www.ora.com/catalog/posix/noframes.html>.

Une excellente référence pour tout programmeur sous POSIX.1. Je préfère ce titre à celui choisi par JH.

The Posix.1 Standard : A Programmer’s Guide Zlotnick, Fred; Benjamin Cummings; 1991; ISBN 0-8053-9605-5; 379pp.; $35.95 (USA).

JH : "Une fois je me suis plaint de l’absence de pages man pour la section 2. Quelqu’un m’a aussitôt dit de me procurer un livre sur POSIX, qui reflétait bien le sujet de cette section sous Linux. J’aime bien cet ouvrage parce que je ne suis pas un programmeur professionnel et que son auteur donne beaucoup d’explications et d’exemples."

7 Livres sur le réseau

Unix Network Programming Stevens, W. Richard; Prentice Hall; 1990; ISBN 0-13-949876-1; 772 pp.; $54 (USA).

Tout ce que vous voulez savoir sur ce sujet et même sûrement au delà (vraiment, XNS!?). Bien qu’il soit antérieur au web, il constitue une référence pour ses bases.

Linux Network Administrator’s Guide Kirch, Olaf; O’Reilly; 1995; ISBN 1-56592-087-2; 335pp.

Voir <http://www.ora.com/catalog/linag/noframes.html>.

Un guide pratique sur le protocole TCP/IP et autres outils associés sous Linux. Accessible également sur la page du Linux Documentation Project à <http://sunsite.unc.edu/LDP/>, ou directement à

<http://sunsite.unc.edu/LDP/LDP/nag/nag.html>.

Version française : "Administration réseaux sous Linux" 1995, Edition O’Reilly, 336p, 220FF.

TCP/IP Network Administration Hunt, Craig; O’Reilly Associates, ISBN 0-937175-82-X; 1992; 472pp.

Voir <http://www.ora.com/catalog/tcp2/noframes.html>.

Moins spécifique à Linux que le livre de Kirch. Développe le TCP/IP en profondeur, incluant le routage et BGP. Version française : "Administration de réseaux" 1995, Edition Eddison Wesley, 576p, 348FF.

DNS and BIND (Second Edition)

Albitz, Paul, and Liu, Cricket; O’Reilly; 1996; ISBN 1-56592-236-0; 1992; 438pp; $32.95.

Voir <http://www.ora.com/catalog/dns2/noframes.html>.

Explique en profondeur le DNS, utile pour les personnes utilisant des installations sophistiquées en réseau relié au net. Couvre aussi la programmation des librairies BIND.

Sendmail (Second Edition)

Costales, Bryan & Allman, Eric; O’Reilly; ISBN 1-56592-222-0; 1997; 1050 pp; $32.95

Voir <http://www.ora.com/catalog/sendmail2/noframes.html>.

Un guide complet sur l’outil de courrier installé par défaut sur UNIX et LINUX.

8 Livres sur l’implémentation du noyau sous Unix

8.1 Ancêtres de Linux

The Design of the Unix Operating System Bach, Maurice J.; Prentice-Hall; ISBN 0-13-201799-7; 470pp.; $60 (USA). Le livre qui a permis à Linus de débuter. Version française : "Conception du système UNIX" 1989, Edition Masson, 512p, 459FF.

Operating Systems, Design and Implementation; Tanenbaum, Andrew S.; Prentice-Hall; 1987. Un livre apprécié d’Alan Cox (un des concepteurs du noyau). Tanenbaum a conçu Minix que Linus a remodelé pour en faire Linux. Version française : "Système d’exploitation, systèmes centralisés, systèmes distribués" 1994, International Edition, 848p, 357FF.

8.2 Linux

Linux Kernel Hackers’ Guide Johnston, Michael K. Disponible sur le Web à la page du Linux Documentation Project <http://sunsite.unc.edu/LDP/>

ou directement à <http://www.redhat.com:8080/HyperNews/get/khg.html>.

LINUX Kernel Internals Beck, Michael & Bohme, Harold & Mirko, Dziadzka & Kunitz, Ulrich & Magnus, Robert & Verworner, Dick; Addison Wesley; 1996; ISBN : 0-201-87741-4; 480pp.

Voir <http://cseng.aw.com/>.

Un manuel sur la programmation du noyau sous Linux 1.2, légèrement périmé.

8.3 Relatifs à Linux

The Design and Implementation of the 4.4BSD Unix Operating System McKusick, Marshall Kirk, Bostic, Keith, Karels, Michael J., and Quarterman, John S.; Addison-Wesley; 1996; ISBN 0-201-54979-4; 608pp.

Voir <http://cseng.aw.com/>.

Le successeur de l’ouvrage sur l’implémentation du noyau de BSD 4.3, qui a influencé le concept de Linux (spécialement pour les sockets et travail sur internet). Ce livre couvre les bases de BSD 4.4 pour BSD/OS, FreeBSD et NetBSD.

Porting Unix to the 386 Jolitz, William F., and Jolitz, Lynne G.; Dr. Dobb’s Journal; Jan 1991-July 1992.

9 Livres sur l’architecture et la programmation des processeurs Intel

80386 Programmer’s Reference Manual Intel Corp.; ISBN 1-55512-022-9; 1986. 1ère partie : Programmation des applications, les types de données, Les modèles d’adressage, mode d’emploi. 2ème partie : Programmation des systèmes, architecture, gestion de la mémoire, protection, multi-taches, Entrée/Sortie, exceptions et interruptions, initialisation, co-processeur et multiprocesseur. 3ème partie : Compatibilité avec les machines plus anciennes x86. 4ème partie : Manuel des instructions.

80386 System Software Writer’s Guide Intel Corp.; ISBN 1-55512-023-7; 1987. Ce livre explique les caractéristiques du 386 pour les programmeurs de système d’exploitation. Il contient un chapitre sur l’implémentation d’Unix. Beaucoup d’architectures basées sur le 80386 semblent avoir été prévues avec Multics, les caractéristiques ne sont pas compatibles avec DOS et UNIX.

Programming the 80386 Crawford, John H & Gelsinger, Patrick P.; Sybex; ISBN 0-89588-381-3; 774pp.; $26.95 (USA). Les Jolitz ont utilisé ce livre pour adapter le BSD sur l’architecture 386.

Pentium Processor User’s Manual : Volume 3, Architecture and Programming Manual Intel Corp.; 1993; ISBN 1-55512-195-0; A peu de choses près la version Pentium du manuel de référence listé ci-dessus.

10 Livres sur le matériel PC

Note : ces livres ont quatre ou cinq ans et sont probablement dépassés. Le matériel n’est pas ma tasse de thé...

80386 Hardware Reference Manual Intel Corp.; 1986; ISBN 1-55512-024-5; Connections des pin, synchronisation, type d’ondulation, diagrammes de bloc, voltages, toutes ces sortes de choses.

The Indispensable PC Hardware Book Messmer, Hans-Peter; Addison-Wesley; 1993; ISBN 0-201-62424-9; 1000 pp. JH : "Couvre les plus récentes technologies comme les bus EIDE et PCI."

11 Aspects administratifs

11.1 Conditions d’utilisations

Ce document est copyright 1997 par Eric S. Raymond. Vous pouvez l’utiliser, le diffuser et le reproduire librement pour autant que vous :

– Ne supprimiez ou modifiez pas cette notice de copyright.

– Ne supprimiez ou modifiez pas le numéro de version et la date.

– Ne supprimiez ou modifiez pas le lien vers la version actuelle sur le Web.

– Marquiez clairement toute version condensée ou altérée comme telle.

Ces restrictions visent à protéger les lecteurs potentiels de versions dépassées ou déformées. Si vous pensez avoir un motif justifiant une exception, contactez-moi.

11.2 Historique

Ceci était à l’origine un mini-HOWTO géré par Jim Haynes. J’en ai changé un peu la teneur, essayant d’en faire un document plus autonome et moins dépendant des divers articles bibliographiques de USENET. Les minicommentaires non attribués sont plutôt les miens que les siens. Les rajouts pour la version française n’ont rien à voir avec celle d’origine.