moved to docbook

This commit is contained in:
gferg 2000-08-23 13:50:37 +00:00
parent 46886c3daf
commit 85aa92b4fd
1 changed files with 0 additions and 611 deletions

View File

@ -1,611 +0,0 @@
<!-- This is the Linux Reading List HOWTO, SGML source -- >
<!-- Eric S. Raymond, esr@snark.thyrsus.com -- >
<!doctype linuxdoc system>
<article>
<title>The Linux Reading List HOWTO
<author>by Eric S. Raymond
<date>v1.11, 23 March 2000
<abstract>
This document lists the book I think are most valuable to a person
trying to learn Unix (especially Linux) top to bottom.
</abstract>
<toc>
<sect>Introduction
<p>
<sect1> Purpose of this document
<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.
<sect1>New versions of this document
<p>
New versions of the Linux Reading List HOWTO will be periodically
posted to <htmlurl url="news:comp.os.linux.answers"
name="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
<url url="http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html">.
<sect1>Feedback and Corrections
<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 <htmlurl
url="mailto:esr@thyrsus.com" name="esr@thyrsus.com">. I welcome any
suggestions or criticisms.
<sect1> Related Resources
<p>
For on-line HOWTOs, magazines, and other non-book material, see the
<url name="Linux Documentation Project home page"
url="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 <url
url="http://www.tuxedo.org/~esr/faqs/loginataka.html">.
SAGE, the System Administrator's Guild, maintains an excellent list
of relevant books at <url
url="http://www.usenix.org/sage/sysadmins/books/booklist.html">.
<sect1> Conventions Used In This Document
<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).
"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.)
</sect>
<sect> Books on Culture, History, and Pragmatics
<p>
<descrip>
<tag/The New Hacker's Dictionary (Third Edition)/
Raymond, Eric S.; MIT Press; 1996; ISBN 0-262-68092-0; 547pp.<newline>
See <url
url="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 <url url="http://www.tuxedo.org" name="Jargon File Resource
Page">.
<tag/A Quarter Century of Unix/
Salus, Peter H.; Addison-Wesley; 1994; ISBN 0-201-54777-5; 256pp.<newline>
See <url url="http://www.awl-he.com/titles/13683.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.
<tag/The Mythical Man Month (Anniversary Edition)/
Brooks, Frederick P.; Addison-Wesley 1995 (ISBN 0-201-83595-9).<newline>
See <url url="http://www.awl-he.com/titles/14147.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!"
<tag/Bell System Technical Journal, July-August 1978, Vol. 57, No. 6, part 2/
AT&amp;T; 416 pp.<newline>
Many early papers on Unix, including Ritchie &amp; Thompson, "The UNIX Time
Sharing System"; Thompson, "UNIX Implementation"; Ritchie, "A
Retrospective"; Bourne, "The UNIX Shell"...
</descrip>
</sect>
<sect> Books on General Unix/Linux
<p>
<sect1> Linux Installation and Administration
<p>
<descrip>
<tag/Linux Installation and Getting Started/
Welsh, Matt; LDP; 1997. Available on the LDP home page, or
directly at <url url="http://linuxdoc.org/LDP/gs/">.
How to bring up Linux. Explains a lot of Linux basics. Covers
basic system administration.
<tag/Linux System Administrator's Guide/
Wirzenius, Lars; LDP; 1997. Available on the LDP home page, or
directly at <url url="http://www.linuxdoc.org/LDP/sag/">.
An excellent first book on how to maintain and administer a
Linux system.
<tag/Essential System Administration (Second Edition)/
Frisch, Aeleen; O'Reilly; 1995; ISBN 1-56592-127-5; &dollar;34.95.<newline>
See <url url="http://www.ora.com/catalog/esa2/noframes.html">.
More in-depth coverage of normal system-administration tasks. Not
Linux-specific but contains Linux material.
</descrip>
<sect1> Using Unix &amp; Linux
<p>
<descrip>
<tag/Linux in a Nutshell (2nd edition)/
Hekman, Jessica P. et al.; O'Reilly;
ISBN 1-56592-585-8,; 1999; 628 pp. &dollar;29.95.<newline>
See <url url="http://www.oreilly.com/catalog/linuxnut2/">.
According to O'Reilly, "The Desktop Reference for Linux". For
Linux users this obsoletes their "Unix In a Nutshell" which was
SVr4/Solaris-oriented.
<tag/Running Linux (3rd Edition)/
Welsh, Matt, &amp; Matthias Kallw Dalheimer &amp; Kaufman, Lar; O'Reilly;
ISBN 1-56592-469-X; 1999; 650pp; &dollar;34.95.<newline>
See <url url="http://www.oreilly.com/catalog/runux3/">.
Everything you need in order to understand, install, and use the
Linux operating system. Excellent beginner's book.
<tag/Hands-on-Linux/
Sobell, Mark G.; Addison-Wesley;
ISBN ISBN 0-201-32569-1; 1998; 1015 pp.<newline>
Just what the title says -- practical tutorials in basic Unix,
shells, editors, mail programs, networking, Web tools, and
utilities. Covers some system administration fundamentals.
(This appears to be a repackaging of 1997's ``A Practical Guide
to Linux'' from the same author, without Caldera OpenLinux Lite
included.)
</descrip>
<sect1> System Security
<p>
<descrip>
<tag/Practical Unix and Internet Security (2nd Edition)/
Garfinkel, Simpson, and Spafford, Gene; O'Reilly Associates; ISBN
0-56592-148-8; 1004pp; 1996; &dollar;39.95. <newline>
See <url url="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."
<tag/Firewalls &amp; Internet Security/
Cheswick, William R. &amp; Bellovin, Steven M.; Addison-Wesley;
1994; ISBN 0-201-63357-4; 320pp.<newline>
</descrip>
</sect>
<sect> Books on Shell, Script, and Web Programming
<p>
<descrip>
<tag/Programming Perl (Second Edition)/
Wall, Larry &amp; Christiansen, Tom &amp; Schwartz, Randal; O'Reilly; 1997;
ISBN 0-56592-149-6; 644pp.<newline>
See <url url="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.
Emmanuel Pierre keeps a <url url="www.e-nef.com/perl/listeperl.html"
name="short list of Perl books">.
<tag/Programming Python/
Lutz, Mark; O'Reilly; 1997; ISBN 0-56592-197-6; 880pp.<newline>
See <url url="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.
<tag/HTML: The Definitive Guide (3rd Edition)/
Musciano, Chuck &amp; Kennedy. Bill; O'Reilly; 1998;
ISBN 1-56592-492-4; 576pp.<newline>
See <url url="http://www.oreilly.com/catalog/html3/">.
The best HTML tutorial/reference I have ever seen, and the only
HTML book you need unless you also want to do CGI.
<tag/The Unix Programming Environment/
Kernighan, Brian, and Pike, Rob;
Prentice-Hall; 1984; ISBN 0-13-937681-X; 1984.<newline>
A true classic -- possibly the best single-book exposition of the
Unix philosophy.
</descrip>
</sect>
<sect>Books on Text Formatting
<p>
<sect1> Tex and LaTeX
<p>
<descrip>
<tag/The LaTeX Companion/
Goossens, Michael &amp; Mittlebach, Frank, &amp; Samarin, Alexander;
Addison-Wesley; 1994; ISBN 0-201-54199-8; 530pp.<newline>
See <url url="http://www.awl-he.com/titles/13661.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"
<tag/LaTeX: A Document Preparation System (Second Edition)/
Lamport, Leslie; Addison-Wesley; 1994; ISBN 0-201-52983-1; 256pp.<newline>
See <url url="http://www.awl-he.com/titles/13632.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."
<tag/The TeXbook, Volume A of Computers and Typesetting; Knuth, Donald A./
Addison-Wesley; 1986, ISBN 0-201-13448; 496pp.
See <url url="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.
<tag/The METAFONT book, Volume C of Computers and Typesetting/
Knuth, Donald A.; Addison-Wesley; 1986; 0-201-13444-6, 1986; 384pp.<newline>
See <url url="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 <em>definitely</em> not for the faint
of heart.
</descrip>
</sect>
<sect>Good Programming Style
<p>
The following are classics on how to develop efficient programs:
<p>
<descrip>
<tag/The Practice of Programming/
Kernighan, Brian W. &amp; Pike. Rob; 1999; Addison-Wesley;
ISBN 0-201-61586-X.
See <url url="http://cm.bell-labs.com/cm/cs/tpop/">
An excellent treatise on writing high-quality programs,
surely destined to become a classic of the field.
<tag/Programming Pearls (2nd Edition)/
Bentley, Jon; 2000; Addison-Wesley;
ISBN ISBN 0-201-65788-0.
See <url url="http://www.programmingpearls.com/">
These are selected essays from Bentley's column in the
Communications of the ACM. He discusses a wide variety of issues in
program improvement, include a large number on efficiency.
<tag/Writing Efficient Programs./
Bentley, Jon Louis; 1982; Prentice-Hall, Inc.;
ISBN 0-13-970251-2 or 0-13-970244-X.
This book presents Bentley's methodology and set of rules for improving
program efficiency, and includes a large number of examples.
</descrip>
</sect>
<sect> Books on C and C++ Programming
<p>
<sect1>C and C++
<p>
<descrip>
<tag/The C Programming Language (Second Edition)/
Kernighan, Brian W.; Ritchie, Dennis M; Prentice-Hall; 1988;
ISBN 0-13-110362-8, 272pp.<newline>
The improved second edition, covering ANSI C, of the original
classic C book coauthored by C's designer, "K&amp;R". Still the
best!
<tag/Who's Afraid of C++?/
Heller, Steve; Academic Press; 1996; ISBN 0-12-339097; 508pp.<newline>
The best introductory book on C++ I have seen. Now available
<url url="http://www.steveheller.com/whos" name="on the Web">
</descrip>
<sect1> C System Call Interface
<p>
<descrip>
<tag/POSIX Programmer's Guide: Writing Portable Unix Programs/
Lewine, Donald; O'Reilly; 1992; ISBN 0-937175-73-0; 607pp.<newline>
See <url url="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.
<tag/The Posix.1 Standard: A Programmer's Guide/
Zlotnick, Fred; Benjamin, Cummings; 1991; ISBN 0-8053-9605-5; 379pp.;
&dollar;35.95 (USA).<newline>
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."
</descrip>
<descrip>
<tag/Advanced Programming in The Unix Environment/
Stevens, Richard; 1992; ISBN 0-201-56317; Addison-Wesley
A book on general Unix programming that is every bit as good as
Stevens's classic on network programming.
</descrip>
<descrip>
<tag/Linux Application Development/
Michael K. Johnson, Erik W. Troan; 1998; ISBN 0201308215;
Addison-Wesley.
The best reference to the C API of Linux.
</descrip>
</sect>
<sect> Books on Networking
<p>
<descrip>
<tag/Unix Network Programming/
Volume 1, Networking APIs: Sockets and XTI
W. Richard Stevens,
PTR Prentice-Hall, 1998
ISBN 0-13-490012-X
UNIX Network Programming 2nd Edition,
Volume 2, Interprocess Communications
W. Richard Stevens
PTR Prentice-Hall, 1998
ISBN 0-13-081081-9
Everything you might want to know about the subject. Generally
regarded as definitive on the basics.
<tag/Linux Network Administrator's Guide/
Kirch, Olaf; O'Reilly; 1995; ISBN 1-56592-087-2; 335pp.<newline>
See <url url="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 <htmlurl url="http://sunsite.unc.edu/LDP"
name="Linux Documentation Project"> page, or directly at
<url url="http://sunsite.unc.edu/LDP/LDP/nag/nag.html">.
<tag>TCP/IP Network Adminstration</tag>
Hunt, Craig; O'Reilly Associates, ISBN 0-937175-82-X; 1992; 472pp.<newline>
See <url url="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.
<tag/DNS and BIND (Second Edition)/
Albitz, Paul, and Liu, Cricket; O'Reilly; 1998; ISBN 1-56592-512-2;
502pp; &dollar;32.95.<newline>
See <url url="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.
<tag/Sendmail (Second Edition)/
Costales, Bryan &amp; Allman, Eric; O'Reilly;
ISBN 1-56592-222-0; 1997; 1050 pp; &dollar;32.95<newline>
See <url url="http://www.ora.com/catalog/sendmail2/noframes.html">.
An exhaustive (and exhausting) guide to Linux's and Unix's default
mail-transfer agent.
</descrip>
</sect>
<sect> Books on Unix Kernel Implementation
<p>
<sect1> Ancestors of Linux
<p>
<descrip>
<tag/The Design of the Unix Operating System/
Bach, Maurice J.; Prentice-Hall; ISBN 0-13-201799-7; 470pp.; &dollar;60 (USA).
The book that got Linus started. See <url url="http://www.prenhall.com/books/ptr_0132017997.html">
<tag/Operating Systems, Design and Implementation;/
Tanenbaum, Andrew S.; Prentice-Hall; 1987.
See <url url="http://www.prenhall.com/books/esm_0136386776.html">.
Alan Cox (one of the core kernel people) likes this book. Tanenbaum
designed Minix, which is the system Linus bootstrapped Linux up from.
</descrip>
<sect1>Linux
<p><descrip>
<tag/The Linux Kernel book/
Rémy Card, &Egrave;ric Dumas, Franck M&eacute;vel; John Wiley and Sons; 1998;
ISBN 0-471-98141-9. &dollar;100 (AUS).
(Translated from the French language edition of "Programmation
Linux 2.0"; same authors; 1997; Éditions Eyrolles; Paris, France.)
A very interesting and informative description 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.
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.)
Network protocol implementations are not covered.
The book's current to Linux 2.0.35 and foreshadows 2.1 and 2.2.
</descrip>
<p><descrip>
<tag/Linux Kernel Hackers' Guide/
Johnson, Michael K.
Accessible on the Web at the <htmlurl url="http://sunsite.unc.edu/LDP"
name="Linux Documentation Project"> page, or directly at
<htmlurl url="http://www.redhat.com/mirrors/LDP/LDP/khg/HyperNews/get/khg.html">.
<tag/LINUX Kernel Internals (Second Edition)/
Beck, Michael &amp; Bohme, Harold &amp; Mirko, Dziadzka &amp; Kunitz, Ulrich &amp;
Magnus, Robert &amp; Verworner, Dick; Addison Wesley; 1998;
ISBN:0-201-33143-8; 480.<newline>
See <url url="http://www.awl-he.com/titles/11653.html">.
A guide to Linux kernel programming; covers 2.0.
</descrip>
<sect1> Relatives of Linux
<p><descrip>
<tag/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.<newline>
See <url url="http://www.awl-he.com/titles/13693.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.
<tag/Porting Unix to the 386; Jolitz, William F., and Jolitz, Lynne G./
Dr. Dobb's Journal; Jan 1991-July 1992.
</descrip>
</sect>
<sect> Books on Intel processor architecture and programming
<p>
<descrip>
<tag/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.
<tag/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.
<tag/Programming the 80386/
Crawford, John H &amp; Gelsinger, Patrick P.; Sybex; ISBN
0-89588-381-3; 774pp.; &dollar;26.95 (USA).
This is the book the Jolitzes used when they ported BSD to the 386
architecture.
<tag/Pentium Processor User's Manual: Volume 3, Architecture and Programming
Manual/
Intel Corp.; 1993; ISBN 1-55512-195-0;
Pretty much the Pentium version of the 80386 Programmer's manual
listed above.
</descrip>
</sect>
<sect> Books on PC-Class Hardware
<p>
Note: these books are four or five years old and possibly out of date.
I don't really grok hardware...
<descrip>
<tag/80386 Hardware Reference Manual/
Intel Corp.; 1986; ISBN 1-55512-024-5;
Pin connections, timing, waveforms, block diagrams, voltages,
all that kind of stuff.
<tag/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."
</descrip>
<sect>Administrivia
<p>
<sect1> Terms of Use
<p>
This document is copyright 1999 by Eric S. Raymond. You may use,
disseminate, and reproduce it freely, provided you:
<itemize>
<item>Do not omit or alter this copyright notice.
<item>Do not omit or alter or omit the version number and date.
<item>Do not omit or alter the document's pointer to the current WWW version.
<item>Clearly mark any condensed, altered or versions as such.
</itemize>
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.
<sect1> History
<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.
</sect>
</article>
<!--
The following sets edit modes for GNU EMACS
Local Variables:
fill-prefix:"\t"
compile-command: "mail -s \"HOWTO update\" ldp-submit@lists.linuxdoc.org <Reading-List-HOWTO.sgml"
fill-column:75
End:
-- >