Linux Zone

| HowTo Linux Zone | Linux Zone Home | E-Mail Me |

The Linux Reading List HOWTO


by Eric S. Raymond

v1.6, 20 April 1999

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 esr@thyrsus.com. 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.tuxedo.org/~esr/faqs/loginataka.html>.

There's a collection of Web links to Linux book reviews called Opening

Doors, Breaking Windows

<http://members.bellatlantic.net/~ptgeiger/guidehome.htm>.

 

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.tuxedo.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 Administrator'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.

 

Hands-on-Linux

Sobell, Mark G.; Addison-Wesley; ISBN ISBN 0-201-32569-1; 1998;

1015 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.

(This appears to be a repackaging of 1997's ``A Practical Guide

to Linux'' from the same author, without Caldera OpenLinux Lite

included.)

 

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.

 

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.

Emmanuel Pierre keeps a short list of Perl books <www.e-

nef.com/perl/listeperl.html>.

 

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."

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.

 

Linux Application Development

Michael K. Johnson, Erik W. Troan; 1998; ISBN 0201308215;

Addison-Wesley.

The best reference to the C API of Linux.

 

 

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. Two more

volumes are planned.

 

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

 

The Linux Kernel book

Rémy Card, Èric Dumas, Franck Mével; John Wiley and Sons; 1998;

ISBN 0-471-98141-9. $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.

 

 

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&SHY;

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 unattributed mini-reviews are mine rather than his.


| HowTo Linux Zone | Linux Zone Home | E-Mail Me |

Copyright 1999

Linux Zone