Linux 阅读列表 HOWTO

Eric Steven Raymond

修订历史
修订 3.02004-02-04修订者:esr
重大更新。移除了过时的书籍,添加了一本新书。
修订 2.12003-10-28修订者:esr
添加了 TAOUP。
修订 2.02003-07-31修订者:esr
重大修订,清理了过时的内容。
修订 1.212003-02-22修订者:esr
LDP 站点已移动。
修订 1.202001-06-14修订者:esr
移除了 “Practical Unix Security”;它已经五年了,现在其他书籍更好地涵盖了这些材料。
修订 1.192001-06-14修订者:esr
添加了 Ross Anderson 的 “Security Engineering”。更正了 ISBN。

本文档列出了我认为对于想要从头到尾学习 Unix(尤其是 Linux)的人来说最有价值的书籍。

版权

允许根据开放出版许可证 2.0 版的条款复制、分发和/或修改本文档。


目录
1. 简介
1.1. 本文档的目的
1.2. 本文档的新版本
1.3. 反馈和更正
1.4. 相关资源
1.5. 本文档中使用的约定
Linux 和 Unix 基础书目
A. 管理信息
A.1. 使用条款
A.2. 历史

1. 简介

1.1. 本文档的目的

本文档列出了我认为学习 Unix(尤其是 Linux)以及如何在它上面编程所必需的书籍参考资料。


1.2. 本文档的新版本

Linux 阅读列表 HOWTO 的新版本将定期发布到 comp.os.linux.answers。它们也将上传到各种 Linux WWW 和 FTP 站点,包括 LDP 主页。

您还可以通过 URL http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO.html 在万维网上查看最新版本。


1.3. 反馈和更正

如果您对本文档有疑问或意见(或者只是想推荐一本您认为应该收录在其中的书),请随时发送邮件给 Eric S. Raymond,地址是。我欢迎任何建议或批评。


1.4. 相关资源

有关在线 HOWTO、杂志和其他非书籍材料,请参阅 Linux 文档项目主页

几年前,我写了一个不太关注 Linux 的 Unix 书目,它可能仍然有趣并保留一定的娱乐价值。您可以在 这里 找到 Loginataka。

SAGE,系统管理员协会,维护了一个优秀的 相关书籍列表


1.5. 本文档中使用的约定

以下未加引号的评论要么是我的,要么是我认为没有理由更改 Jim Haynes(本文档之前的维护者)的评论。其他人发送的评论用引号括起来,并在前面加上评论者的姓名(JH 是 Jim Haynes)。

附加到出版信息的 “See” URL 直接指向出版商的 Web 目录,通常会将您带到一个包含封面照片、简介和订购信息的页面。没有这些信息的书籍是因为出版商正在使用框架,并且目录页面无法添加书签。

主题列表大致从外到内(文化到用户级编程到内核编程到硬件)。在各节中,我已尝试按我熟悉的程度优先列出最有用的书籍。这首先列出我的其中一本书只是一个令人尴尬的巧合,真的!(欢迎提出更好的组织建议。)


Linux 和 Unix 基础书目

关于文化、历史和实用性的书籍

新黑客词典,第三版,Eric S. Raymond 编辑,1996 年,ISBN 0-262-68092-0,MIT Press,547 页。

嗯,呃。互联网文化指南。很多人喜欢它。HTML 版本在 Jargon File 资源页面

在此处订购。

Unix 二十五年Peter H. Salus 编辑,1994 年,ISBN 0-201-54777-5,Addison-Wesley,255 页。

Linux 是 Unix 传统的一部分。这本书是 Unix 的口述历史——它如何起源、如何演变、如何传播——由亲历者讲述。

在此处订购。

人月神话,周年纪念版,Frederic P. Brooks,1995 年,ISBN 0-201-83595-9,Addison-Wesley。

每个人都应该阅读的关于软件工程的书籍。

Alan Cox:“我推荐这本书不是因为它技术价值,而是因为它将常识和现实应用于计算项目。” JH:“啊,是的。如果 Linus 被分配了 200 名程序员,并被告知在 3 个月内生产 Linux 会怎么样!”

在此处订购。

大教堂与集市,第二版,Eric S. Raymond 编辑,1999 年,ISBN 0-596-00131-2,O'Reilly & Associates,240 页。

Linux 开发模型如何以及为何运作。HTML 版本 在此处

在此处 订购


Linux 基础知识

Linux 系统管理员指南Lars Wirzenius 编辑,1997 年,Linux 文档项目。

可在 LDP 主页上找到,或直接访问 http://www.tldp.org//sag/

一本关于如何维护和管理 Linux 系统的优秀入门书籍。

Linux in a Nutshell,第四版,Ellen SieverStephen FigginsAaron Weber,2003 年,ISBN 0-596-00482-6,O'Reilly & Associates。

根据 O'Reilly 的说法,“Linux 的桌面参考”。对于 Linux 用户来说,这取代了他们以 SVr4/Solaris 为导向的 “Unix In a Nutshell”。

在此处订购。

Running Linux,第四版,Matt WelshMatthias DallheimerTerry DawsonLar Kaufman,2002 年,0-596-00272-6,O'Reilly & Associates。

理解、安装和使用 Linux 操作系统所需的一切。优秀的初学者书籍。

在此处订购。

实用 Linux 指南Mark G. Sobell,1998 年,ISBN 0-201-89549-8,Addison-Wesley,1072 页。

正如标题所说——关于基本 Unix、Shell、编辑器、邮件程序、网络、Web 工具和实用程序的实用教程。涵盖了一些系统管理基础知识。

Essential System Administration,第 3 版,�leen Frisch,2002 年,ISBN 0-596-00343-9,O'Reilly & Associates。

更深入地介绍了正常的系统管理任务。不是 Linux 专用的,但包含 Linux 材料。

在此处订购。


系统安全

Security Engineering: 构建可靠分布式系统指南Ross Anderson,2001 年,0-471-38922-6,Wiley。

我见过的关于技术安全措施和通用计算机安全的最好的书。关于 “如何偷一幅画” 和物理警报系统的章节本身就值回票价。

Real World Linux Security: 入侵预防、检测和恢复,第二版,Bob Toxen,2003 年,ISBN 0-13-046456-2,Prentice-Hall。

这是一部杰出的作品,是未来 Linux 安全书籍的评判标准。我为它写了序言。它结合了关于如何强化 Linux 系统的逐步实用说明,以及关于攻击路径、保护环和安全分析的良好理论。描述了许多针对特定漏洞的对策。


关于 Shell、脚本和 Web 编程的书籍

Programming Perl,第三版,Larry Wall、Tom Christiansen 和 Jon Orwant,2000 年,ISBN 0-596-00027-8,O'Reilly & Associates,1104 页。

Shell(作为一种用于非琐碎脚本的编程语言)已经过时了。Perl 在其位置上占据主导地位(尽管现在它正受到 Python 的强烈挑战)。这是权威 Perl 书籍的第三版。

在此处订购。

Emmanuel Pierre 维护了一个 Perl 书籍简短列表

Programming Python,第二版,Mark Lutz,2001 年,ISBN 0-596-00085-5,O'Reilly & Associates。

Perl 之后的下一步。Python 设计精美,与 C 的集成更好,并且可以更优雅地扩展到大型项目。

在此处订购。

HTML & XHTML: The Definitive Guide,第五版,Chuck Musciano 和 Bill Kennedy,2002 年,ISBN 0-596-00382-X,O'Reilly & Associates,680 页。

我见过的最好的 HTML 教程/参考,也是您唯一需要的 HTML 书籍,除非您还想做 CGI。就全面性、深度和组织质量而言,我不知道还有哪本 HTML 书籍能与这本书相提并论。

在此处订购。

Unix 编程环境Brian Kernighan 和 Rob Pike,1984 年,ISBN 0-13-937681-X,Prentice-Hall。

真正的经典之作——可能是对 Unix 哲学最好的单本书阐述。对于学习 shell 编程很有用。


Tex 和 LaTeX

The LaTeX CompanionMichael Goossens、Frank Mittelbach 和 Alexander Samarin,1994 年,ISBN 0-201-54199-8,Addison-Wesley,530 页。

“如果您是那些想要了解如何扩展 LaTeX 以创建尽可能漂亮的文档而又不想成为 (La)TeX 大师的用户之一,那么这本书适合您”——摘自前言。Bruce Thompson 补充说:“一本非常好的书,提供了大量关于 LaTeX 新扩展的信息,提供了大量示例,精确地展示了如何操作文档的布局”

在此处订购。

LaTeX: A Document Preparation SystemLeslie Lamport,1994 年,ISBN 0-201-52983-1,Addison-Wesley,256 页。

Bruce Thompson:“LaTeX 2.09 及其作者的终极参考。一本涵盖 LaTeX2e(当前 TeX/LaTeX 发行版中包含的版本)的新版本正在准备中。LaTeX 2.09 完全受 LaTeX2e 支持。任何想要使用 LaTeX 的人都必须拥有。温和地介绍了文档准备以及 LaTeX 为制作专业质量文档提供的各种工具。大量示例。”

在此处订购。

The TeXbook, Volume A of Computers and TypesettingDonald Knuth,1986 年,ISBN 0-201-13448-9,Addison-Wesley,496 页。

Bruce Thompson:“TeX 的权威用户指南和完整参考手册。对于偶尔使用 LaTeX 的人来说可能不需要,但无论如何都是一本引人入胜的书。” 我要加强一下,补充说这本书不适合胆小的人。

在此处订购。

The METAFONT Book, Volume C of Computers and TypesettingDonald Knuth,1986 年,ISBN 0-201-13444-6,Addison-Wesley,386 页。

Bruce Thompson:“METAFONT 的权威用户指南和参考手册,METAFONT 是 TeX 的配套程序,用于设计字体。如果您计划设计自己的字体以在 TeX 和 LaTeX 中使用,那么这是一部优秀的作品。METAFONT 包含在正常的 TeX/LaTeX 发行版中。” 这本书绝对不适合胆小的人。

在此处订购。


良好的编程风格

The Practice of ProgrammingBrian Kernighan 和 Rob Pike,1999 年,ISBN 0-201-61586-X,Addison-Wesley。

一本关于编写高质量程序的优秀专著,肯定会成为该领域的经典之作。

在此处订购。

Programming Pearls,(第二版),Jon Bentley,2000 年,ISBN 0-201-65788-0,Addison-Wesley。

这些是从 Bentley 在 Communications of the ACM 上的专栏中选出的文章。他讨论了程序改进中的各种问题,通常侧重于程序效率。

在此处订购。

The Art of Unix ProgrammingEric S. Raymond 编辑,2003 年,ISBN 0-131-42901-9,Addison-Wesley,512 页。

关于如何像 Unix 专家一样思考的书。可浏览的 HTML 和订购信息请访问 此处

Code Reading: 开源视角Diomedis Spinellis 编辑,2003 年,Addison-Wesley。

一本关于经常被忽视的技能的好书。在此处 订购

Writing Efficient ProgramsJon Bentley,1982 年,ISBN 0-13-970251-2 或 0-13-970244-X,Prentice-Hall。

本书介绍了 Bentley 改进程序效率的方法和规则集,并包含大量示例。


C 和 C++

The C Programming Language,(第二版),Brian Kernighan 和 Dennis Ritchie,1988 年,ISBN 0-13-110362-8,Addison-Wesley,272 页。

由 C 的设计者 “K&R” 合著的原始经典 C 书籍的改进第二版,涵盖 ANSI C。仍然是最好的!

Who's Afraid of C++?Steve Heller,1996 年,ISBN 0-12-339097-4,Academic Press,508 页。

我见过的最好的 C++ 入门书。现在可以在 Web 上 获取。


C 系统调用接口

POSIX Programmer's Guide: Writing Portable Unix ProgramsDonald Lewine,1992 年,ISBN 0-937175-73-0,O'Reilly & Associates,607 页。

Linux 非常严格地遵守 POSIX 标准(不符合标准被认为是错误并会迅速修复)。因此,这本优秀的 POSIX 参考资料也是 Linux 内核 API 的优秀参考资料。

在此处订购。

Advanced Programming in the Unix EnvironmentW. Richard Stevens,1993 年,ISBN 0-201-56317-7,Addison-Wesley。

一本关于通用 Unix 编程的书籍,与 Stevens 关于网络编程的经典著作一样出色。

Linux Application DevelopmentMichael K. Johnson 和 Erik W. Troan,1998 年,ISBN 0-201-308215,Addison-Wesley。

Linux API 的最佳单一参考。涵盖了非通用 Unix 或 Posix 的功能。


关于网络的书籍

Unix Network Programming, volume 1 -- Networking APIs: Sockets and XTIW. Richard Stevens,1998 年,ISBN 0-13-490012-X,Prentice-Hall。

您可能想了解的关于该主题的一切。通常被认为是关于基础知识的权威。

Unix Network Programming, volume 2 -- Interprocess CommunicationRichard Stevens,1998 年,ISBN 0-13-081081-9,Prentice-Hall。

同上...

Linux Network Administrator's GuideOlaf Kirch,1995 年,ISBN 1-56592-087-2,O'Reilly & Associates。

可在 LDP 主页上找到,或直接访问 http://www.tldp.org/nag/nag.html

一本关于如何维护和管理联网 Linux 系统的优秀入门书籍。

TCP/IP Network AdministrationCraig Hunt,1992 年,ISBN 0-937175-82-X,O'Reilly & Associates,472 页。

不如 Kirch 的书那样专注于 Linux。更深入地介绍了 TCP/IP 核心,包括路由和 BGP。

在此处订购。

DNS and BIND,第二版,Paul Albiz 和 Cricket Liu,1998 年,ISBN 1-56592-512-2,502 页,O'Reilly & Associates。

深入介绍了 DNS,对运行复杂的多子网安装的人员很有用。涵盖了 BIND 库编程。

在此处订购。

Sendmail,第三版,Bryan Costales 和 Eric Allman,2002 年,ISBN 1-56592-839-3,1232 页,O'Reilly & Associates。

Linux 和 Unix 默认邮件传输代理的详尽(且令人疲惫)指南。

在此处订购。


Linux 的祖先

The Design of the Unix Operating SystemMaurice J. Bach,1996 年,ISBN 0-13-201799-7,470 页,Prentice-Hall。

Linus 入门的这本书。

在此处订购。

Operating Systems, Design and ImplementationAndrew S. Tanenbaum,1987 年,ISBN 0-13-638677-6,940 页,Prentice-Hall。

Alan Cox 喜欢这本书。Tanenbaum 设计了 Minix,这是 Linus 从中引导 Linux 的系统。

在此处订购。


Linux 内核

The Linux Kernel bookR�my Card、�ric Dumas 和 Frank M�vel,1998 年,ISBN 0-471-98141-9,John Wiley & Sons。

(从法语版 “Programmation Linux 2.0” 翻译而来;相同作者;1997 年;�ditions Eyrolles;法国巴黎。)

对内核操作进行非常有趣且内容丰富的检查,填补了 POSIX 接口与 “The Design of the Unix Operating System” 和 Linux 源代码之间的空白。对 Unix OS 的设计和操作有很好的理解是先决条件,但这本书对于超越一般理解并进入实际工作非常有帮助。

主要作者是 ext2 文件系统的核心开发人员之一,Linux Kernel book 显示了对问题的牢固掌握以及清晰的解释和结构。对于如此低级别的工作来说,它出奇地易读。(代码示例文件仍然以法语命名,非常迷人。)

本书更新至 Linux 2.0.35,并预示了 2.1 和 2.2。不涵盖网络协议实现。

LINUX Kernel Programming,(第三版),Michael Beck、Harold Bohme、Mirko Dziadka、Robert Magnus、Claus Schroter 和 Dirk Verworner,2002 年,ISBN 0-201-719754,Addison-Wesley,480 页。

Linux 内核编程指南;涵盖 2.4。涵盖了 Linux 核心和网络层的架构以及驱动程序构建。

在此处订购。


Linux 的亲戚

The Design and Implementation of the 4.4BSD Unix Operating SystemMarshall Kirk McKusick、Keith Bostic、Michael J. Karels 和 John S. Quarterman,1996 年,ISBN 0-201-54979-4,Addison-Wesley。

关于 4.3 BSD 内核实现的经典书籍的后继者,该内核影响了 Linux 的设计(尤其是在套接字和网络附近)。本书涵盖了 BSD/OS、FreeBSD 和 NetBSD 的 4.4BSD 基础。

在此处订购。


关于 Intel 和 PC 黑客技术的书籍

80386 Programmer's Reference Manual,Intel Corporation,1986 年,ISBN 1-55512-022-9。

第一部分。应用程序编程,数据类型,内存模型,指令集。第二部分。系统编程,架构,内存管理,保护,多任务处理,I/O,异常和中断,初始化,协处理和多处理。第三部分。兼容性(与早期的 x86 机器)。第四部分。指令集

80386 System Software Writer's Guide,Intel Corporation,1987 年,ISBN 1-55512-023-7。

这解释了 80386 为操作系统编写者提供的功能。它包括关于 Unix 实现的章节。80386 架构的许多功能似乎都是考虑到 Multics 而设计的;这些功能未被 DOS 或 Unix 使用。

Programming the 80386John H. Crawford 和 Patrick P. Gelsinger,1987 年,ISBN 0-89588-381-3,774 页。

这是 Jolitzes 将 BSD 移植到 386 架构时使用的书。

80386 Hardware Reference Manual,Intel Corporation,1986 年,ISBN 1-55512-024-5。

引脚连接、时序、波形、框图、电压,所有这些类型的东西。

The Indispensable PC Hardware BookHans-Peter Messmer,1993 年,ISBN 0-201-62424-9,1000 页,Addison-Wesley。

JH:“涵盖了更新的内容,如 EIDE 和 PCI。”


A. 管理信息

A.1. 使用条款

本文档版权归 Eric S. Raymond 所有,1999 年。您可以自由使用、传播和复制它,前提是您

  • 不要省略或更改此版权声明。

  • 不要省略或更改版本号和日期。

  • 不要省略或更改文档指向当前 WWW 版本的指针。

  • 清楚地标记任何精简、更改或版本。

这些限制旨在保护潜在读者免受陈旧或损坏的版本的影响。如果您认为您有充分的理由提出例外,请询问我。


A.2. 历史

这最初是由 Jim Haynes 维护的迷你 HOWTO。我稍微改变了重点,试图使其更像一个独立文档,而不是依赖于各种 USENET 书目帖子。未署名的迷你评论是我的而不是他的。