old-www/HOWTO/html_single/Reading-List-HOWTO/index.html

1922 lines
35 KiB
HTML
Raw Permalink Blame History

<HTML
><HEAD
><TITLE
>The Linux Reading List HOWTO</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD
><BODY
CLASS="article"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="title"
><A
NAME="AEN2"
></A
>The Linux Reading List HOWTO</H1
><H3
CLASS="author"
><A
NAME="AEN4"
>Eric Steven Raymond</A
></H3
><DIV
CLASS="affiliation"
><SPAN
CLASS="orgname"
><A
HREF="http://www.catb.org/~esr/"
TARGET="_top"
>&#13; Thyrsus Enterprises</A
><BR></SPAN
><DIV
CLASS="address"
><P
CLASS="address"
><br>
&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="email"
>&#60;<A
HREF="mailto:esr@thyrsus.com"
>esr@thyrsus.com</A
>&#62;</TT
><br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
></DIV
><P
CLASS="copyright"
>Copyright &copy; 2000 Eric S. Raymond</P
><DIV
CLASS="revhistory"
><TABLE
WIDTH="100%"
BORDER="0"
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
COLSPAN="3"
><B
>Revision History</B
></TH
></TR
><TR
><TD
ALIGN="LEFT"
>Revision 3.0</TD
><TD
ALIGN="LEFT"
>2004-02-04</TD
><TD
ALIGN="LEFT"
>Revised by: esr</TD
></TR
><TR
><TD
ALIGN="LEFT"
COLSPAN="3"
>Major update. Removed out-of-date books, added a new one.</TD
></TR
><TR
><TD
ALIGN="LEFT"
>Revision 2.1</TD
><TD
ALIGN="LEFT"
>2003-10-28</TD
><TD
ALIGN="LEFT"
>Revised by: esr</TD
></TR
><TR
><TD
ALIGN="LEFT"
COLSPAN="3"
>Added TAOUP.</TD
></TR
><TR
><TD
ALIGN="LEFT"
>Revision 2.0</TD
><TD
ALIGN="LEFT"
>2003-07-31</TD
><TD
ALIGN="LEFT"
>Revised by: esr</TD
></TR
><TR
><TD
ALIGN="LEFT"
COLSPAN="3"
>Major revision, cleaned out obsolete stuff.</TD
></TR
><TR
><TD
ALIGN="LEFT"
>Revision 1.21</TD
><TD
ALIGN="LEFT"
>2003-02-22</TD
><TD
ALIGN="LEFT"
>Revised by: esr</TD
></TR
><TR
><TD
ALIGN="LEFT"
COLSPAN="3"
>LDP site has moved.</TD
></TR
><TR
><TD
ALIGN="LEFT"
>Revision 1.20</TD
><TD
ALIGN="LEFT"
>2001-06-14</TD
><TD
ALIGN="LEFT"
>Revised by: esr</TD
></TR
><TR
><TD
ALIGN="LEFT"
COLSPAN="3"
>Removed "Practical Unix Security"; it's five years old and
the material is now covered better by other books.</TD
></TR
><TR
><TD
ALIGN="LEFT"
>Revision 1.19</TD
><TD
ALIGN="LEFT"
>2001-06-14</TD
><TD
ALIGN="LEFT"
>Revised by: esr</TD
></TR
><TR
><TD
ALIGN="LEFT"
COLSPAN="3"
>Added Ross Anderson's "Security Engineering". Corrected ISBNs.</TD
></TR
></TABLE
></DIV
><DIV
><DIV
CLASS="abstract"
><A
NAME="AEN50"
></A
><P
></P
><P
>&#13; This document lists the books I think are most valuable to a person
trying to learn Unix (especially Linux) top to bottom.
</P
><P
></P
></DIV
></DIV
><DIV
CLASS="legalnotice"
><A
NAME="AEN47"
></A
><P
><B
>Copyright</B
></P
><P
>Permission is granted to copy, distribute and/or modify
this document under the terms of the Open Publication License,
version 2.0.</P
></DIV
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="#introduction"
>Introduction</A
></DT
><DD
><DL
><DT
>1.1. <A
HREF="#purpose"
>Purpose of this document</A
></DT
><DT
>1.2. <A
HREF="#newversions"
>New versions of this document</A
></DT
><DT
>1.3. <A
HREF="#feedback"
>Feedback and Corrections</A
></DT
><DT
>1.4. <A
HREF="#related"
>Related Resources</A
></DT
><DT
>1.5. <A
HREF="#conventions"
>Conventions Used In This Document</A
></DT
></DL
></DD
><DT
><A
HREF="#AEN80"
>Basic Linux and Unix bibliography</A
></DT
><DT
>A. <A
HREF="#AEN832"
>Administrivia</A
></DT
><DD
><DL
><DT
>A.1. <A
HREF="#AEN834"
>Terms of Use</A
></DT
><DT
>A.2. <A
HREF="#AEN847"
>History</A
></DT
></DL
></DD
></DL
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="introduction"
></A
>1. Introduction</H1
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="purpose"
></A
>1.1. Purpose of this document</H2
><P
>This document lists what I consider to be the essential book-length
references for learning Unix (especially Linux) and how to program under
it.</P
></DIV
><DIV
CLASS="sect2"
><HR><H2
CLASS="sect2"
><A
NAME="newversions"
></A
>1.2. New versions of this document</H2
><P
>New versions of the Linux Reading List HOWTO will be periodically
posted to <A
HREF="news:comp.os.linux.answers"
TARGET="_top"
>&#13;comp.os.linux.answers</A
>. They will also be uploaded to
various Linux WWW and FTP sites, including the LDP home page.</P
><P
>You can also view the latest version of this on the World Wide
Web via the URL <A
HREF="http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html"
TARGET="_top"
>&#13;http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html</A
>.</P
></DIV
><DIV
CLASS="sect2"
><HR><H2
CLASS="sect2"
><A
NAME="feedback"
></A
>1.3. Feedback and Corrections</H2
><P
>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 <TT
CLASS="email"
>&#60;<A
HREF="mailto:esr@thyrsus.com"
>esr@thyrsus.com</A
>&#62;</TT
>. I welcome any
suggestions or criticisms.</P
></DIV
><DIV
CLASS="sect2"
><HR><H2
CLASS="sect2"
><A
NAME="related"
></A
>1.4. Related Resources</H2
><P
>For on-line HOWTOs, magazines, and other non-book material, see the
<A
HREF="http://www.tldp.org/"
TARGET="_top"
>Linux Documentation Project
home page</A
>.</P
><P
>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 <A
HREF="http://www.catb.org/~esr/faqs/loginataka.html"
TARGET="_top"
>here</A
>.</P
><P
>SAGE, the System Administrator's Guild, maintains an excellent
<A
HREF="http://www.usenix.org/sage/sysadmins/books/booklist.html"
TARGET="_top"
>&#13;list of relevant books</A
>.</P
></DIV
><DIV
CLASS="sect2"
><HR><H2
CLASS="sect2"
><A
NAME="conventions"
></A
>1.5. Conventions Used In This Document</H2
><P
>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).</P
><P
>"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.</P
><P
>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.)</P
></DIV
></DIV
><A
NAME="AEN80"
></A
><HR><H1
><A
NAME="AEN80"
></A
>Basic Linux and Unix bibliography</H1
><H2
CLASS="bibliodiv"
><A
NAME="AEN82"
></A
>Books on Culture, History, and Pragmatics</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN84"
></A
><P
><I
>The New Hacker's Dictionary</I
>, Third Edition, <SPAN
CLASS="EDITOR"
>Edited by Eric S. Raymond</SPAN
>, 1996, ISBN 0-262-68092-0, MIT Press, 547pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Um, er. A guide to Internet culture. Lots of people like it.
HTML at the <A
HREF="http://www.catb.org/~esr/jargon"
TARGET="_top"
>Jargon File
Resource Page</A
>.</P
><P
><A
HREF="http://www-mitpress.mit.edu/book-home.tcl?isbn=0262680920"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN101"
></A
><P
><I
>A Quarter Century of Unix</I
>, <SPAN
CLASS="EDITOR"
>Edited by Peter H. Salus</SPAN
>, 1994, ISBN 0-201-54777-5, Addison-Wesley, 255pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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.</P
><P
><A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={CE8A5F8A-8E49-4B84-89D4-F518971D8130}"
TARGET="_top"
>Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN116"
></A
><P
><I
>The Mythical Man Month</I
>, Anniversary Edition, <SPAN
CLASS="AUTHOR"
>Frederic P. Brooks</SPAN
>, 1995, ISBN 0-201-83595-9, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The one book on software engineering everyone should read.</P
><P
>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!"</P
><P
><A
HREF="http://www.aw-bc.com/catalog/academic/product/0,4096,0201835959,00.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN132"
></A
><P
><I
>The Cathedral and the Bazaar</I
>, Second Edition, <SPAN
CLASS="EDITOR"
>Edited by Eric S. Raymond</SPAN
>, 1999, ISBN 0-596-00131-2, O'Reilly &#38; Associates, 240pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>How and why the Linux development model works.
HTML <A
HREF="http://www.catb.org/~esr/writings/cathedral-bazaar"
TARGET="_top"
>&#13; here</A
>.</P
><P
>Order <A
HREF="http://www.oreilly.com/catalog/cathbaz/"
TARGET="_top"
>&#13; here.</A
>.</P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN149"
></A
>Linux basics</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN151"
></A
><P
><I
>Linux System Administrator's Guide</I
>, <SPAN
CLASS="EDITOR"
>Edited by Lars Wirzenius</SPAN
>, 1997, Linux Documentation Project.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Available on the LDP home page, or
directly at <A
HREF="http://www.tldp.org/LDP/sag/"
TARGET="_top"
>http://www.tldp.org//sag/</A
>.</P
><P
>An excellent first book on how to maintain and administer a
Linux system.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN164"
></A
><P
><I
>Linux in a Nutshell</I
>, Fourth Edition, <SPAN
CLASS="AUTHOR"
>Ellen Siever</SPAN
>, <SPAN
CLASS="AUTHOR"
>Stephen Figgins</SPAN
>, <SPAN
CLASS="AUTHOR"
>Aaron Weber</SPAN
>, 2003, ISBN 0-596-00482-6, O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>According to O'Reilly, "The Desktop Reference for Linux". For
Linux users this obsoletes their "Unix In a Nutshell" which was
SVr4/Solaris-oriented.</P
><P
><A
HREF="http://www.oreilly.com/catalog/linuxnut3/"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN185"
></A
><P
><I
>Running Linux</I
>, Fourth Edition, <SPAN
CLASS="AUTHOR"
>Matt Welsh</SPAN
>, <SPAN
CLASS="AUTHOR"
>Matthias Dallheimer</SPAN
>, <SPAN
CLASS="AUTHOR"
>Terry Dawson</SPAN
>, <SPAN
CLASS="AUTHOR"
>Lar Kaufman</SPAN
>, 2002, 0-596-00272-6, O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Everything you need in order to understand, install, and use the
Linux operating system. Excellent beginner's book.</P
><P
><A
HREF="http://www.ora.com/catalog/runux3/"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN209"
></A
><P
><I
>A Practical Guide to Linux</I
>, <SPAN
CLASS="AUTHOR"
>Mark G. Sobell</SPAN
>, 1998, ISBN 0-201-89549-8, Addison-Wesley, 1072pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Just what the title says -- practical tutorials in basic Unix,
shells, editors, mail programs, networking, Web tools, and
utilities. Covers some system administration fundamentals.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN222"
></A
><P
><I
>Essential System Administration</I
>, 3rd Edition, <SPAN
CLASS="AUTHOR"
><EFBFBD>leen Frisch</SPAN
>, 2002, ISBN 0-596-00343-9, O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>More in-depth coverage of normal system-administration tasks.
Not Linux-specific but contains Linux material.</P
><P
><A
HREF="http://www.ora.com/catalog/esa2/noframes.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN237"
></A
>System Security</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN239"
></A
><P
><I
>Security Engineering</I
><I
>: </I
><I
>A Guide to Building Dependable Distributed Systems</I
>, <SPAN
CLASS="AUTHOR"
>Ross Anderson</SPAN
>, 2001, 0-471-38922-6, Wiley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The best book I've ever seen on technological security
measures and general computer security.
The section on "How to Steal a Painting" and physical alarm systems
is worth the price of admission by itself.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN252"
></A
><P
><I
>Real World Linux Security</I
><I
>: </I
><I
>Intrusion Prevention, Detection, and Recovery</I
>, 2nd edition, <SPAN
CLASS="AUTHOR"
>Bob Toxen</SPAN
>, 2003, ISBN 0-13-046456-2, Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>This is excellent work, the standard by which future Linux
security books will be judged. I wrote a foreword for it. Combines
step-by-step practical instructions on hardining a Linux system
with good theory on attack paths, rings of protection, and security
analysis. Describes many counters for specific exploits. </P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN266"
></A
>Books on Shell, Script, and Web Programming</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN268"
></A
><P
><I
>Programming Perl</I
>, Third Edition, <SPAN
CLASS="AUTHOR"
>Larry Wall, </SPAN
><SPAN
CLASS="AUTHOR"
>Tom Christiansen, </SPAN
><SPAN
CLASS="AUTHOR"
>and Jon Orwant</SPAN
>, 2000, ISBN 0-596-00027-8, O'Reilly &#38; Associates, 1104pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Shell (as a programming language for more than trivial scripting)
is dead. Perl rules in its place (though it is now being strongly
challenged by Python). This is the third edition of
the definitive Perl book.</P
><P
><A
HREF="http://www.oreilly.com/catalog/pperl3/"
TARGET="_top"
>&#13; Order here.</A
></P
><P
>Emmanuel Pierre keeps a <A
HREF="http://www.e-nef.com/perl/listeperl.html.en"
TARGET="_top"
>short list of Perl
books</A
>.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN293"
></A
><P
><I
>Programming Python</I
>, Second Edition, <SPAN
CLASS="AUTHOR"
>Mark Lutz</SPAN
>, 2001, ISBN 0-596-00085-5, O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The next step beyond Perl. Python is beautifully designed,
has better integration with C, and scales up more gracefully to large
projects.</P
><P
><A
HREF="http://www.ora.com/catalog/python/"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN308"
></A
><P
><I
>HTML &#38; XHTML: The Definitive Guide</I
>, Fifth Edition, <SPAN
CLASS="AUTHOR"
>Chuck Musciano </SPAN
><SPAN
CLASS="AUTHOR"
>and Bill Kennedy</SPAN
>, 2002, ISBN 0-596-00382-X, O'Reilly &#38; Associates, 680pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The best HTML tutorial/reference I have ever seen, and the only
HTML book you need unless you also want to do CGI. I don't know of
any other book on HTML that comes within miles of this one for
comprehensiveness, depth, and quality of organization.</P
><P
><A
HREF="http://www.ora.com/catalog/html5/"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN328"
></A
><P
><I
>The Unix Programming Environment</I
>, <SPAN
CLASS="AUTHOR"
>Brian Kernighan </SPAN
><SPAN
CLASS="AUTHOR"
>and Rob Pike</SPAN
>, 1984, ISBN 0-13-937681-X, Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>A true classic -- possibly the best single-book exposition of the
Unix philosophy. Useful for learning shell programming.</P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN344"
></A
>Tex and LaTeX</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN346"
></A
><P
><I
>The LaTeX Companion</I
>, <SPAN
CLASS="AUTHOR"
>Michael Goossens, </SPAN
><SPAN
CLASS="AUTHOR"
>Frank Mittelbach, </SPAN
><SPAN
CLASS="AUTHOR"
>and Alexander Samarin</SPAN
>, 1994, ISBN 0-201-54199-8, Addison-Wesley, 530pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>`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"</P
><P
><A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={2B50D478-D4C6-41F2-BD2F-F65E8A99E1C4}"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN368"
></A
><P
><I
>LaTeX: A Document Preparation System</I
>, <SPAN
CLASS="AUTHOR"
>Leslie Lamport</SPAN
>, 1994, ISBN 0-201-52983-1, Addison-Wesley, 256pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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."</P
><P
><A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={3DC3049A-068B-4184-B406-C13CBFC93CEB}"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN383"
></A
><P
><I
>The TeXbook, Volume A of Computers and Typesetting</I
>, <SPAN
CLASS="AUTHOR"
>Donald Knuth</SPAN
>, 1986, ISBN 0-201-13448-9, Addison-Wesley, 496pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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.</P
><P
><A
HREF="http://www.awl.com/cp/TeXbook.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN398"
></A
><P
><I
>The METAFONT Book, Volume C of Computers and Typesetting</I
>, <SPAN
CLASS="AUTHOR"
>Donald Knuth</SPAN
>, 1986, ISBN 0-201-13444-6, Addison-Wesley, 386pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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
<EM
>definitely</EM
> not for the faint of heart.</P
><P
><A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={27AADE0A-B3C5-4F6E-B79F-5A53027EA008}"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN414"
></A
>Good Programming Style</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN416"
></A
><P
><I
>The Practice of Programming</I
>, <SPAN
CLASS="AUTHOR"
>Brian Kernighan </SPAN
><SPAN
CLASS="AUTHOR"
>and Rob Pike</SPAN
>, 1999, ISBN 0-201-61586-X, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>An excellent treatise on writing high-quality programs,
surely destined to become a classic of the field.</P
><P
><A
HREF="http://cm.bell-labs.com/cm/cs/tpop/"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN434"
></A
><P
><I
>Programming Pearls</I
>, (Second Edition), <SPAN
CLASS="AUTHOR"
>Jon Bentley</SPAN
>, 2000, ISBN 0-201-65788-0, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>These are selected essays from Bentley's column in the
Communications of the ACM. He discusses a wide variety of issues in
program improvement, often focusing on program efficiency.</P
><P
><A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={8D9EB790-15B3-41C9-AE3D-8149347A52AA}"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN449"
></A
><P
><I
>The Art of Unix Programming</I
>, <SPAN
CLASS="EDITOR"
>Edited by Eric S. Raymond</SPAN
>, 2003, ISBN 0-131-42901-9, Addison-Wesley, 512pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The book on how to think like a Unix expert. Browseable HTML
and ordering info live <A
HREF="http://www.catb.org/~esr/writings/taoup/"
TARGET="_top"
>here</A
>.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN463"
></A
><P
><I
>Code Reading</I
><I
>: </I
><I
>The Open Source Perspective</I
>, <SPAN
CLASS="EDITOR"
>Edited by Diomedis Spinellis</SPAN
>, 2003, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>A good book on an often-neglected skill. Order
<A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={DE5EA6BB-1743-406B-A680-D1B335BA7EA2}&#38;session_id={D106B2CE-36F1-4EA0-8651-74B623E0CECD}"
TARGET="_top"
>here</A
>.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN476"
></A
><P
><I
>Writing Efficient Programs</I
>, <SPAN
CLASS="AUTHOR"
>Jon Bentley</SPAN
>, 1982, ISBN 0-13-970251-2 or 0-13-970244-X, Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>This book presents Bentley's methodology and set of rules for
improving program efficiency, and includes a large number of
examples.</P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN488"
></A
>C and C++</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN490"
></A
><P
><I
>The C Programming Language</I
>, (Second Edition), <SPAN
CLASS="AUTHOR"
>Brian Kernighan </SPAN
><SPAN
CLASS="AUTHOR"
>and Dennis Ritchie</SPAN
>, 1988, ISBN 0-13-110362-8, Addison-Wesley, 272pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The improved second edition, covering ANSI C, of the original
classic C book coauthored by C's designer, "K&#38;R". Still the
best!</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN508"
></A
><P
><I
>Who's Afraid of C++?</I
>, <SPAN
CLASS="AUTHOR"
>Steve Heller</SPAN
>, 1996, ISBN 0-12-339097-4, Academic Press, 508pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The best introductory book on C++ I have seen. Now available
<A
HREF="http://www.steveheller.com/whos"
TARGET="_top"
>on the Web</A
>.</P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN522"
></A
>C System Call Interface</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN524"
></A
><P
><I
>POSIX Programmer's Guide: Writing Portable Unix Programs</I
>, <SPAN
CLASS="AUTHOR"
>Donald Lewine</SPAN
>, 1992, ISBN 0-937175-73-0, O'Reilly &#38; Associates, 607pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Linux hews very close to the letter of the POSIX standard
(non-conformance is considered a bug and swiftly fixed).
This excellent reference for POSIX is thus also an excellent
reference for the Linux kernel API.</P
><P
><A
HREF="http://www.ora.com/catalog/posix/"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN539"
></A
><P
><I
>Advanced Programming in the Unix Environment</I
>, <SPAN
CLASS="AUTHOR"
>W. Richard Stevens</SPAN
>, 1993, ISBN 0-201-56317-7, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>A book on general Unix programming that is every bit as good as
Stevens's classic on network programming.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN552"
></A
><P
><I
>Linux Application Development</I
>, <SPAN
CLASS="AUTHOR"
>Michael K. Johnson </SPAN
><SPAN
CLASS="AUTHOR"
>and Erik W. Troan</SPAN
>, 1998, ISBN 0-201-308215, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The best single reference to the Linux API. Covers the
features that aren't generic Unix or Posix.</P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN568"
></A
>Books on Networking</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN570"
></A
><P
><I
>Unix Network Programming, volume 1 -- Networking APIs: Sockets and XTI</I
>, <SPAN
CLASS="AUTHOR"
>W. Richard Stevens</SPAN
>, 1998, ISBN 0-13-490012-X, Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Everything you might want to know about the subject. Generally
regarded as definitive on the basics.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN583"
></A
><P
><I
>Unix Network Programming, volume 2 -- Interprocess Communication</I
>, <SPAN
CLASS="AUTHOR"
>Richard Stevens</SPAN
>, 1998, ISBN 0-13-081081-9, Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Ditto...</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN595"
></A
><P
><I
>Linux Network Administrator's Guide</I
>, <SPAN
CLASS="AUTHOR"
>Olaf Kirch</SPAN
>, 1995, ISBN 1-56592-087-2, O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Available on the LDP home page, or
directly at <A
HREF="http://www.tldp.org/nag/nag.html"
TARGET="_top"
>http://www.tldp.org/nag.html</A
>.</P
><P
>An excellent first book on how to maintain and administer a
networked Linux system.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN609"
></A
><P
><I
>TCP/IP Network Administration</I
>, <SPAN
CLASS="AUTHOR"
>Craig Hunt</SPAN
>, 1992, ISBN 0-937175-82-X, O'Reilly &#38; Associates, 472pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Less Linux-specific than the Kirch book. Features deeper
coverage of the TCP/IP core, including routing and BGP.</P
><P
><A
HREF="http://www.ora.com/catalog/tcp2/noframes.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN624"
></A
><P
><I
>DNS and BIND</I
>, Second Edition, <SPAN
CLASS="AUTHOR"
>Paul Albiz </SPAN
><SPAN
CLASS="AUTHOR"
>and Cricket Liu</SPAN
>, 1998, ISBN 1-56592-512-2, 502pp., O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>In-depth coverage of DNS, useful for people running complicated
multiple-subnet installations. Covers BIND library programming.</P
><P
><A
HREF="http://www.ora.com/catalog/dns2/noframes.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN644"
></A
><P
><I
>Sendmail</I
>, Third Edition, <SPAN
CLASS="AUTHOR"
>Bryan Costales </SPAN
><SPAN
CLASS="AUTHOR"
>and Eric Allman</SPAN
>, 2002, ISBN 1-56592-839-3, 1232pp., O'Reilly &#38; Associates.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>An exhaustive (and exhausting) guide to Linux's and Unix's
default mail-transfer agent.</P
><P
><A
HREF="http://www.ora.com/catalog/sendmail2/noframes.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN664"
></A
>Ancestors of Linux</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN666"
></A
><P
><I
>The Design of the Unix Operating System</I
>, <SPAN
CLASS="AUTHOR"
>Maurice J. Bach</SPAN
>, 1996, ISBN 0-13-201799-7, 470pp., Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>The book that got Linus started.</P
><P
><A
HREF="http://www.prenhall.com/books/ptr_0132017997.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN681"
></A
><P
><I
>Operating Systems, Design and Implementation</I
>, <SPAN
CLASS="AUTHOR"
>Andrew S. Tanenbaum</SPAN
>, 1987, ISBN 0-13-638677-6, 940pp., Prentice-Hall.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Alan Cox likes this book. Tanenbaum designed Minix, which is
the system Linus bootstrapped Linux up from.</P
><P
><A
HREF="http://www.prenhall.com/books/esm_0136386776.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN696"
></A
>The Linux kernel</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN698"
></A
><P
><I
>The Linux Kernel book</I
>, <SPAN
CLASS="AUTHOR"
>R<EFBFBD>my Card, </SPAN
><SPAN
CLASS="AUTHOR"
><EFBFBD>ric Dumas, </SPAN
><SPAN
CLASS="AUTHOR"
>and Frank M<>vel</SPAN
>, 1998, ISBN 0-471-98141-9, John Wiley &#38; Sons.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>(Translated from the French language edition of
"Programmation Linux 2.0"; same authors; 1997; <20>ditions
Eyrolles; Paris, France.)</P
><P
>A very interesting and informative examination of the
operation of the kernel that fills in the gap between the POSIX
interface and "The Design of the Unix Operating System" and the
Linux source code. A good understanding of the design and
operation of a Unix OS is a pre-requisite, but this book is an
excellent help to going beyond that general understanding into
actual work.</P
><P
>The primary author is one of the core developers for the ext2
filesystem, and the Linux Kernel book shows a firm grasp of the
matter and clear explanations and structure. It's surprisingly
readable for something working at such a low level. The book does
seem to have suffered a little in the translation to English --
there are a few typos and grammatical mistakes, but it's quite
readable. (The code example files are charmingly still named in
French.)</P
><P
>The book is current to Linux 2.0.35 and foreshadows 2.1 and 2.2.
Network protocol implementations are not covered.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN720"
></A
><P
><I
>LINUX Kernel Programming</I
>, (Third Edition), <SPAN
CLASS="AUTHOR"
>Michael Beck, </SPAN
><SPAN
CLASS="AUTHOR"
>Harold Bohme, </SPAN
><SPAN
CLASS="AUTHOR"
>Mirko Dziadka, </SPAN
><SPAN
CLASS="AUTHOR"
>Robert Magnus, </SPAN
><SPAN
CLASS="AUTHOR"
>Claus Schroter, </SPAN
><SPAN
CLASS="AUTHOR"
>and Dirk Verworner</SPAN
>, 2002, ISBN 0-201-719754, Addison-Wesley, 480pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>A guide to Linux kernel programming; covers 2.4. Covers the
architecture of the Linux core and network layer as well as driver
construction.</P
><P
><A
HREF="http://www.awprofessional.com/catalog/product.asp?product_id={8D651984-15AF-4C2D-B17C-C07A7758DF23}"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN752"
></A
>Relatives of Linux</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN754"
></A
><P
><I
>The Design and Implementation of the 4.4BSD Unix Operating System</I
>, <SPAN
CLASS="AUTHOR"
>Marshall Kirk McKusick, </SPAN
><SPAN
CLASS="AUTHOR"
>Keith Bostic, </SPAN
><SPAN
CLASS="AUTHOR"
>Michael J. Karels, </SPAN
><SPAN
CLASS="AUTHOR"
>and John S. Quarterman</SPAN
>, 1996, ISBN 0-201-54979-4, Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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.</P
><P
><A
HREF="http://www.aw-bc.com/catalog/academic/product/0,4096,0201549794,00.html"
TARGET="_top"
>&#13; Order here.</A
></P
></DIV
></DIV
></DIV
><HR><H2
CLASS="bibliodiv"
><A
NAME="AEN778"
></A
>Books on Intel and PC hacking</H2
><DIV
CLASS="biblioentry"
><A
NAME="AEN780"
></A
><P
><I
>80386 Programmer's Reference Manual</I
>, Intel Corporation, 1986, ISBN 1-55512-022-9.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN788"
></A
><P
><I
>80386 System Software Writer's Guide</I
>, Intel Corporation, 1987, ISBN 1-55512-023-7.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>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.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN796"
></A
><P
><I
>Programming the 80386</I
>, <SPAN
CLASS="AUTHOR"
>John H. Crawford </SPAN
><SPAN
CLASS="AUTHOR"
>and Patrick P. Gelsinger</SPAN
>, 1987, ISBN 0-89588-381-3, 774pp..</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>This is the book the Jolitzes used when they ported BSD to the
386 architecture.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN811"
></A
><P
><I
>80386 Hardware Reference Manual</I
>, Intel Corporation, 1986, ISBN 1-55512-024-5.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>Pin connections, timing, waveforms, block diagrams, voltages,
all that kind of stuff.</P
></DIV
></DIV
></DIV
><DIV
CLASS="biblioentry"
><A
NAME="AEN819"
></A
><P
><I
>The Indispensable PC Hardware Book</I
>, <SPAN
CLASS="AUTHOR"
>Hans-Peter Messmer</SPAN
>, 1993, ISBN 0-201-62424-9, 1000pp., Addison-Wesley.</P
><DIV
CLASS="BIBLIOENTRYBLOCK"
STYLE="margin-left: 0.5in"
><DIV
CLASS="abstract"
><P
>JH: "Covers the more recent stuff like EIDE and PCI."</P
></DIV
></DIV
></DIV
><DIV
CLASS="appendix"
><HR><H1
CLASS="appendix"
><A
NAME="AEN832"
></A
>A. Administrivia</H1
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN834"
></A
>A.1. Terms of Use</H1
><P
>This document is copyright 1999 by Eric S. Raymond. You may use,
disseminate, and reproduce it freely, provided you:</P
><P
></P
><UL
><LI
><P
>Do not omit or alter this copyright notice.</P
></LI
><LI
><P
>Do not omit or alter or omit the version number and date.</P
></LI
><LI
><P
>Do not omit or alter the document's pointer to the current WWW
version.</P
></LI
><LI
><P
>Clearly mark any condensed, altered or versions as such.</P
></LI
></UL
><P
>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.</P
></DIV
><DIV
CLASS="sect1"
><HR><H1
CLASS="sect1"
><A
NAME="AEN847"
></A
>A.2. History</H1
><P
>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 unattributed mini-reviews are mine
rather than his.</P
></DIV
></DIV
></DIV
></BODY
></HTML
>