The Linux Reading List HOWTO
 by Eric S. Raymond
 v1.3, 11 February 1998

 This document lists the book I think are most valuable to a person
 trying to learn Unix (especially Linux) top to bottom.
 ______________________________________________________________________

 Table of Contents


 1. Introduction

    1.1 Purpose of this document
    1.2 New versions of this document
    1.3 Feedback and Corrections
    1.4 Related Resources
    1.5 Conventions Used In This Document

 2. Books on Culture, History, and Pragmatics

 3. Books on General Unix/Linux

    3.1 Linux Installation and Administration
    3.2 Using Unix & Linux
    3.3 System Security

 4. Books on Shell, Script, and Web Programming

 5. Books on Text Formatting

    5.1 Tex and LaTeX

 6. Books on C and C++ Programming

    6.1 C and C++
    6.2 C System Call Interface

 7. Books on Networking

 8. Books on Unix Kernel Implementation

    8.1 Ancestors of Linux
    8.2 Linux
    8.3 Relatives of Linux

 9. Books on Intel processor architecture and programming

 10. Books on PC-Class Hardware

 11. Administrivia

    11.1 Terms of Use
    11.2 History


 ______________________________________________________________________

 1.  Introduction


 1.1.  Purpose of this document

 This document lists what I consider to be the essential book-length
 references for learning Unix (especially Linux) and how to program
 under it.
 1.2.  New versions of this document

 New versions of the Linux Reading List HOWTO will be periodically
 posted to comp.os.linux.answers.  They will also be uploaded to
 various Linux WWW and FTP sites, including the LDP home page.

 You can also view the latest version of this on the World Wide Web via
 the URL <http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html>.


 1.3.  Feedback and Corrections

 If you have questions or comments about this document (or just want to
 suggest a book that you think should be on it), please feel free to
 mail Eric S. Raymond, at [email protected]. I welcome any suggestions or
 criticisms.


 1.4.  Related Resources

 For on-line HOWTOs, magazines, and other non-book material, see the
 Linux Documentation Project home page
 <http://sunsite.unc.edu/LDP/HOWTO>.

 Some years ago I wrote a less Linux-focused Unix bibliography that may
 still be of some interest and retains a certain amusement value.  You
 can find the Loginataka at
 <http://www.ccil.org/~esr/faqs/loginataka.html>.


 1.5.  Conventions Used In This Document

 Comments not in quotes below are either mine, or I have seen no reason
 to change them from those of Jim Haynes (previous maintainer of this
 document).  Comments sent in by others are in quotes, and have the
 name of the commentator before them (JH is Jim Haynes).

 "See" URLs attached to publishing information point directly into the
 publisher's web catalog and typically take you to a page containing a
 cover shot, blurbs, and ordering information.  Books that don't have
 these lack them because the publisher is using frames and the catalog
 pages can't be bookmarked.

 Topic listings go roughly from the outside in (culture to user-land
 programming to kernel programming to hardware).  Within sections I
 have tried to list the most useful books first insofar as I am
 familiar with them.  It's just an embarrassing coincidence that this
 lists one of my books first, honest! (Suggestions for a better
 organization cheerfully accepted.)


 2.  Books on Culture, History, and Pragmatics


    The New Hacker's Dictionary (Third Edition)
       Raymond, Eric S.; MIT Press; 1996; ISBN 0-262-68092-0; 547pp.
       See  <http://www-mitpress.mit.edu/book-
       home.tcl?isbn=0262680920>.

       Um, er.  A guide to Internet culture. Lots of people like it.
       HTML at the Jargon File Resource  Page <http://www.ccil.org>.


    A Quarter Century of Unix
       Salus, Peter H.; Addison-Wesley; 1994; ISBN 0-201-54777-5;
       256pp.
       See  <http://www.awl.com/cp/authors/salus/unix/unix.html>

       Linux is part of the Unix tradition.  This book is an oral
       history of Unix -- how it originated, how it evolved, how it
       spread -- by the people who were there.


    The Mythical Man Month (Anniversary Edition)
       Brooks, Frederick P.; Addison-Wesley 1995 (ISBN 0-201-83595-9).
       See  <http://heg-school.awl.com/cseng/authors/brooks/mmm-ae/mmm-
       ae.html>.

       The one book on software engineering that everyone should read.

       Alan Cox: "This I'd recommend not for its technical value but
       for its application of common sense and reality to computing
       projects." JH: "Ah, yes.  What if Linus had been given 200
       programmers and had been told to produce Linux in 3 months!"


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

       Many early papers on Unix, including Ritchie & Thompson, "The
       UNIX Time Sharing System"; Thompson, "UNIX Implementation";
       Ritchie, "A Retrospective"; Bourne, "The UNIX Shell"...


 3.  Books on General Unix/Linux



 3.1.  Linux Installation and Administration


    Linux Installation and Getting Started
       Welsh, Matt; LDP; 1997.  Available on the LDP home page, or
       directly at  <http://sunsite.unc.edu/LDP/gs>.

       How to bring up Linux.  Explains a lot of Linux basics.  Covers
       basic system administration.


    Linux System Administtrator's Guide
       Wirzenius, Lars; LDP; 1997.  Available on the LDP home page, or
       directly at  <http://sunsite.unc.edu/LDP/sag>.

       An excellent first book on how to maintain and administer a
       Linux system.


    Essential System Administration (Second Edition)
       Frisch, Aeleen; O'Reilly; 1995; ISBN 0-937175-80-3; 788 pp;
       $32.95.
       See  <http://www.ora.com/catalog/esa2/noframes.html>.

       More in-depth coverage of normal system-administration tasks.
       Not Linux-specific but contains Linux material.


 3.2.  Using Unix & Linux


    Linux in a Nutshell
       Hekman, Jessica P. et al.; O'Reilly; ISBN 1-56592-167-4; 1997;
       438 pp. $9.95.
       See  <http://www.ora.com/catalog/linuxnut/noframes.html>.

       According to O'Reilly, "The Desktop Reference for Linux".  For
       Linux users this obsoletes their "Unix In a Nutshell" which was
       SVr4/Solaris-oriented.


    Running Linux (Second Edition)
       Welsh, Matt, & Kaufman, Lar; O'Reilly; ISBN 1-56592-151-8; 1996;
       650pp; $24.95.
       See  <http://www.ora.com/catalog/runux2/noframes.html>.

       Everything you need in order to understand, install, and use the
       Linux operating system.  Excellent beginner's book.


    A Practical Guide To Linux
       Sobell, Mark G.; Addison-Wesley; ISBN 0-201-89549-8; 1997; 1013
       pp.

       Just what the title says -- practical tutorials in basic Unix,
       shells, editors, mail programs, networking, Web tools, and
       utilities.  Covers some system administration fundamentals.


 3.3.  System Security


    Practical Unix Security
       Garfinkel, Simpson, and Spafford, Gene; O'Reilly Associates;
       ISBN 0-56592-148-8; 1991.
       See  <http://www.ora.com/catalog/puis/noframes.html>.

       Ronald P. Miller: "Some overlap with Essential System Admin.,
       but all in all a solid book on security, especially for those
       aspiring to allow multiple-user, dial-up/net access to their
       Linux boxes."


    Firewalls & Internet Security
       Cheswick, William R. & Bellovin, Steven M.; Addison-Wesley;
       1994; ISBN 0-201-63357-4; 320pp.
       See  <http://www.awl.com/cp/Ches.html>.


 4.  Books on Shell, Script, and Web Programming


    Programming Perl (Second Edition)
       Wall, Larry & Christiansen, Tom & Schwartz, Randal; O'Reilly;
       1997; ISBN 0-56592-149-6; 644pp.
       See  <http://www.ora.com/catalog/pperl2/noframes.html>.

       Shell (as a programming language for more than trivial
       scripting) is dead.  Perl rules in its place.  This is the
       second edition of the definitive Perl book -- vastly better
       organized than the first, and it covers Perl 5.


    Programming Python
       Lutz, Mark; O'Reilly; 1997; ISBN 0-56592-197-6; 880pp.
       See  <http://www.ora.com/catalog/python/noframes.html>.

       The next step beyond Perl.  Python is beautifully designed, has
       better integration with C, and scales up better to large
       projects.


    HTML: The Definitive Guide (2nd Edition)
       Musciano, Chuck & Kennedy. Bill; O'Reilly; 1997; ISBN
       0-56592-235-2; 552pp.
       See  <http://www.ora.com/catalog/html2/noframes.html>.

       The best HTML tutorial/reference I have ever seen, and the only
       HTML book you need unless you want to do CGI.


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

       A true classic -- possibly the best single-book exposition of
       the Unix philosophy.


 5.  Books on Text Formatting


 5.1.  Tex and LaTeX



    The LaTeX Companion
       Goossens, Michael & Mittlebach, Frank, & Samarin, Alexander;
       Addison-Wesley; 1994; ISBN 0-201-54199-8; 530pp.
       See  <http://www.awl.com/cp/tlc.html>.

       `If you are one of those users who would like to know how LaTeX
       can be extended to create the nicest documents possible without
       becoming a (La)TeX guru, then this book is for you' --- from the
       Preface.  Bruce Thompson adds: "A very nice book providing a lot
       of information about the new extensions to LaTeX, provides a
       large number of examples showing precisely how your document's
       layout can be manipulated"


    LaTeX: A Document Preparation System (Second Edition)
       Lamport, Leslie; Addison-Wesley; 1994; ISBN 0-201-52983-1;
       256pp.
       See  <http://heg-
       school.awl.com/cseng/authors/lamport/latex/latex.html>.

       Bruce Thompson: "The ultimate reference on LaTeX 2.09 by its
       author.  A new edition covering LaTeX2e (the version included in
       the current TeX/LaTeX distribution) is in preparation.  LaTeX
       2.09 is fully supported by LaTeX2e.  A must for anyone wanting
       to use LaTeX.  Provides a gentle introduction to document
       preparation and the various tools that LaTeX provides for
       producing professional quality documents.  Lots of examples."


    The TeXbook, Volume A of Computers and Typesetting; Knuth, Donald
       A.
       Addison-Wesley; 1986, ISBN 0-201-13448; 496pp.  See
       <http://www.awl.com/cp/TeXbook.html>

       Bruce Thompson: "The definitive user's guide and complete
       reference manual for TeX.  Probably not needed for casual LaTeX
       use, but a fascinating book nonetheless."  I'll strengthen that
       by adding that this book is not for the faint of heart.

    The METAFONT book, Volume C of Computers and Typesetting
       Knuth, Donald A.; Addison-Wesley; 1986; 0-201-13444-6, 1986;
       384pp.
       See  <http://www.awl.com/cp/METAFONTbook.html>

       Bruce Thompson: "The definitive user's guide and reference
       manual for METAFONT, the companion program to TeX for designing
       fonts.  An excellent work if you're planning to design your own
       fonts for use in TeX and LaTeX.  METAFONT is included with the
       normal TeX/LaTeX distribution."  This book is definitely not for
       the faint of heart.


 6.  Books on C and C++ Programming


 6.1.  C and C++


    The C Programming Language (Second Edition)
       Kernighan, Brian W.; Ritchie, Dennis M; Prentice-Hall; 1988;
       ISBN 0-13-110362-8, 272pp.

       The improved second edition, covering ANSI C, of the original
       classic C book coauthored by C's designer, "K&R".  Still the
       best!


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

       The best introductory book on C++ I have seen.


 6.2.  C System Call Interface


    POSIX Programmer's Guide: Writing Portable Unix Programs
       Lewine, Donald; O'Reilly; 1992; ISBN 0-937175-73-0; 607pp.
       See  <http://www.ora.com/catalog/posix/noframes.html>.

       An excellent programmer's reference on the POSIX.1 standard.  I
       like this one better than JH's choice.


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

       JH: "When I complained about the lack of Section 2 man pages in
       Linux, somebody told me just to get a POSIX book, because that's
       what Linux does.  I like this book because I'm not a
       professional programmer and the author gives copious
       explanations and examples."


 7.  Books on Networking



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

       Everything you might want to know about the subject, and some
       things you probably didn't want to know (really, XNS!?).
       Generally regarded as definitive on the basics, though it's pre-
       Web.


    Linux Network Administrator's Guide
       Kirch, Olaf; O'Reilly; 1995; ISBN 1-56592-087-2; 335pp.
       See  <http://www.ora.com/catalog/linag/noframes.html>.

       A practical guide to Linux's TCP/IP and related services.
       Accessible on the Web at the Linux Documentation Project page,
       or directly at <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.
       See  <http://www.ora.com/catalog/tcp2/noframes.html>.

       Less Linux-specific than the Kirch book.  Features deeper
       coverage of the TCP/IP core, including routing and BGP.


    DNS and BIND (Second Edition)
       Albitz, Paul, and Liu, Cricket; O'Reilly; 1996; ISBN
       1-56592-236-0; 1992; 438pp; $32.95.
       See  <http://www.ora.com/catalog/dns2/noframes.html>.

       In-depth coverage of DNS, useful for people running complicated
       multiple-subnet installations. Covers BIND library programming.


    Sendmail (Second Edition)
       Costales, Bryan & Allman, Eric; O'Reilly; ISBN 1-56592-222-0;
       1997; 1050 pp; $32.95
       See  <http://www.ora.com/catalog/sendmail2/noframes.html>.

       An exhaustive (and exhausting) guide to Linux's and Unix's
       default mail-transfer agent.


 8.  Books on Unix Kernel Implementation


 8.1.  Ancestors of Linux


    The Design of the Unix Operating System
       Bach, Maurice J.; Prentice-Hall; ISBN 0-13-201799-7; 470pp.; $60
       (USA).

       The book that got Linus started.


    Operating Systems, Design and Implementation;
       Tanenbaum, Andrew S.; Prentice-Hall; 1987.

       Alan Cox (one of the core kernel people) likes this book.
       Tanenbaum designed Minix, which is the system Linus bootstrapped
       Linux up from.


 8.2.  Linux


    Linux Kernel Hackers' Guide
       Johnson, Michael K.
       Accessible on the Web at the Linux Documentation Project page,
       or directly at .


    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.
       See  <http://heg-
       school.awl.com/cseng/authors/beck.m/linux/linux.html>.

       A guide to Linux kernel programming; covers 2.0.



 8.3.  Relatives of 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.
       See  <http://heg-
       school.awl.com/cseng/authors/mckusick/4.4bsd/4.4bsd.html>.

       The successor to a classic book on the implementation of the 4.3
       BSD kernel, which influenced Linux's design (especially near
       sockets and networking).  This book covers the 4.4BSD base of
       BSD/OS, FreeBSD, and NetBSD.


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


 9.  Books on Intel processor architecture and programming


    80386 Programmer's Reference Manual
       Intel Corp.; ISBN 1-55512-022-9; 1986;

       Part I. Applications Programming, data types, memory model,
       instruction set.  Part II. Systems Programming, architecture,
       memory management, protection, multitasking, I/O, exceptions and
       interrupts, initialization, coprocessing and multiprocessing.
       Part III.  Compatibility (with earlier x86 machines).  Part IV.
       Instruction Set.


    80386 System Software Writer's Guide
       Intel Corp.; ISBN 1-55512-023-7; 1987.

       This explains the 386 features for operating system writers.  It
       includes a chapter on Unix implementation.  A lot of the 80386
       architecture seems to have been designed with Multics in mind;
       the features are not used by DOS or by Unix.


    Programming the 80386
       Crawford, John H & Gelsinger, Patrick P.; Sybex; ISBN
       0-89588-381-3; 774pp.; $26.95 (USA).

       This is the book the Jolitzes used when they ported BSD to the
       386 architecture.


    Pentium Processor User's Manual: Volume 3, Architecture and Pro�
       gramming
       Manual" Intel Corp.; 1993; ISBN 1-55512-195-0;

       Pretty much the Pentium version of the 80386 Programmer's manual
       listed above.


 10.  Books on PC-Class Hardware

 Note: these books are four or five years old and possibly out of date.
 I don't really grok hardware...


    80386 Hardware Reference Manual
       Intel Corp.; 1986; ISBN 1-55512-024-5;

       Pin connections, timing, waveforms, block diagrams, voltages,
       all that kind of stuff.


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

       JH: "Covers the more recent stuff like EIDE and PCI."


 11.  Administrivia


 11.1.  Terms of Use

 This document is copyright 1997 by Eric S. Raymond. You may use,
 disseminate, and reproduce it freely, provided you:


 �  Do not omit or alter this copyright notice.

 �  Do not omit or alter or omit the version number and date.

 �  Do not omit or alter the document's pointer to the current WWW
    version.

 �  Clearly mark any condensed, altered or versions as such.

 These restrictions are intended to protect potential readers from
 stale or mangled versions.  If you think you have a good case for an
 exception, ask me.


 11.2.  History

 This was originally a mini-HOWTO maintained by Jim Haynes.  I have
 changed the emphasis somewhat, trying to make it more a standalone
 document and less reliant on the various USENET bibliographic
 postings.  The unattrbuted mini-reviews are mine rather than his.