home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / HOWTO / Reading-List-HOWTO < prev    next >
Text File  |  1998-10-14  |  19KB  |  595 lines

  1.   The Linux Reading List HOWTO
  2.   by Eric S. Raymond
  3.   v1.3, 11 February 1998
  4.  
  5.   This document lists the book I think are most valuable to a person
  6.   trying to learn Unix (especially Linux) top to bottom.
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.  
  12.   1. Introduction
  13.  
  14.      1.1 Purpose of this document
  15.      1.2 New versions of this document
  16.      1.3 Feedback and Corrections
  17.      1.4 Related Resources
  18.      1.5 Conventions Used In This Document
  19.  
  20.   2. Books on Culture, History, and Pragmatics
  21.  
  22.   3. Books on General Unix/Linux
  23.  
  24.      3.1 Linux Installation and Administration
  25.      3.2 Using Unix & Linux
  26.      3.3 System Security
  27.  
  28.   4. Books on Shell, Script, and Web Programming
  29.  
  30.   5. Books on Text Formatting
  31.  
  32.      5.1 Tex and LaTeX
  33.  
  34.   6. Books on C and C++ Programming
  35.  
  36.      6.1 C and C++
  37.      6.2 C System Call Interface
  38.  
  39.   7. Books on Networking
  40.  
  41.   8. Books on Unix Kernel Implementation
  42.  
  43.      8.1 Ancestors of Linux
  44.      8.2 Linux
  45.      8.3 Relatives of Linux
  46.  
  47.   9. Books on Intel processor architecture and programming
  48.  
  49.   10. Books on PC-Class Hardware
  50.  
  51.   11. Administrivia
  52.  
  53.      11.1 Terms of Use
  54.      11.2 History
  55.  
  56.  
  57.   ______________________________________________________________________
  58.  
  59.   1.  Introduction
  60.  
  61.  
  62.   1.1.  Purpose of this document
  63.  
  64.   This document lists what I consider to be the essential book-length
  65.   references for learning Unix (especially Linux) and how to program
  66.   under it.
  67.   1.2.  New versions of this document
  68.  
  69.   New versions of the Linux Reading List HOWTO will be periodically
  70.   posted to comp.os.linux.answers.  They will also be uploaded to
  71.   various Linux WWW and FTP sites, including the LDP home page.
  72.  
  73.   You can also view the latest version of this on the World Wide Web via
  74.   the URL <http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html>.
  75.  
  76.  
  77.   1.3.  Feedback and Corrections
  78.  
  79.   If you have questions or comments about this document (or just want to
  80.   suggest a book that you think should be on it), please feel free to
  81.   mail Eric S. Raymond, at esr@thyrsus.com. I welcome any suggestions or
  82.   criticisms.
  83.  
  84.  
  85.   1.4.  Related Resources
  86.  
  87.   For on-line HOWTOs, magazines, and other non-book material, see the
  88.   Linux Documentation Project home page
  89.   <http://sunsite.unc.edu/LDP/HOWTO>.
  90.  
  91.   Some years ago I wrote a less Linux-focused Unix bibliography that may
  92.   still be of some interest and retains a certain amusement value.  You
  93.   can find the Loginataka at
  94.   <http://www.ccil.org/~esr/faqs/loginataka.html>.
  95.  
  96.  
  97.   1.5.  Conventions Used In This Document
  98.  
  99.   Comments not in quotes below are either mine, or I have seen no reason
  100.   to change them from those of Jim Haynes (previous maintainer of this
  101.   document).  Comments sent in by others are in quotes, and have the
  102.   name of the commentator before them (JH is Jim Haynes).
  103.  
  104.   "See" URLs attached to publishing information point directly into the
  105.   publisher's web catalog and typically take you to a page containing a
  106.   cover shot, blurbs, and ordering information.  Books that don't have
  107.   these lack them because the publisher is using frames and the catalog
  108.   pages can't be bookmarked.
  109.  
  110.   Topic listings go roughly from the outside in (culture to user-land
  111.   programming to kernel programming to hardware).  Within sections I
  112.   have tried to list the most useful books first insofar as I am
  113.   familiar with them.  It's just an embarrassing coincidence that this
  114.   lists one of my books first, honest! (Suggestions for a better
  115.   organization cheerfully accepted.)
  116.  
  117.  
  118.   2.  Books on Culture, History, and Pragmatics
  119.  
  120.  
  121.      The New Hacker's Dictionary (Third Edition)
  122.         Raymond, Eric S.; MIT Press; 1996; ISBN 0-262-68092-0; 547pp.
  123.         See  <http://www-mitpress.mit.edu/book-
  124.         home.tcl?isbn=0262680920>.
  125.  
  126.         Um, er.  A guide to Internet culture. Lots of people like it.
  127.         HTML at the Jargon File Resource  Page <http://www.ccil.org>.
  128.  
  129.  
  130.      A Quarter Century of Unix
  131.         Salus, Peter H.; Addison-Wesley; 1994; ISBN 0-201-54777-5;
  132.         256pp.
  133.         See  <http://www.awl.com/cp/authors/salus/unix/unix.html>
  134.  
  135.         Linux is part of the Unix tradition.  This book is an oral
  136.         history of Unix -- how it originated, how it evolved, how it
  137.         spread -- by the people who were there.
  138.  
  139.  
  140.      The Mythical Man Month (Anniversary Edition)
  141.         Brooks, Frederick P.; Addison-Wesley 1995 (ISBN 0-201-83595-9).
  142.         See  <http://heg-school.awl.com/cseng/authors/brooks/mmm-ae/mmm-
  143.         ae.html>.
  144.  
  145.         The one book on software engineering that everyone should read.
  146.  
  147.         Alan Cox: "This I'd recommend not for its technical value but
  148.         for its application of common sense and reality to computing
  149.         projects." JH: "Ah, yes.  What if Linus had been given 200
  150.         programmers and had been told to produce Linux in 3 months!"
  151.  
  152.  
  153.      Bell System Technical Journal, July-August 1978, Vol. 57, No. 6,
  154.         part 2
  155.         AT&T; 416 pp.
  156.  
  157.         Many early papers on Unix, including Ritchie & Thompson, "The
  158.         UNIX Time Sharing System"; Thompson, "UNIX Implementation";
  159.         Ritchie, "A Retrospective"; Bourne, "The UNIX Shell"...
  160.  
  161.  
  162.   3.  Books on General Unix/Linux
  163.  
  164.  
  165.  
  166.   3.1.  Linux Installation and Administration
  167.  
  168.  
  169.      Linux Installation and Getting Started
  170.         Welsh, Matt; LDP; 1997.  Available on the LDP home page, or
  171.         directly at  <http://sunsite.unc.edu/LDP/gs>.
  172.  
  173.         How to bring up Linux.  Explains a lot of Linux basics.  Covers
  174.         basic system administration.
  175.  
  176.  
  177.      Linux System Administtrator's Guide
  178.         Wirzenius, Lars; LDP; 1997.  Available on the LDP home page, or
  179.         directly at  <http://sunsite.unc.edu/LDP/sag>.
  180.  
  181.         An excellent first book on how to maintain and administer a
  182.         Linux system.
  183.  
  184.  
  185.      Essential System Administration (Second Edition)
  186.         Frisch, Aeleen; O'Reilly; 1995; ISBN 0-937175-80-3; 788 pp;
  187.         $32.95.
  188.         See  <http://www.ora.com/catalog/esa2/noframes.html>.
  189.  
  190.         More in-depth coverage of normal system-administration tasks.
  191.         Not Linux-specific but contains Linux material.
  192.  
  193.  
  194.   3.2.  Using Unix & Linux
  195.  
  196.  
  197.      Linux in a Nutshell
  198.         Hekman, Jessica P. et al.; O'Reilly; ISBN 1-56592-167-4; 1997;
  199.         438 pp. $9.95.
  200.         See  <http://www.ora.com/catalog/linuxnut/noframes.html>.
  201.  
  202.         According to O'Reilly, "The Desktop Reference for Linux".  For
  203.         Linux users this obsoletes their "Unix In a Nutshell" which was
  204.         SVr4/Solaris-oriented.
  205.  
  206.  
  207.      Running Linux (Second Edition)
  208.         Welsh, Matt, & Kaufman, Lar; O'Reilly; ISBN 1-56592-151-8; 1996;
  209.         650pp; $24.95.
  210.         See  <http://www.ora.com/catalog/runux2/noframes.html>.
  211.  
  212.         Everything you need in order to understand, install, and use the
  213.         Linux operating system.  Excellent beginner's book.
  214.  
  215.  
  216.      A Practical Guide To Linux
  217.         Sobell, Mark G.; Addison-Wesley; ISBN 0-201-89549-8; 1997; 1013
  218.         pp.
  219.  
  220.         Just what the title says -- practical tutorials in basic Unix,
  221.         shells, editors, mail programs, networking, Web tools, and
  222.         utilities.  Covers some system administration fundamentals.
  223.  
  224.  
  225.   3.3.  System Security
  226.  
  227.  
  228.      Practical Unix Security
  229.         Garfinkel, Simpson, and Spafford, Gene; O'Reilly Associates;
  230.         ISBN 0-56592-148-8; 1991.
  231.         See  <http://www.ora.com/catalog/puis/noframes.html>.
  232.  
  233.         Ronald P. Miller: "Some overlap with Essential System Admin.,
  234.         but all in all a solid book on security, especially for those
  235.         aspiring to allow multiple-user, dial-up/net access to their
  236.         Linux boxes."
  237.  
  238.  
  239.      Firewalls & Internet Security
  240.         Cheswick, William R. & Bellovin, Steven M.; Addison-Wesley;
  241.         1994; ISBN 0-201-63357-4; 320pp.
  242.         See  <http://www.awl.com/cp/Ches.html>.
  243.  
  244.  
  245.   4.  Books on Shell, Script, and Web Programming
  246.  
  247.  
  248.      Programming Perl (Second Edition)
  249.         Wall, Larry & Christiansen, Tom & Schwartz, Randal; O'Reilly;
  250.         1997; ISBN 0-56592-149-6; 644pp.
  251.         See  <http://www.ora.com/catalog/pperl2/noframes.html>.
  252.  
  253.         Shell (as a programming language for more than trivial
  254.         scripting) is dead.  Perl rules in its place.  This is the
  255.         second edition of the definitive Perl book -- vastly better
  256.         organized than the first, and it covers Perl 5.
  257.  
  258.  
  259.      Programming Python
  260.         Lutz, Mark; O'Reilly; 1997; ISBN 0-56592-197-6; 880pp.
  261.         See  <http://www.ora.com/catalog/python/noframes.html>.
  262.  
  263.         The next step beyond Perl.  Python is beautifully designed, has
  264.         better integration with C, and scales up better to large
  265.         projects.
  266.  
  267.  
  268.      HTML: The Definitive Guide (2nd Edition)
  269.         Musciano, Chuck & Kennedy. Bill; O'Reilly; 1997; ISBN
  270.         0-56592-235-2; 552pp.
  271.         See  <http://www.ora.com/catalog/html2/noframes.html>.
  272.  
  273.         The best HTML tutorial/reference I have ever seen, and the only
  274.         HTML book you need unless you want to do CGI.
  275.  
  276.  
  277.      The Unix Programming Environment
  278.         Kernighan, Brian, and Pike, Rob; Prentice-Hall; 1984; ISBN
  279.         0-13-937681-X; 1984.
  280.  
  281.         A true classic -- possibly the best single-book exposition of
  282.         the Unix philosophy.
  283.  
  284.  
  285.   5.  Books on Text Formatting
  286.  
  287.  
  288.   5.1.  Tex and LaTeX
  289.  
  290.  
  291.  
  292.      The LaTeX Companion
  293.         Goossens, Michael & Mittlebach, Frank, & Samarin, Alexander;
  294.         Addison-Wesley; 1994; ISBN 0-201-54199-8; 530pp.
  295.         See  <http://www.awl.com/cp/tlc.html>.
  296.  
  297.         `If you are one of those users who would like to know how LaTeX
  298.         can be extended to create the nicest documents possible without
  299.         becoming a (La)TeX guru, then this book is for you' --- from the
  300.         Preface.  Bruce Thompson adds: "A very nice book providing a lot
  301.         of information about the new extensions to LaTeX, provides a
  302.         large number of examples showing precisely how your document's
  303.         layout can be manipulated"
  304.  
  305.  
  306.      LaTeX: A Document Preparation System (Second Edition)
  307.         Lamport, Leslie; Addison-Wesley; 1994; ISBN 0-201-52983-1;
  308.         256pp.
  309.         See  <http://heg-
  310.         school.awl.com/cseng/authors/lamport/latex/latex.html>.
  311.  
  312.         Bruce Thompson: "The ultimate reference on LaTeX 2.09 by its
  313.         author.  A new edition covering LaTeX2e (the version included in
  314.         the current TeX/LaTeX distribution) is in preparation.  LaTeX
  315.         2.09 is fully supported by LaTeX2e.  A must for anyone wanting
  316.         to use LaTeX.  Provides a gentle introduction to document
  317.         preparation and the various tools that LaTeX provides for
  318.         producing professional quality documents.  Lots of examples."
  319.  
  320.  
  321.      The TeXbook, Volume A of Computers and Typesetting; Knuth, Donald
  322.         A.
  323.         Addison-Wesley; 1986, ISBN 0-201-13448; 496pp.  See
  324.         <http://www.awl.com/cp/TeXbook.html>
  325.  
  326.         Bruce Thompson: "The definitive user's guide and complete
  327.         reference manual for TeX.  Probably not needed for casual LaTeX
  328.         use, but a fascinating book nonetheless."  I'll strengthen that
  329.         by adding that this book is not for the faint of heart.
  330.  
  331.      The METAFONT book, Volume C of Computers and Typesetting
  332.         Knuth, Donald A.; Addison-Wesley; 1986; 0-201-13444-6, 1986;
  333.         384pp.
  334.         See  <http://www.awl.com/cp/METAFONTbook.html>
  335.  
  336.         Bruce Thompson: "The definitive user's guide and reference
  337.         manual for METAFONT, the companion program to TeX for designing
  338.         fonts.  An excellent work if you're planning to design your own
  339.         fonts for use in TeX and LaTeX.  METAFONT is included with the
  340.         normal TeX/LaTeX distribution."  This book is definitely not for
  341.         the faint of heart.
  342.  
  343.  
  344.   6.  Books on C and C++ Programming
  345.  
  346.  
  347.   6.1.  C and C++
  348.  
  349.  
  350.      The C Programming Language (Second Edition)
  351.         Kernighan, Brian W.; Ritchie, Dennis M; Prentice-Hall; 1988;
  352.         ISBN 0-13-110362-8, 272pp.
  353.  
  354.         The improved second edition, covering ANSI C, of the original
  355.         classic C book coauthored by C's designer, "K&R".  Still the
  356.         best!
  357.  
  358.  
  359.      Who's Afraid of C++?
  360.         Heller, Steve; Academic Press; 1996; ISBN 0-12-339097; 508pp.
  361.  
  362.         The best introductory book on C++ I have seen.
  363.  
  364.  
  365.   6.2.  C System Call Interface
  366.  
  367.  
  368.      POSIX Programmer's Guide: Writing Portable Unix Programs
  369.         Lewine, Donald; O'Reilly; 1992; ISBN 0-937175-73-0; 607pp.
  370.         See  <http://www.ora.com/catalog/posix/noframes.html>.
  371.  
  372.         An excellent programmer's reference on the POSIX.1 standard.  I
  373.         like this one better than JH's choice.
  374.  
  375.  
  376.      The Posix.1 Standard: A Programmer's Guide
  377.         Zlotnick, Fred; Benjamin/ Cummings; 1991; ISBN 0-8053-9605-5;
  378.         379pp.; $35.95 (USA).
  379.  
  380.         JH: "When I complained about the lack of Section 2 man pages in
  381.         Linux, somebody told me just to get a POSIX book, because that's
  382.         what Linux does.  I like this book because I'm not a
  383.         professional programmer and the author gives copious
  384.         explanations and examples."
  385.  
  386.  
  387.   7.  Books on Networking
  388.  
  389.  
  390.  
  391.      Unix Network Programming
  392.         Stevens, W. Richard; Prentice Hall; 1990; ISBN 0-13-949876-1;
  393.         772 pp.; $54 (USA).
  394.  
  395.         Everything you might want to know about the subject, and some
  396.         things you probably didn't want to know (really, XNS!?).
  397.         Generally regarded as definitive on the basics, though it's pre-
  398.         Web.
  399.  
  400.  
  401.      Linux Network Administrator's Guide
  402.         Kirch, Olaf; O'Reilly; 1995; ISBN 1-56592-087-2; 335pp.
  403.         See  <http://www.ora.com/catalog/linag/noframes.html>.
  404.  
  405.         A practical guide to Linux's TCP/IP and related services.
  406.         Accessible on the Web at the Linux Documentation Project page,
  407.         or directly at <http://sunsite.unc.edu/LDP/LDP/nag/nag.html>.
  408.  
  409.  
  410.      TCP/IP Network Adminstration
  411.         Hunt, Craig; O'Reilly Associates, ISBN 0-937175-82-X; 1992;
  412.         472pp.
  413.         See  <http://www.ora.com/catalog/tcp2/noframes.html>.
  414.  
  415.         Less Linux-specific than the Kirch book.  Features deeper
  416.         coverage of the TCP/IP core, including routing and BGP.
  417.  
  418.  
  419.      DNS and BIND (Second Edition)
  420.         Albitz, Paul, and Liu, Cricket; O'Reilly; 1996; ISBN
  421.         1-56592-236-0; 1992; 438pp; $32.95.
  422.         See  <http://www.ora.com/catalog/dns2/noframes.html>.
  423.  
  424.         In-depth coverage of DNS, useful for people running complicated
  425.         multiple-subnet installations. Covers BIND library programming.
  426.  
  427.  
  428.      Sendmail (Second Edition)
  429.         Costales, Bryan & Allman, Eric; O'Reilly; ISBN 1-56592-222-0;
  430.         1997; 1050 pp; $32.95
  431.         See  <http://www.ora.com/catalog/sendmail2/noframes.html>.
  432.  
  433.         An exhaustive (and exhausting) guide to Linux's and Unix's
  434.         default mail-transfer agent.
  435.  
  436.  
  437.   8.  Books on Unix Kernel Implementation
  438.  
  439.  
  440.   8.1.  Ancestors of Linux
  441.  
  442.  
  443.      The Design of the Unix Operating System
  444.         Bach, Maurice J.; Prentice-Hall; ISBN 0-13-201799-7; 470pp.; $60
  445.         (USA).
  446.  
  447.         The book that got Linus started.
  448.  
  449.  
  450.      Operating Systems, Design and Implementation;
  451.         Tanenbaum, Andrew S.; Prentice-Hall; 1987.
  452.  
  453.         Alan Cox (one of the core kernel people) likes this book.
  454.         Tanenbaum designed Minix, which is the system Linus bootstrapped
  455.         Linux up from.
  456.  
  457.  
  458.   8.2.  Linux
  459.  
  460.  
  461.      Linux Kernel Hackers' Guide
  462.         Johnson, Michael K.
  463.         Accessible on the Web at the Linux Documentation Project page,
  464.         or directly at .
  465.  
  466.  
  467.      LINUX Kernel Internals (Second Edition)
  468.         Beck, Michael & Bohme, Harold & Mirko, Dziadzka & Kunitz, Ulrich
  469.         & Magnus, Robert & Verworner, Dick; Addison Wesley; 1998;
  470.         ISBN:0-201-33143-8; 480.
  471.         See  <http://heg-
  472.         school.awl.com/cseng/authors/beck.m/linux/linux.html>.
  473.  
  474.         A guide to Linux kernel programming; covers 2.0.
  475.  
  476.  
  477.  
  478.   8.3.  Relatives of Linux
  479.  
  480.  
  481.      The Design and Implementation of the 4.4BSD Unix Operating System
  482.         McKusick, Marshall Kirk, Bostic, Keith, Karels, Michael J., and
  483.         Quarterman, John S.; Addison-Wesley; 1996; ISBN 0-201-54979-4;
  484.         608pp.
  485.         See  <http://heg-
  486.         school.awl.com/cseng/authors/mckusick/4.4bsd/4.4bsd.html>.
  487.  
  488.         The successor to a classic book on the implementation of the 4.3
  489.         BSD kernel, which influenced Linux's design (especially near
  490.         sockets and networking).  This book covers the 4.4BSD base of
  491.         BSD/OS, FreeBSD, and NetBSD.
  492.  
  493.  
  494.      Porting Unix to the 386; Jolitz, William F., and Jolitz, Lynne G.
  495.         Dr. Dobb's Journal; Jan 1991-July 1992.
  496.  
  497.  
  498.   9.  Books on Intel processor architecture and programming
  499.  
  500.  
  501.      80386 Programmer's Reference Manual
  502.         Intel Corp.; ISBN 1-55512-022-9; 1986;
  503.  
  504.         Part I. Applications Programming, data types, memory model,
  505.         instruction set.  Part II. Systems Programming, architecture,
  506.         memory management, protection, multitasking, I/O, exceptions and
  507.         interrupts, initialization, coprocessing and multiprocessing.
  508.         Part III.  Compatibility (with earlier x86 machines).  Part IV.
  509.         Instruction Set.
  510.  
  511.  
  512.      80386 System Software Writer's Guide
  513.         Intel Corp.; ISBN 1-55512-023-7; 1987.
  514.  
  515.         This explains the 386 features for operating system writers.  It
  516.         includes a chapter on Unix implementation.  A lot of the 80386
  517.         architecture seems to have been designed with Multics in mind;
  518.         the features are not used by DOS or by Unix.
  519.  
  520.  
  521.      Programming the 80386
  522.         Crawford, John H & Gelsinger, Patrick P.; Sybex; ISBN
  523.         0-89588-381-3; 774pp.; $26.95 (USA).
  524.  
  525.         This is the book the Jolitzes used when they ported BSD to the
  526.         386 architecture.
  527.  
  528.  
  529.      Pentium Processor User's Manual: Volume 3, Architecture and Pro¡
  530.         gramming
  531.         Manual" Intel Corp.; 1993; ISBN 1-55512-195-0;
  532.  
  533.         Pretty much the Pentium version of the 80386 Programmer's manual
  534.         listed above.
  535.  
  536.  
  537.   10.  Books on PC-Class Hardware
  538.  
  539.   Note: these books are four or five years old and possibly out of date.
  540.   I don't really grok hardware...
  541.  
  542.  
  543.      80386 Hardware Reference Manual
  544.         Intel Corp.; 1986; ISBN 1-55512-024-5;
  545.  
  546.         Pin connections, timing, waveforms, block diagrams, voltages,
  547.         all that kind of stuff.
  548.  
  549.  
  550.      The Indispensable PC Hardware Book
  551.         Messmer, Hans-Peter; Addison-Wesley; 1993; ISBN 0-201-62424-9;
  552.         1000 pp.
  553.  
  554.         JH: "Covers the more recent stuff like EIDE and PCI."
  555.  
  556.  
  557.   11.  Administrivia
  558.  
  559.  
  560.   11.1.  Terms of Use
  561.  
  562.   This document is copyright 1997 by Eric S. Raymond. You may use,
  563.   disseminate, and reproduce it freely, provided you:
  564.  
  565.  
  566.   ╖  Do not omit or alter this copyright notice.
  567.  
  568.   ╖  Do not omit or alter or omit the version number and date.
  569.  
  570.   ╖  Do not omit or alter the document's pointer to the current WWW
  571.      version.
  572.  
  573.   ╖  Clearly mark any condensed, altered or versions as such.
  574.  
  575.   These restrictions are intended to protect potential readers from
  576.   stale or mangled versions.  If you think you have a good case for an
  577.   exception, ask me.
  578.  
  579.  
  580.   11.2.  History
  581.  
  582.   This was originally a mini-HOWTO maintained by Jim Haynes.  I have
  583.   changed the emphasis somewhat, trying to make it more a standalone
  584.   document and less reliant on the various USENET bibliographic
  585.   postings.  The unattrbuted mini-reviews are mine rather than his.
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.