De Linux Reading List HOWTO

Eric Steven Raymond

Thyrsus Enterprises (http://www.tuxedo.org/~esr/)

esr@thyrsus.com

Vertaald door: Ellen Bokhorst

bokkie@nl.linux.org

In dit document staan de boeken opgesomd waarvan ik denk dat ze het meest waardevol zijn voor iemand die Unix (vooral Linux) tot op de bodem probeert te doorgronden.

Inhoudsopgave

1. Introductie............................................................................................................................................................1 Basis Linux en Unix bibliografie...............................................................................................................................2 A. Administratieve zaken ....................................................................................................................................... 10

1. Introductie

1.1. Doel van dit document

In dit document wordt een opsomming gegeven van wat ik beschouw als de essentiële referenties ter grootte van een boek voor het leren van Unix (vooral Linux) en hoe hier onder te programmeren.

1.2. Nieuwe versies van dit document

Nieuwe versies van de Linux Reading HOWTO zullen periodiek worden gepost naar comp.os.linux.answers (news:comp.os.linux.answers). Ze zullen ook worden geupload naar diverse Linux WWW en FTP sites, waaronder de LDP home page.

Je kunt de laatste versie hiervan ook bekijken op het World Wide Web via de URL http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html.

1.3. Feedback en correcties

Als je vragen of opmerkingen hebt aangaande dit document (of gewoon een boek wilt aanbevelen waarvan je vindt dat dit er in moet), stuur dan gerust een mailtje naar Eric S. Raymond, via <esr@thyrsus.com>. Ik verwelkom elke suggestie of kritiek.

1.4. Gerelateerde bronnen

Zie voor online HOWTO’s, magazines en anderszins niet aan boeken gerelateerd materiaal de homepage van het Linux Documentation Project (http://www.linuxdoc.org/).

Een paar jaar geleden schreef ik een minder op Linux gerichte Unix bibliografie die nog steeds van enig nut kan zijn en een bepaalde amusante waarde behoudt. Je kunt de Loginataka vinden op http://www.tuxedo.org/~esr/faqs/loginataka.html.

SAGE, de System Administrator’s Guild, onderhoudt een uitstekende lijst met relevante boeken (http://www.usenix.org/sage/sysadmins/books/booklist.html).

1.5. In dit document gebruikte conventies

Opmerkingen die niet tussen aanhalingstekens staan, zijn of van mij, of ze zijn van Jim Haynes (de vorige beheerder van dit document) en zie ik geen reden ze te wijzigen. Opmerkingen die door anderen zijn ingezonden, staan tussen aanhalingstekens, en hier is de naam van de commentator voor geplaatst (JH is Jim Haynes).

"Zie" URL’s, aaneengesloten met informatie over de uitgever verwijst direct naar de webcatalogus van de uitgever en brengt je naar een pagina met een weergave van de boekomslag, reclame op de omslag van het boek, en informatie over het plaatsen van een bestelling. Bij boeken waarbij dit ontbreekt, betekent dit dat de uitgever gebruik maakt van frames en van de catalogus pagina’s geen bookmark kan worden gegeven.

De onderwerpen gaan grofweg van de buitenkant tot de binnenkant (van cultuur naar user-land programmering naar kernelprogrammering naar hardware). Binnen secties heb ik geprobeerd de meest bruikbare boeken als eerste op te sommen in zoverre ik er bekend mee ben. Het is slechts een beschamende toevalligheid dat in deze lijst één van mijn boeken als eerste wordt opgesomd, eerlijk waar! (Suggesties voor een betere organisatie worden vrolijk geaccepteerd.)

Basis Linux en Unix bibliografie

Boeken over Cultuur, Historie en Feiten

The New Hacker’s Dictionary, Third Edition, Redactie door Eric S. Raymond, 1996, ISBN 0-262-68092-0, MIT Press, 547pp..

Um, er. Een handleiding over de Internetcultuur. Veel mensen waarderen het. HTML op de Jargon File Resource Page (http://www.tuxedo.org/jargon).

Bestel hier. (http://www-mitpress.mit.edu/book-home.tcl?isbn=0262680920)

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

Linux maakt onderdeel uit van de Unix traditie. Dit boek is een mondelinge historie van Unix -- hoe het ontstond, hoe het zich ontwikkelde, hoe het werd verspreid door de mensen toendertijd.

The Mythical Man Month, Anniversary Edition, Frederic P. Brooks, 1995, ISBN 0-201-83595-9, Addison-Wesley.

Het boek over software engineering dat iedereen zou moeten lezen.

Alan Cox: "Dit zou ik niet aanbevelen om zijn technische waarde, maar zijn toepassing van gezond verstand en realiteit betreft computerprojecten." JH: "Oh, ja. Wat als Linus 200 programmeurs gegeven was en hem was verteld Linux in 3 maanden te produceren!"

Bestellen kan hier. (http://www.awl-he.com/titles/14147.html)

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

Veel wat oudere stukken over Unix, waaronder Ritchie & Thompson, "The UNIX Time Sharing System"; Thompson, "UNIX Implementation"; Ritchie, "A Retrospective"; Bourne, "The UNIX Shell"...

Linux basis

Linux Installation and Getting Started, Redactie door Matt Welsh, 1997, Linux Documentation Project.

Beschikbaar op de LDP homepage of direct bij http://linuxdoc.org/LDP/gs/.

Hoe Linux op te zetten. Geeft veel uitleg over de basis van Linux. Behandelt de beginselen van systeembeheer.

Linux System Administrator’s Guide, Redactie door Lars Wirzenius, 1997, Linux Documentation Project.

Beschikbaar op de LDP homepage of direct op http://linuxdoc.org/LDP/sag/.

Een uitstekend eerste boek over het beheren en bijhouden van een Linux systeem.

Linux in a Nutshell, Second Edition, Jessica P. Hekman, 1999, ISBN 1-56592-585-8, O’Reilly & Associates.

Volgens O’Reilly, "De Desktop Referentie voor Linux". Voor Linux gebruikers is "Unix In a Nutshell" hierdoor verouderd, wat SVr4/Solaris geöriënteerd was.

Bestellen kan hier. (http://www.oreilly.com/catalog/linuxnut2/)

Running Linux, Third Edition, Matt Welsh, 1999, ISBN 1-56592-469-X, O’Reilly & Associates.

Alles wat je moet weten om het Linux besturingssysteem te begrijpen, installeren en gebruiken. Uitstekend beginnersboek.

Bestellen kan hier. (http://www.ora.com/catalog/runux3/)

Hands-On Linux, Mark G. Sobel, 1998, ISBN 0-201-32569-1, Addison-Wesley, 1015pp..

Precies wat de titel aangeeft -- praktische tutorials in basis Unix, shells, editors, mailprogramma’s, netwerken, Webtools, en utility’s. Behandelt de beginselen van systeembeheer. (Dit schijnt een herdruk te zijn van 1997’s “A Practical Guide to Linux” van dezelfde auteur, zonder dat daar Caldera OpenLinux Lite in is opgenomen.)

Essential System Administration, Second Edition, Aeleen Frisch, 1995, ISBN 1-56592-127-5, O’Reilly & Associates.

Wat diepergaande behandeling van gewone systeembeheertaken. Niet Linux specifiek, maar het bevat veel Linux materiaal.

Bestellen kan hier. (http://www.ora.com/catalog/esa2/noframes.html)

Systeembeveiliging

Security Engineering: A Guide to Building Dependable Distributed Systems, Ross Anderson, 2001, 0-471-38922-6, Wiley.

Het beste boek dat ik ooit heb gezien over technologische beveiligingsmaatregelen en algemene computerbeveiliging. De sectie over "How to Steal a Painting" en fysieke alarmsystemen is de prijs waard en een erkenning op zichzelf.

Real World Linux Security: Intrusion Prevention, Detection, and Recovery, Bob Toxen, 2000, ISBN 0-13-028187-5, Prentice-Hall.

Dit is een uitstekend werk, de standaard waardoor toekomstige boeken over Linux beveiliging worden beoordeeld. Ik schreef er een voorwoord voor. Combineert stap-voor-stap practische instructies over het versterken van een Linux systeem met een goede theorie over aanvalspaden, protectieringen, en beveiligingsanalyses. Beschrijft veel counters voor specifieke uitbuitingen.

Boeken over de Shell-, Script- en Webprogrammering

Programming Perl, Third Edition, Larry Wall, Tom Christiansen, en Jon Orwant, 2000, ISBN 0-596-00027-8, O’Reilly & Associates, 1104pp..

De shell (als een programmeertaal voor meer dan alledaagse scripts) is dood. Perl regels daarvoor in de plaats (alhoewel het nu sterk wordt uitgedaagd door Python). Dit is de derde editie van het definitieve Perl boek.

Bestellen kan hier. (http://www.ora.com/catalog/esa2/noframes.html)

Emmanuel Pierre houdt een kleine lijst bij met Perl boeken. (www.e-nef.com/perl/listeperl).

Programming Python, First Edition, Mark Lutz, 1997, ISBN 0-56592-197-6, O’Reilly & Associates, 880pp..

De volgende stap na Perl. Python is mooi ontworpen, heeft een betere integratie met C en schaalt eleganter bij grote projecten.

Bestellen kan hier. (http://www.ora.com/catalog/python/)

HTML & XHTML: The Definitive Guide, Fourth Edition, Chuck Musciano en Bill Kennedy, 2000, ISBN 0-596-00026-X, O’Reilly & Associates, 680pp..

De beste HTML tutorial/referentie die ik ooit heb gezien, en het enige HTML-boek dat je nodig hebt, tenzij je ook gebruik wilt maken van CGI. Ik ken geen ander boek over HTML dat ook maar in de buurt van dit boek komt qua uitgebreidheid, diepgang en kwaliteit in de organisatie.

Bestellen kan hier. (http://www.ora.com/catalog/html4/)

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

Een ware klassieker, mogelijk de beste expositie van de Unix filosofie. Nuttig voor het leren van shellprogrammering.

Tex and LaTeX

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

‘Ben je een van die gebruikers die wil weten hoe LaTeX zo kan worden uitgebreid dat de mooist denkbare documenten kunnen worden gemaakt zonder een (La)TeX goeroe te worden, dan is dit jouw boek’ uit het voorwoord. Bruce Thompson voegt toe: "Een zeer fraai boek wat in veel informatie voorziet over de nieuwe uitbreidingen op LaTeX, er worden veel voorbeelden gegeven die precies laten zien hoe de lay-out van je document kan worden gemanipuleerd"

Bestellen kan hier. (http://www.awl-he.com/titles/13661.html)

LaTeX: A Document Preparation System, Leslie Lamport, 1994, ISBN 0-201-52983-1, Addison-Wesley, 256pp..

Bruce Thompson: "De ultieme referentie over LaTeX 2.09 door de auteur ervan. Een nieuwe editie waarin La-TeX2e wordt behandeld (de versie die is opgenomen in de huidige TeX/LaTeX distributie) is in voorbereiding. LaTeX 2.09 wordt volledig ondersteund door LaTeX2e. Verplichte kost voor iedereen die gebruik wil maken van LaTeX. Voorziet in een aardige introductie over documentpreparation en de diverse tools die LaTeX levert voor het produceren van professionele kwaliteitsdocumenten. Veel voorbeelden."

Bestellen kan hier. (http://www.awl-he.com/titles/13632.html)

The TeXbook, Volume A of Computers and Typesetting, Donald Knuth, 1986, ISBN 0-201-13448-9, Addison-Wesley, 496pp..

Bruce Thompson: "De definitieve gebruikershandleiding en complete referentiehandleiding voor TeX. Waarschijnlijk niet nodig voor terloops LaTeX gerbuik, maar niettemin een fascinerend boek". Ik benadruk dat de toevoeging van dit boek niet voor de lafaards is.

Bestellen kan hier. (http://www.awl.com/cp/TeXbook.html)

The METAFONT Book, Volume C of Computers and Typesetting, Donald Knuth, 1986, ISBN 0-201-13444-6, Addison-Wesley, 386pp..

Bruce Thompson: "De definitieve gebruikershandleiding en referentiehandleiding voor METAFONT, het bij TeX behorende programma voor het ontwerpen van fonts. Een uitstekend 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." Dit boek is beslist niet bedoeld voor de lafaards.

Bestellen kan hier. (http://www.awl.com/cp/METAFONTbook.html)

Goede programmeerstijl

The Practice of Programming, Brian Kernighan en Rob Pike, 1999, ISBN 0-201-61586-X, Addison-Wesley.

Een uitstekende verhandeling over het schrijven van programma’s van hoge kwaliteit, zeker bestemd een klassieker op dit gebied te worden.

Bestellen kan hier. (http://cm.bell-labs.com/cm/cs/tpop/)

Programming Pearls, (Second Edition), Jon Bentley, 2000, ISBN 0-201-65788-0, Addison-Wesley.

Dit zijn geselecteerde essays uit Bentley’s kolom in het Communications of the ACM. Hij bespreekt een breed bereik aan onderwerpen over het verbeteren van programma’s, vaak gericht op de efficiëntie van programma’s.

Bestellen kan hier. (http://www.programmingpearls.com/)

Writing Efficient Programs, Jon Bentley, 1982, ISBN 0-13-970251-2 or 0-13-970244-X, Prentice-Hall.

Dit boek presenteert Bentley’s methodologie en set met regels voor het verbeteren van de efficiëntie van programma’s, en er zijn een groot aantal voorbeelden in opgenomen.

C and C++

The C Programming Language, (Second Edition), Brian Kernighan en Rob Pike, 1988, ISBN 0-13-110362-8, Addison-Wesley, 272pp..

De verbeterde tweede editie, behandelt ANSI C, van het oorspronkelijke klassieke C boek medegeschreven door de ontwerper van C "K&R". Nog steeds de beste!

Who’s Afraid of C++?, Steve Heller, 1996, ISBN 0-12-339097-4, Academic Press, 508pp..

Het beste introductieboek over C++ dat ik ooit heb gezien. Nu beschikbaar op het Web (http://www.steveheller.com/whos).

C System Call Interface

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

Linux houdt zich zeer nauw aan de regels van de POSIX standaard (hier niet aan conformeren wordt beschouwd als een bug en het wordt snel gecorrigeerd). Deze uitstekende referentie voor POSIX is dus ook een uitstekende referentie voor de Linux kernel API.

Bestellen kan hier. (http://www.ora.com/catalog/posix/)

Advanced Programming in The Unix Environment, Richard Stevens, 1992, ISBN 0-201-56317-7, Addison-Wesley.

Een boek over Unix programmeren in het algemeen welke net zo goed is als Stevens klassieker over netwerkprogrammering.

Linux Application Development, Michael K. Johnson en Erik W. Troan, 1998, ISBN 0-201-308215, Addison-Wesley.

De beste enkele referentie voor de Linux API. Behandelt de features die niet kenmerkend Unix of Posix zijn.

Boeken over netwerken

Unix Network Programming, volume 1 -- Networking APIs: Sockets and XTI, Richard Stevens, 1998, ISBN 0-13-490012-X, Prentice-Hall.

Alles wat je zou willen weten over dit onderwerp. Over het algemeen aangemerkt als het definitieve boek over de beginselen.

Unix Network Programming, volume 2 -- Interprocess Communication, Richard Stevens, 1998, ISBN 0-13-081081-9, Prentice-Hall.

Idem...

Linux Network Administrator’s Guide, Olaf Kirch, 1995, ISBN 1-56592-087-2, O’Reilly & Associates.

Beschikbaar op de homepage van het LDP, of direct bij http://www.linuxdoc.org/LDP/nag/nag.html (http://www.linuxdoc.org/LDP/nag/nag.html).

Een uitstekend eerste boek over het beheren en onderhouden van een Linux systeem in een netwerk.

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

Minder Linux specifiek dan het Kirch boek. Gaat dieper in op de behandeling van de TCP/IP kern, waaronder routing en BGP.

Bestellen kan hier. (http://www.ora.com/catalog/tcp2/noframes.html)

DNS and BIND, Second Edition, Paul Albiz en Cricket Liu, 1998, ISBN 1-56592-512-2, 502pp., O’Reilly & Associates.

Grondige behandeling van DNS, handig voor mensen die gecompliceerde installaties met meerdere subnets draaien. Behandelt het programmeren met de BIND library.

Bestellen kan hier. (http://www.ora.com/catalog/dns2/noframes.html)

Sendmail, Second Edition, Bryan Costales en Eric Allman, 1997, ISBN 1-56592-222-0, 1050pp., O’Reilly & Associates.

Een grondige (en uitputtende) leidraad in de standaard mail-transfer agent van Linux en Unix.

Bestellen kan hier. (http://www.ora.com/catalog/sendmail2/noframes.html)

Voorvaderen van Linux

The Design of the Unix Operating System, Maurice J. Bach, 1996, ISBN 0-13-201799-7, 470pp., Prentice-Hall.

Het boek waarmee Linus van start ging.

Bestellen kan hier. (http://www.prenhall.com/books/ptr_0132017997.html)

Operating Systems, Design and Implementation, Andrew S. Tanenbaum, 1987, ISBN 0-13-638677-6, 940pp., Prentice-Hall.

Alan Cox vindt dit een prettig boek. Tanenbaum ontwierp Minix, het systeem Linus Linux vanaf bootte.

Bestellen kan hier. (http://www.prenhall.com/books/esm_0136386776.html)

De Linux kernel

The Linux Kernel book, Rémy Card, Èric Dumas, en Frank Mével, 1998, ISBN 0-471-98141-9, John Wiley & Sons.

(Vertaald vanuit ’t Frans, editie van "Programmation Linux 2.0"; dezelfde auteurs; 1997; Éditions Eyrolles; Paris, France.)

Een zeer interessante en informatieve bestudering van de werking van de kernel die de leemte vult tussen de POSIX interface en "The Design of the Unix Operating System" en de Linux broncode. Een goed begrip van het ontwerp en de werking van een Unix OS is een voorvereiste, maar dit boek is een uitstekende hulp verder te komen dan een algemeen begrip in het feitelijke werk.

De eerste auteur is één van de kernontwikkelaars van het ext2 bestandssysteem, en het Linux boek toont een een stevig houvast van de materie en duidelijke uitleg en strctuur. Het is verbazingwekkend goed leesbaar voor iets dat op een dergelijk laag niveau werkt. Het boek heeft wat te leiden gehad van de vertaling naar het Engels -- er staan een paar typfouten in en wat grammaticale fouten, maar het is goed leesbaar. (De bestanden met codeervoorbeelden staan charmant genoeg nog in de Franse taal.)

Het boek is thans voor Linux 2.0.35 en vooruitzicht op 2.1 en 2.2. Netwerkprotocol implementaties worden niet behandeld.

Linux Kernal Hacker’s Guide, Redactie door Michael K. Johnson, Linux Documentation Project.

Beschikbaar op de homepage van het LDP, of direct op http://linuxdoc.org/LDP/khg/.

Volgens de auteur, is dit vervangen door Alessandro Rubini’s boek (zie verderop) maar het blijft een nuttige aanvulling.

Linux Device Drivers, Alessandro Rubini, 1998, ISBN 1-56592-292-1, O’Reilly & Associates, 442pp..

Alles wat je moet weten over het schrijven van device drivers onder Linux; kernel APIs, interrupt handling, de module interface. Er zijn veel voorbeelden in opgenomen.

Bestellen kan hier. (http://www.ora.com/catalog/linuxdrive/)

LINUX Kernel Internals, (Second Edition), Michael Beck, Harold Bohme, Mirko Dziadka, en Ulrich Kunitz, 1998, ISBN 0-201-33143-8, Addison-Wesley, 480pp..

Een handleiding in Linux kernelprogrammering; behandelt 2.0. Behandelt de architectuur van de Linux core en netwerklaag als ook het construeren van drivers.

Bestellen kan hier. (http://www.awl-he.com/titles/11653.html)

Met betrekking tot Linux

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

De opvolger van een klassiek boek over de implementatie van de 4.3 BSD kernel, welke van invloed was op het ontwerp van Linux (vooral sockets en netwerken). Dit boek behandelt de 4.4BSD basis van BSD/OS, FreeBSD, en NetBSD.

Bestellen kan hier. (http://www.awl-he.com/titles/13693.html)

Boeken over Intel en PC hacking

80386 Programmer’s Reference Manual, Intel Corporation, 1986, ISBN 1-55512-022-9.

Deel I. Applicatie programmering, gegevenstypen, geheugenmodel, instructieset. Deel II. Systeemprogrammering, architectuur, geheugenbeheer, protectie, multitasking, I/O, exceptions en interrupts, initialisatie, coprocessing en multiprocessing. Deel III. Compatibiliteit (met eerdere x86 machines). Deel IV. Instructie Set

80386 System Software Writer’s Guide, Intel Corporation, 1987, ISBN 1-55512-023-7.

Hierin worden de 386 features uitgelegd voor schrijvers van besturingssystemen. Er is een hoofdstuk over Unix implementatie opgenomen. Een groot deel van de 80386 architectuur schijnt te zijn ontworpen met Multics in gedachten; de features zijn niet gebruikt door DOS of door Unix.

Programming the 80386, John H. Crawford en Patrick P. Gelsinger, 1987, ISBN 0-89588-381-3, 774pp..

Dit is het boek dat de Jolitzes gebruikten toen ze BSD naar de 386 architectuur portte.

80386 Hardware Reference Manual, Intel Corporation, 1986, ISBN 1-55512-024-5.

Pin connections, timing, waveforms, block diagrams, voltages, en dat soort zaken.

The Indispensable PC Hardware Book, Hans-Peter Messmer, 1993, ISBN 0-201-62424-9, 1000pp., Addison-Wesley.

JH: "Behandelt de wat recentere zaken zoals EIDE en PCI."

A. Administratieve zaken

A.1. Gebruiksvoorwaarden

Dit document is auteursrechtelijk beschermd 1999 door Eric S. Raymond. Je mag het vrijelijk gebruiken, verspreiden en reproduceren op voorwaarde dat:

• Je deze copyrightmelding niet achterwege laat of aanpast.

• Je het versienummer en de datum niet achterwege laat of aanpast.

• Je de verwijzing naar de WWW-versie van dit document niet achterwege laat of aanpast.

• Duidelijk als zodanig aangeeft als het om een gewijzigde of ingekorte versie gaat.

Deze beperkingen zijn bedoeld om potentiële lezers te beschermen tegen oude of verminkte versies. Vraag me erom als je denkt een goede reden te hebben voor een uitzondering.

A.2. Historie

Dit was oorspronkelijke een mini-HOWTO onderhouden door Jim Haynes. Ik heb de nadruk wat verlegd en geprobeerd er een standalone document van te maken en wat minder afgaand op de diverse USENET bibliografische postings. De mini-reviews zonder kenmerk zijn van mij en niet van hem.