De Linux Reading List HOWTO door Eric S. Raymond, Vertaald door: Ellen Bokhorst v1.11, 23 maart 2000 In dit document staan de boeken opgesomd die ik het meest waardevol acht voor iemand die Unix (in het bijzonder Linux) vanaf het begin wil proberen te leren. ______________________________________________________________________ Inhoudsopgave 1. Introductie 1.1 Doel van dit document 1.2 Nieuwe versies van dit document 1.3 Feedback en Correcties 1.4 Gerelateerde bronnen 1.5 In dit document gebruikte conventies 2. Boeken over Cultuur, Historie en Feiten 3. Boeken over Unix/Linux in het algemeen 3.1 Linux Installatie en Beheer 3.2 Gebruik van Unix & Linux 3.3 Systeembeveiliging 4. Boeken over Shell, Script, en Web Programmering 5. Boeken over Tekstopmaak 5.1 Tex en LaTeX 6. Goede programmeerstijl 7. Boeken over C en C++ Programmeren 7.1 C en C++ 7.2 C System Call Interface 8. Boeken over netwerken 9. Boeken over Unix Kernel Implementatie 9.1 Voorvaders van Linux 9.2 Linux 9.3 Betrekking hebbende op Linux 10. Boeken over de Intel processor architectuur en programmering 11. Boeken over PC-Klasse Hardware 12. Administratieve zaken 12.1 Gebruiksvoorwaarden 12.2 Historie ______________________________________________________________________ 1. Introductie 1.1. Doel van dit document In dit document staat een boeklengte aan referenties die ik beschouw als essentieel voor het leren van Unix (in het bijzonder Linux) en hoe er onder te programmeren. 1.2. Nieuwe versies van dit document Nieuwe versies van de Linux Reading List HOWTO zullen periodiek worden gepost naar comp.os.linux.answers. Ze zullen ook worden geupload naar diverse Linux WWW en FTP-sites, inclusief de LDP home page. Je kunt de laatste versie hiervan ook op het World Wide Web bekijken via de URL <http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html>. 1.3. Feedback en Correcties Als je betreft dit document vragen of opmerkingen hebt (of gewoon een boek wilt aanbevelen waarvan je vindt dat het erin zou moeten staan), mail dan gerust naar Eric S. Raymond, via esr@thyrsus.com. Ik verwelkom alle suggesties en kritiek. 1.4. Gerelateerde bronnen Zie de Linux Documentatie Project home page <http://sunsite.unc.edu/LDP/HOWTO> voor online HOWTO's, magazines, en ander materiaal, niet zijnde boeken. Een aantal jaren geleden schreef ik een minder op Linux gerichte Unix bibliografie die mogelijk nog steeds interessant kan zijn en een zekere amusante waarde heeft behouden. De Loginataka is te vinden op <http://www.tuxedo.org/~esr/faqs/loginataka.html>. SAGE, de System Administrator's Guild, beheert een uitstekende lijst met relevante boeken op <http://www.usenix.org/sage/sysadmins/books/booklist.html>. 1.5. In dit document gebruikte conventies Opmerkingen niet geplaatst tussen aanhalingstekens zijn óf van mijzelf óf zag ik er geen reden toe ze van die van Jim Haynes (eerdere beheerder van dit document) af te zonderen. Opmerkingen ingezonden door anderen zijn tussen aanhalingstekens geplaatst, en zijn vergezeld van degene die de opmerkingen maakte voor hem (JH is Jim Haynes). "Zie" URL's aansluitend op uitgeversinformatie verwijst direct naar de webcatalog van de uitgever en brengt je naar een pagina met een weergave van de omslag, reclame op de omslag van het boek en bestelinformatie. Als de URL bij boeken ontbreekt betekent dit dat de uitgever gebruik maakt van frames en er geen bookmark mogelijk is van de catalog pagina's. Onderwerplistings gaan grofweg van de buitenkant naar de binnenkant (cultuur naar user-land programmeren naar kernelprogrammering naar hardware). Binnen secties heb ik getracht de meest nuttige boeken als eerste op te sommen voor zover ik er bekend mee ben. Het is slechts een beschamend toeval dat hierin één van mijn eigen boeken als eerste wordt opgesomd, eerlijk waar! (Suggesties voor een betere organisatie vrolijk geaccepteerd). 2. Boeken over Cultuur, Historie en Feiten The New Hacker's Dictionary (Third Edition) Raymond, Eric S.; MIT Press; 1996; ISBN 0-262-68092-0; 547pp. Zie <http://www-mitpress.mit.edu/book- home.tcl?isbn=0262680920>. Um, er. Een leidraad naar de Internet cultuur. Heel veel mensen vinden het een prettig boek. HTML op de Jargon File Resource Page <http://www.tuxedo.org>. A Quarter Century of Unix Salus, Peter H.; Addison-Wesley; 1994; ISBN 0-201-54777-5; 256pp. Zie <http://www.awl-he.com/titles/13683.html> Linux maakt onderdeel uit van de Unix traditie. Dit boek is een mondelinge historie van Unix -- hoe het voortkwam, hoe het zich ontwikkelde, hoe het zich verspreidde -- door de mensen die er waren. The Mythical Man Month (Anniversary Edition) Brooks, Frederick P.; Addison-Wesley 1995 (ISBN 0-201-83595-9). Zie <http://www.awl-he.com/titles/14147.html>. Dat ene boek over software engineering dat iedereen zou moeten lezen. Alan Cox: "Dit zou ik willen aanbevelen en niet vanwege de technische waarde, maar voor het toepassen van gezond verstand en de realiteit bij computerprojecten." JH: "Ah, ja. Wat als Linus 200 programmeurs in dienst zou hebben gehad en hem was verteld Linux in 3 maanden te produceren!" Bell System Technical Journal, July-August 1978, Vol. 57, No. 6, part 2 AT&T; 416 pp. Veel vroege werken over Unix, inclusief Ritchie & Thompson, "The UNIX Time Sharing System"; Thompson, "UNIX Implementation"; Ritchie, "A Retrospective"; Bourne, "The UNIX Shell"... 3. Boeken over Unix/Linux in het algemeen 3.1. Linux Installatie en Beheer Linux Installation and Getting Started Welsh, Matt; LDP; 1997. Beschikbaar op de LDP homepage, of direct bij <http://linuxdoc.org/LDP/gs/>. Hoe Linux "in de lucht" te brengen. Legt veel van de basis van Linux uit. Behandelt basis systeembeheer. Linux System Administrator's Guide Wirzenius, Lars; LDP; 1997. Beschikbaar op de LDP homepage, of direct op <http://www.linuxdoc.org/LDP/sag/>. Een uitstekend eerste boek over hoe een Linux systeem te behouden en beheren. Essential System Administration (Second Edition) Frisch, Aeleen; O'Reilly; 1995; ISBN 1-56592-127-5; $34.95. Zie <http://www.ora.com/catalog/esa2/noframes.html>. Meer behandelde aspecten van gewone systeembeheertaken. Niet Linux-specifiek maar bevat Linux materiaal. 3.2. Gebruik van Unix & Linux Linux in a Nutshell (2nd edition) Hekman, Jessica P. et al.; O'Reilly; ISBN 1-56592-585-8,; 1999; 628 pp. $29.95. Zie <http://www.oreilly.com/catalog/linuxnut2/>. Volgens O'Reilly, "De Desktop Referentie voor Linux". Voor Linux gebruikers maakt dit boek dat hun "Unix In a Nutshell" is verouderd, aangezien dit geöriënteerd was op SVr4/Solaris. Running Linux (3rd Edition) Welsh, Matt, & Matthias Kallw Dalheimer & Kaufman, Lar; O'Reilly; ISBN 1-56592-469-X; 1999; 650pp; $34.95. Zie <http://www.oreilly.com/catalog/runux3/>. Alles wat je nodig hebt om het Linux besturingssysteem te begrijpen, installeren, en gebruiken. Uitstekend beginnersboek. Hands-on-Linux Sobell, Mark G.; Addison-Wesley; ISBN ISBN 0-201-32569-1; 1998; 1015 pp. Gewoon wat de titel aangeeft -- praktische tutorials in basis Unix, shells, editors, mailprogramma's, netwerken, Web tools, en utility's. Behandelt een aantal beginselen van systeembeheer. (Dit schijnt een nieuw verpakte versie te zijn van 1997's ``A Practical Guide to Linux'' van dezelfde auteur, zonder Caldera OpenLinux Lite ingesloten). 3.3. Systeembeveiliging Practical Unix and Internet Security (2nd Edition) Garfinkel, Simpson, and Spafford, Gene; O'Reilly Associates; ISBN 0-56592-148-8; 1004pp; 1996; $39.95. Zie <http://www.ora.com/catalog/puis/noframes.html>. Ronald P. Miller: "Wat overlap met Essential System Admin., maar in het geheel een solide boek over beveiliging, vooral voor degenen die streven naar dat het mogelijk is meerdere gebruikers, dial-up/ net toegang tot hun Linux boxen te geven." Firewalls & Internet Security Cheswick, William R. & Bellovin, Steven M.; Addison-Wesley; 1994; ISBN 0-201-63357-4; 320pp. 4. Boeken over Shell, Script, en Web Programmering Programming Perl (Second Edition) Wall, Larry & Christiansen, Tom & Schwartz, Randal; O'Reilly; 1997; ISBN 0-56592-149-6; 644pp. Zie <http://www.ora.com/catalog/pperl2/noframes.html>. De shell (als een programmeertaal voor meer dan alledaags scripting) is dood. Perl zwaait de scepter daarvoor in de plaats. Dit is de tweede editie van het boek the definitive Perl book -- heel veel beter georganiseerd dan de eerste, en het behandelt Perl 5. Emmanuel Pierre houdt een beknopte lijst bij met Perl boeken <www.e-nef.com/perl/listeperl.html>. Programming Python Lutz, Mark; O'Reilly; 1997; ISBN 0-56592-197-6; 880pp. Zie <http://www.ora.com/catalog/python/noframes.html>. De volgende stap na Perl. Python is heel mooi ontworpen, heeft een betere integratie met C, is beter schaalbaar voor grotere projecten. HTML: The Definitive Guide (3rd Edition) Musciano, Chuck & Kennedy. Bill; O'Reilly; 1998; ISBN 1-56592-492-4; 576pp. Zie <http://www.oreilly.com/catalog/html3/>. De beste HTML tutorial/referentie dat ik ken, en het enige HTML boek dat je nodig hebt, tenzij je ook CGI wilt. The Unix Programming Environment Kernighan, Brian, and Pike, Rob; Prentice-Hall; 1984; ISBN 0-13-937681-X; 1984. Een echte klassieker -- mogelijk de beste uit een enkel boek bestaande expositie van de Unix filosofie. 5. Boeken over Tekstopmaak 5.1. Tex en LaTeX The LaTeX Companion Goossens, Michael & Mittlebach, Frank, & Samarin, Alexander; Addison-Wesley; 1994; ISBN 0-201-54199-8; 530pp. Zie <http://www.awl-he.com/titles/13661.html>. `Als je één van die gebruikers bent die graag wil weten hoe LaTeX kan worden uitgebreid om de mooist mogelijk documenten te creëren zonder een (La)TeX goeroe te worden, dan is dit het boek wat je nodig hebt' --- uit het voorwoord. Bruce Thompson voegt toe: "Een zeer fraai boek dat in heel veel informatie voorziet over de nieuwe uitbreidingen van LaTeX, het voorziet in een groot aantal voorbeelden die precies laten zien hoe de layout van je document kan worden gemanipuleerd" LaTeX: A Document Preparation System (Second Edition) Lamport, Leslie; Addison-Wesley; 1994; ISBN 0-201-52983-1; 256pp. Zie <http://www.awl-he.com/titles/13632.html>. Bruce Thompson: "De ultieme referentie over LaTeX 2.09 door de auteur zelf. Een nieuwe editie behandelt LaTeX2e (de versie opgenomen in de huidige TeX/LaTeX distributie) is in voorbereiding. LaTeX 2.09 wordt volledig ondersteund door LaTeX2e. Verplicht voor iedereen die LaTeX wil gebruiken. Voorziet in een rustige introductie in de documentpreparatie en de diverse hulpmiddelen die LaTeX aanreikt voor het produceren van professionele kwaliteitsdocumenten. Heel veel voorbeelden." The TeXbook, Volume A of Computers and Typesetting; Knuth, Donald A. Addison-Wesley; 1986, ISBN 0-201-13448; 496pp. Zie <http://www.awl.com/cp/TeXbook.html> Bruce Thompson: "De definitieve gebruikersleidraad en complete referentie handleiding voor TeX. Waarschijnlijk niet nodig voor terloops gebruik van LaTeX, maar niettemin een fascinerend boek." The METAFONT book, Volume C of Computers and Typesetting Knuth, Donald A.; Addison-Wesley; 1986; 0-201-13444-6, 1986; 384pp. Zie <http://www.awl.com/cp/METAFONTbook.html> Bruce Thompson: "De definitieve gebruikersleidraad en referentiehandleiding voor METAFONT, een bij TeX behorend programma voor het ontwerpen van fonts. Een uitstekend stukje werk als je van plan bent je eigen fonts voor gebruik in TeX en LaTeX te ontwerpen. METAFONT is opgenomen in de gewone TeX/LaTeX distributie." 6. Goede programmeerstijl Wat volgt zijn klassieken over hoe efficiënte programma's te ontwikkelen: The Practice of Programming Kernighan, Brian W. & Pike. Rob; 1999; Addison-Wesley; ISBN 0-201-61586-X. Zie <http://cm.bell-labs.com/cm/cs/tpop/> Een uitstekende verhandeling over het schrijven van hoge kwaliteitsprogramma's, beslist bestemd een klassieker in zijn genre te worden. Programming Pearls (2nd Edition) Bentley, Jon; 2000; Addison-Wesley; ISBN ISBN 0-201-65788-0. Zie <http://www.programmingpearls.com/> Dit zijn geselecteerde essays van Bentley's kolom in de "Communications of the ACM". Hij bespak een brede variëteit aan onderwerpen over het verbeteren van programma's, inclusief een groot aantal over efficiëncy. Writing Efficient Programs. Bentley, Jon Louis; 1982; Prentice-Hall, Inc.; ISBN 0-13-970251-2 or 0-13-970244-X. Dit boek presenteert Bentley's methodologie en set regels voor het verbeteren van de programma efficiëntie, en er zijn een groot aantal voorbeelden in opgenomen. 7. Boeken over C en C++ Programmeren 7.1. C en C++ The C Programming Language (Second Edition) Kernighan, Brian W.; Ritchie, Dennis M; Prentice-Hall; 1988; ISBN 0-13-110362-8, 272pp. De verbeterde tweede editie, waarin ANSI C wordt behandeld, van het oorspronkelijke klassieke C boek, met als mede-auteur C's ontwerper, "K&R". Nog steeds de beste! Who's Afraid of C++? Heller, Steve; Academic Press; 1996; ISBN 0-12-339097; 508pp. Het beste introductie boek over C++ dat ik ken. Nu beschikbaar op het Web <http://www.steveheller.com/whos> 7.2. C System Call Interface POSIX Programmer's Guide: Writing Portable Unix Programs Lewine, Donald; O'Reilly; 1992; ISBN 0-937175-73-0; 607pp. Zie <http://www.ora.com/catalog/posix/noframes.html>. Een uitstekende programmeursreferentie over de POSIX.1 standaard. Deze bevalt mij beter dan de keuze van JH. The Posix.1 Standard: A Programmer's Guide Zlotnick, Fred; Benjamin, Cummings; 1991; ISBN 0-8053-9605-5; 379pp.; $35.95 (USA). JH: "Toen ik klaagde over het ontbreken van Sectie 2 man pages in Linux, vertelde iemand me gewoon aan het POSIX zien te komen, omdat dat is wat Linux doet. Dit boek bevalt me goed omdat ik geen professionele programmeur ben en de auteur een overvloed aan uitleg en voorbeelden geeft." Advanced Programming in The Unix Environment Stevens, Richard; 1992; ISBN 0-201-56317; Addison-Wesley Een boek over algemene Unix programmering dat net zo goed is als Stevens's klassieker over netwerkprogrammering. Linux Application Development Michael K. Johnson, Erik W. Troan; 1998; ISBN 0201308215; Addison-Wesley. De beste referentie naar de C API van Linux. 8. Boeken over netwerken Unix Network Programming Volume 1, Networking APIs: Sockets and XTI W. Richard Stevens, PTR Prentice-Hall, 1998 ISBN 0-13-490012-X UNIX Network Programming 2nd Edition, Volume 2, Interprocess Communications W. Richard Stevens PTR Prentice-Hall, 1998 ISBN 0-13-081081-9 Alles wat je over het onderwerp zou willen weten. In het algemeen aangemerkt als het definitieve basisboek. Linux Network Administrator's Guide Kirch, Olaf; O'Reilly; 1995; ISBN 1-56592-087-2; 335pp. Zie <http://www.ora.com/catalog/linag/noframes.html>. Een praktische leidraad naar Linux's TCP/IP en daaraan gerelateerde services. Toegankelijk op het Web op de Linux Documentation Project page, of direct op <http://sunsite.unc.edu/LDP/LDP/nag/nag.html>. TCP/IP Network Adminstration Hunt, Craig; O'Reilly Associates, ISBN 0-937175-82-X; 1992; 472pp. Zie <http://www.ora.com/catalog/tcp2/noframes.html>. Minder Linux specifiek dan het Kirch boek. Een meer diepgaande behandeling van de TCP/IP kern, inclusief routing en BGP. DNS and BIND (Second Edition) Albitz, Paul, and Liu, Cricket; O'Reilly; 1998; ISBN 1-56592-512-2; 502pp; $32.95. Zie <http://www.ora.com/catalog/dns2/noframes.html>. Behandeling van DNS, nuttig voor mensen die gecompliceerde multiple-subnet installaties draaien. Behandelt BIND library programmering. Sendmail (Second Edition) Costales, Bryan & Allman, Eric; O'Reilly; ISBN 1-56592-222-0; 1997; 1050 pp; $32.95 Zie <http://www.ora.com/catalog/sendmail2/noframes.html>. Een grondige (en uitputtende) leidraad in Linux's en Unix's standaard mail-transfer agent. 9. Boeken over Unix Kernel Implementatie 9.1. Voorvaders van Linux The Design of the Unix Operating System Bach, Maurice J.; Prentice-Hall; ISBN 0-13-201799-7; 470pp.; $60 (USA). Het boek dat Linus aan de gang kreeg. Zie <http://www.prenhall.com/books/ptr_0132017997.html> Operating Systems, Design and Implementation; Tanenbaum, Andrew S.; Prentice-Hall; 1987. Zie <http://www.prenhall.com/books/esm_0136386776.html>. Alan Cox (één van de core kernel mensen) vindt dit een prettig boek. Tanenbaum ontworp Minix, het systeem waar Linus Linux mee opbouwde. 9.2. Linux The Linux Kernel book Rémy Card, Èric Dumas, Franck Mével; John Wiley and Sons; 1998; ISBN 0-471-98141-9. $100 (AUS). (Vertaling van de Franstalige editie "Programmation Linux 2.0"; zelfde auteurs; 1997; Éditions Eyrolles; Paris, France.) Een zeer interessante en informatieve beschrijving van de werking van de kernel dat het gat opvult tussen de POSIX referentie en "The Design of the Unix Operating System" en de Linux source code. Een goed begrip van het ontwerp en de werking van een Unix OS is een voorvereiste, maar dit boek is een uitstekende hulp die verder gaat dan een algemeen begrip in het feitelijke werk. De primaire auteur is één van de core ontwikkelaars van het ext2 bestandssysteem en het Linux Kernel boek geeft een groot bereik van de materie, duidelijke uitleg en structuur te zien. Het is verbazingwekkend goed leesbaar voor iets dat op een dergelijk laag niveau werkt. Het boek leed wat onder de vertaling naar de Engelse taal -- er staan een paar typfouten en grammaticamissers in, maar het is tamelijk leesbaar. (De bestanden met voorbeeldcode staan charmant genoeg nog steeds in de Franse taal). Netwerk protocol implementaties worden niet behandeld. Het boek gaat thans tot Linux 2.0.35 en voorbeschouwingen van 2.1 en 2.2. Linux Kernel Hackers' Guide Johnson, Michael K. Toegankelijk op het Web op de Linux Documentation Project page, of direct bij . LINUX Kernel Internals (Second Edition) Beck, Michael & Bohme, Harold & Mirko, Dziadzka & Kunitz, Ulrich & Magnus, Robert & Verworner, Dick; Addison Wesley; 1998; ISBN:0-201-33143-8; 480. Zie <http://www.awl-he.com/titles/11653.html>. Een leidraad naar Linux kernelprogrammering; behandelt 2.0. 9.3. Betrekking hebbende op Linux The Design and Implementation of the 4.4BSD Unix Operating System McKusick, Marshall Kirk, Bostic, Keith, Karels, Michael J., en Quarterman, John S.; Addison-Wesley; 1996; ISBN 0-201-54979-4; 608pp. Zie <http://www.awl-he.com/titles/13693.html>. De opvolger naar een klassiek boek over de implementatie van de 4.3 BSD kernel, die van invloed was op Linux's ontwerp (vooral nauw verwant aan sockets en netwerken). Dit boek behandelt de 4.4BSD basis van BSD/OS, FreeBSD, en NetBSD. Porting Unix to the 386; Jolitz, William F., and Jolitz, Lynne G. Dr. Dobb's Journal; Jan 1991-July 1992. 10. Boeken over de Intel processor architectuur en programmering 80386 Programmer's Reference Manual Intel Corp.; ISBN 1-55512-022-9; 1986; Deel I. Applicatieprogrammering, gegevenstypen, geheugenmodel, instructie set. Deel II. Systeemprogrammering, architectuur, geheugenbeheer, protectie, multitasking, I/O, exceptions en interrupts, initialisatie, coprocessing en multiprocessing. Deel III. Compabiliteit (met eerdere x86 machines). Deel IV. Instructie Set. 80386 System Software Writer's Guide Intel Corp.; ISBN 1-55512-023-7; 1987. Hierin worden de mogelijkheden van de 386'r voor programmeurs van besturingssystemen uitgelegd. Het bevat een hoofdstuk over Unix implemtatie. Veel van de 80386 schijnt de zijn ontworpen met Multics in gedachten; de mogelijkheden worden niet door DOS of Unix gebruikt. Programming the 80386 Crawford, John H & Gelsinger, Patrick P.; Sybex; ISBN 0-89588-381-3; 774pp.; $26.95 (USA). Dit is het boek dat de Jolitzes gebruikte toen ze BSD voor de 386 architectuur geschikt maakten. Pentium Processor User's Manual: Volume 3, Architecture and Programming Manual" Intel Corp.; 1993; ISBN 1-55512-195-0; Vrijwel gelijk aan de Pentium versie van de 80386 Programmer's manual die hiervoor werd opgesomd. 11. Boeken over PC-Klasse Hardware Opmerking: deze boeken zijn vier of vijf jaar oud en mogelijk verouderd. 80386 Hardware Reference Manual Intel Corp.; 1986; ISBN 1-55512-024-5; Pin verbindingen, timing, waveforms, block diagrammen, voltages, en dat soort zaken. The Indispensable PC Hardware Book Messmer, Hans-Peter; Addison-Wesley; 1993; ISBN 0-201-62424-9; 1000 pp. JH: "Behandelt de meer recente zaken zoals EIDE en PCI." 12. Administratieve zaken 12.1. Gebruiksvoorwaarden Dit document valt onder het copyright 1999 door Eric S. Raymond. Je mag het vrij gebruiken, verspreiden en reproduceren op voorwaarde dat je: · Je deze copyright vermelding niet wijzigt of verwijdert. · Je het versienummer en de datum niet wijzigt of verwijdert. · Je de verwijzing naar de huidige WWW versie van dit document niet wijzigt of verwijdert. · Duidelijk als zodanig aangeeft als het om een gewijzigde of ingekorte versie gaat. Deze beperkingen zijn bedoeld om mogelijke lezers te beschermen tegen oude of verminkte versies. Als je denkt een goede reden te hebben voor een uitzondering, vraag me hier dan om. 12.2. Historie Dit was oorspronkelijk een mini-HOWTO die werd beheerd door Jim Haynes. Ik heb de nadruk wat gewijzigd, trachtend er een meer standalone document van te maken en minder afgaand op bibliografische postings. De mini-reviews zonder kenmerk zijn eerder van mij dan van hem.