Books

来自osdev
跳到导航 跳到搜索


(译者注:以下有一些书已有中文版,但是这里翻译给出中文书名时并没有使用,而是仅做字面翻译,请自行查找已出版中文版)

算法

ISBN 0073523402.jpg

Buy from amazon.gif

Algorithms 算法
作者: Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani
年份: 2006
补充材料或勘误表: Penultimate draft, Errata, Link
官方描述: 这本书在加州大学伯克利分校和加州大学圣地亚哥分校进行了十多年的广泛测试,在故事线中解释了算法的基本原理,使材料令人愉悦且易于消化。

重点放在理解每个算法背后的清晰的数学思想上,这种方式既直观又严谨,又不会过于形式化。

特点包括:

  • 使用结构来加强叙述: 提供了历史背景部分,描述了对算法在实践中如何使用,以及对数学上的复杂性进行了简单引导。
  • 精心选择的高级主题,可以在标准的一学期课程中跳过,但可以在高级算法课程中或在更轻松的两学期中涵盖。
  • 对线性规划使用一种通俗易懂的处理方法,向学生们介绍了算法方面最伟大的成就之一。 关于因式分解的量子算法的可选章节提供了一个独特的窥探视角,这个是一个令人兴奋的话题。
评介:



ISBN 0130220051.jpg

Buy from amazon.gif

Algorithms and Data Structures 算法和数据结构
作者: Niklaus Wirth
年份: 1985
补充材料或勘误表: Oberon Version 2004
官方描述: 关于算法和数据结构的经典教科书。 引用亚马逊 “oversteer” 的评论: 这本书讨论了真正重要的算法和数据结构。 它可能不包括最新的和最大的进步,但它在当今的实际应用中仍然非常相关。

对我来说,这本书的最高价值不是解释的特定方法,而是这本书教授的良好风格和对程序的思考方式。 很少有书能真正教授好的风格,这可能是最好的之一。 对于任何希望成为一名优秀程序员,而不仅仅是普通程序员的人来说,这本书都是必读的。

评介: Wikipedia



ISBN 032157351X.jpg

Buy from amazon.gif

Algorithms, 4th ed. 算法,第四版
作者: Kevin Wayne, and Robert Sedgewick
年份: 2011
补充材料或勘误表: Link
官方描述: 罗伯特·塞奇威克和凯文·韦恩的教科书 “算法,第四版” [ Amazon · Pearson · InformIT ] 包含了当今使用的最重要的算法和数据结构。 教科书分为六章:
  • Chapter 1: Fundamentals 介绍了比较算法和进行预测的科学和工程基础。它还包括日常的编程模型介绍。
  • Chapter 2: Sorting 考虑几种经典的排序算法,包括插入排序、合并排序和快速排序。它还包括优先级队列的二叉堆实现。
  • Chapter 3: Searching 描述了几种经典的符号表实现,包括二叉搜索树、红黑树和哈希表。
  • Chapter 4: Graphs 调研了最重要的图处理问题,包括深度优先搜索,广度优先搜索,最小生成树和最短路径。
  • Chapter 5: Strings 研究字符串处理的专门算法,包括基数排序(radix sorting),子字符串搜索(substring search),尝试(tries),正则表达式和数据压缩。
  • Chapter 6: Context 重点介绍了系统编程,科学计算,商业应用,运筹学的关系和难点。

在科学,工程和工业领域的应用是本文的主要特征。 我们可以研究每个算法,来解决特定应用的挑战。

评介:



ISBN 0321751043.jpg
Buy from amazon.gif

ISBN 0201853922.jpg
Buy from amazon.gif

The Art of Computer Programming 计算机编程的艺术
作者: Donald E. Knuth
年份: 2011
补充材料或勘误表: Link
Official Description: 1999年结束时,这些书被 “美国科学家” 评为本世纪最佳的十二本物理科学专著之一,同在这个清单里的还有: 狄拉克论量子力学,爱因斯坦论相对论,曼德尔布罗特论分形,鲍林论化学键,罗素和怀特黑德论数学基础,冯·诺伊曼和摩根斯坦论博弈论,维纳论控制论,伍德沃德和霍夫曼论轨道对称性,费曼论量子电动力学,史密斯论结构搜索,爱因斯坦文集。哇!
评介:
ISBN 0262033844.jpg

Buy from amazon.gif

Introduction to Algorithms, 3rd ed. 算法导论,第三版。
作者: Thomas H. Cormen, Charles E. Leiserson, Ronald L Rivest, Clifford Stein
年份: 2009
补充材料或勘误表: Link
官方描述: 一些关于算法的书很严谨,但不完整; 其他人则涵盖大量材料,但缺乏严谨性。 “算法导论” 独特地结合了严谨性和全面性。 这本书深入地涵盖了广泛的算法,但使各级读者都可以使用它们的设计和分析。 每一章都相对自成体系,可以作为一个学习单元。 这些算法以英语和对做过编程的人具有可读性的伪代码进行了描述。 书中的解释一直保持在不牺牲覆盖深度或数学严谨性的情况下。

第一版成为世界各地大学中广泛使用的教科书,也是专业人士的标准参考。 第二版的新章节介绍了算法的作用,概率分析和随机算法以及线性规划。 第三版也已经修订和更新。 它包括两个全新的章节,关于van Emde Boas树和多线程算法,以及关于递归的章节的大量补充 (现在称为 “分治 Divide-and-Conquer”)。 它具有改进的动态规划和贪婪算法的处理方法,以及在flow networks上的材料中edge-based flow的新概念。 这个版本增加了许多新的练习和问题。

从第三版开始,这本教科书由麻省理工学院出版社独家出版。

评介:



编译器理论

ISBN 0130525642.jpg

Buy from amazon.gif

Assemblers and Loaders 汇编器和加载器
作者: David Salomon
年份: 1993
补充材料或勘误表: Freely available
官方描述: 这本书是在1985-1992期间编写的,是根据计算机组织的课堂笔记开发的。 它包括许多提供答案的练习,并在每一章之后复习问题。 这本书装订成平装本,封面还是五颜六色的。
评介:



ISBN 0321486811.jpg

Buy from amazon.gif

Compilers: Principles, Techniques, & Tools 编译器: 原理、技术和工具
作者: Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
年份: 2006
补充材料或勘误表: Link
官方描述: 《编译器: 原理,技术和工具》,全世界的教授,学生和开发人员都将其称为 “龙书”,并还在提供新版。 每一章都经过了全面修订,以反映从1986年上一版出版后软件工程,编程语言和计算机体系结构的发展。 作者认识到很少有读者仍在构建新的编译器,因此将重点放在软件设计和软件开发中面临的更广泛的问题上。

新章节包括:

第10章 Instruction-Level Parallelism 指令级并行性
第11章 Optimizing for Parallelism and Locality 并行性和局部性的优化
第12章 Interprocedural Analysis 跨程序分析

评介:



ISBN 1558604960.jpg

Buy from amazon.gif

Linkers and Loaders 链接器和加载器
作者: John R. Levine
年份: 1999
补充材料或勘误表: Free manuscript, Errata and code
官方描述: 无论你的编程语言是什么,无论你的平台是什么,你都可能一直在使用链接器和加载器功能。 但是你知道如何利用它们来发挥最大的优势吗?直到现在,随着《链接器和加载器》的出版,才有一本权威的书完全致力于这些的编译时和运行时过程。 本书首先对链接和加载进行了详细的比较说明,说明了各种编译器和操作系统之间的差异。 在此基础上,作者提出了明确的实用建议,以帮助你创建更快,更干净的代码。 你将学会避免与Windows dll相关的陷阱,利用许多现代链接器支持的节省空间、提高性能的技术,充分利用UNIX ELF库方案,等等。 如果你对编程很认真,那么你应该好好读读这本独特的指南,让它带领你深入你最不了解的编程领域主题之一。 《Linkers & Loaders》也是编译器和操作系统课程的理想补充课本。

特点

  • 包括一个用Perl编写的链接器建设项目,项目文件可供下载。
  • 涵盖Windows,UNIX,Linux,BeOS和其他操作系统中的动态链接。
  • 解释Java链接模型及其在网络小程序(Applet)和可扩展Java代码中的表现。
  • 帮助你编写更优雅,更有效的代码,并构建可更高效地编译,加载和运行的应用程序。
评介: 写得很好,易于阅读,而又透彻且信息丰富。它有足够的奇思妙想,使大多数读者发现一个枯燥的话题变得有趣。虽然当前版本现在有些过时,但它涵盖了人们需要了解链接编辑器和程序加载器如何工作的大部分内容。- User:Schol-r-lea



计算机体系结构

理论

ISBN 012383872X.jpg

Buy from amazon.gif

Computer Architecture: A Quantitative Approach, 5th ed. 计算机体系结构: 定量方法,第5版。
作者: John L. Hennessy, and David A. Patterson
年份: 2011
补充材料或勘误表: Link
官方描述: 当今的计算世界正处于一场革命之中: 移动客户端和云计算已成为当今推动编程和硬件创新的主要范例。 《计算机体系结构》第五版着眼于这一戏剧性的转变,探索手机、平板电脑、笔记本电脑和其他移动计算设备访问云中软件和技术的方式。 每章都包括两个真实世界的例子,一个移动设备和一个数据中心,以说明这种革命性的变化。
评介:



ISBN 0136108040.jpg

Buy from amazon.gif

Computer Systems: A Programmer's Perspective, 2nd ed. 计算机系统: 程序员的视角,第二版。
作者: Randal E. Bryant, and David R. O'Hallaron
年份: 2010
补充材料或勘误表: Manuscript, Web asides, errata, Link, Blog
官方描述: 本书 (CS:APP2e) 是本书的第二版,它源于我们在卡内基梅隆大学开发的计算机系统入门课程,从1998年秋季开始,名为 “计算机系统概论” (ICS)。 该介绍基于以下原则,旨在帮助学生成为更好的程序员,并帮助他们为高级系统课程做好准备:
  • 应该从程序员的角度,而不是从系统实现者这一更传统的角度,向学生介绍计算机系统。 这里查看这句话是什么意思?
  • 学生应该了解完整的系统,包括硬件,操作系统,编译器和网络。
  • 学生通过开发和评估在真实机器上运行的真实程序来获得最佳学习效果。

我们涵盖的内容有:数据表达,C程序的机器级表示,处理器体系结构,程序优化,内存层次结构,链接,异常控制流 (异常-注:非高级语言中的异常,中断,进程和Unix信号),虚拟内存和内存管理,系统级I/O,基本网络编程和并发编程。 这些概念得到了一系列有趣和动手实验任务的支持。有关更多详细信息,请参见手稿 前言

评介:



ISBN 0132916525.jpg

Buy from amazon.gif

Structured Computer Organization, 6th ed. 结构化计算机组织,第6版。
作者: Andrew S. Tanenbaum, and Todd Austin
年份: 2012
补充材料或勘误表: Link
官方描述: 《结构化计算机组织》 是专门为本科生编写的,是一本最畅销的指南,提供了有关计算机硬件和体系结构的介绍。 对于所有需要对计算机体系结构进行概述或介绍的计算机专业人员和工程师,本文也可作为有用的资源。

本书采用现代结构化,分层的方法来理解计算机系统。 它具有很高的可访问性-并且已经过全面更新,以反映当今最关键的新技术以及计算机组织和体系结构的最新发展。 Tanenbaum著名的写作风格和艰苦的研究使这本书成为最容易获得和最准确的书籍之一,保持了作者将计算机呈现为一系列层的流行方法,每个层都建立在下面的层上,并且可以理解为一个单独的实体。

评介:



实现

PC

ISBN 0201596164.jpg

Buy from amazon.gif

The Indispensable PC Hardware Book, 4th ed. 不可或缺的PC硬件手册,第4版。
作者: Hans-Peter Messmer
年份: 2001
补充材料或勘误表: N/A
官方描述: 这本经过全面修订和流行的书现在是最新的,同时还比以前更全面。 《不可或缺的PC硬件手册,第4版》对于任何想要更多地了解个人计算机内部工作的人来说都是 “必不可少的”: 想要访问硬件组件的程序员; 想要或必须了解个人计算机的结构和功能的专业人员和家庭用户; 对于想要升级PC的用户以及希望为客户提供建议的经销商-本书将为你的所有硬件问题提供解决方案。 即使是初学者也不应该回避这本书,因为这本书首先还对各主题领域进行了简单的介绍。

主要亮点:

  • 从8086/8088到奔腾III和Athlon的CPU
  • 实模式、保护模式和虚拟模式
  • Windows视窗和plug&play即插即用设备
  • 来自各所有主要制造商的CPU复制
  • 芯片组和支持芯片
  • 定时器、中断和DMA
  • I/O编程和PCI总线编程
  • AGP变体和图形系统
  • 通用串行总线(USB)
  • 从软盘到DVD的本地存储
  • 内存系统、SDRAM、EDO、flash、RAM总线和其它模块
  • 广泛的词汇表,解释了与个人计算机硬件有关的大多数术语和概念。
  • 附录中充满了实用的建议,尤其是对于程序员。
评介:



ISBN 0201479508.jpg

Buy from amazon.gif

The Undocumented PC, 2nd ed. 未记录的PC,第二版。
作者: Frank van Gilluwe
年份: 1996
补充材料或勘误表: N/A
官方描述: 《未记录的PC》是你对PC内部工作原理的技术指南。 在超过1100页的内容中,《未记录的PC》是世界各地的程序员赖以创建功能强大的程序并更好地了解PC各个领域的标准。 让你获得知道如何利用和连接到PC固件和硬件的竞争优势。
评介:



人机交互

网络

理论

ISBN 0132126958.jpg

Buy from amazon.gif

Computer Networks, 5th ed. 计算机网络,第5版。
作者: Andrew S. Tanenbaum, and David J. Wetherall
年份: 2010
补充材料或勘误表: Link
官方描述: 《计算机网络,第5版》是适用于计算机科学,电气工程,计算机信息系统,管理信息系统和工商管理的本科和研究生的计算机网络介绍课程。

Tanenbaum采用结构化的方法来解释网络如何从内到外工作。 他首先解释了网络,计算机硬件和传输系统的物理层; 然后逐步扩展到网络应用程序。 Tanenbaum的深入应用程序覆盖范围包括电子邮件; 域名系统; 万维网 (客户端和服务器端); 和多媒体 (包括IP语音,互联网广播视频点播,视频会议和流媒体)。 每章都遵循一致的方法: Tanenbaum先提出关键原理,然后利用贯穿整本书的真实示例网络-Internet和无线网络 (包括无线局域网,宽带无线和蓝牙) 来说明它们。 第五版包括专门讨论网络安全的一章。 教科书由解决方案手册以及PowerPoint幻灯片,各种形式的表格和其他教学工具的网站补充,还包括协议模拟器,学生可以开发和测试自己的网络协议。

评介:



ISBN 0132856204.jpg

Buy from amazon.gif

Computer Networking: A Top-Down Approach, 6th ed. 计算机网络: 自上而下掌握,第6版。
作者: James F. Kurose, Keith W. Ross
年份: 2012
补充材料或勘误表: Link
官方描述: 《计算机网络》继续早期强调应用层范例和应用程序编程接口 (顶层),在将协议堆栈处理到更抽象的层之前,鼓励使用协议和网络概念的实践经验。

由于作者的声誉,解释的精确性,程序技艺的质量以及提供的价值,本书已成为该课程的主要书籍。

可以访问作者的博客 http://kuroseross.com 以获取信息和资源,以讨论最新版本,以及有关计算机网络领域的宝贵见解,教学技巧和讨论。

评介:



实现

AppleTalk

ISBN 0201550210.jpg

Buy from amazon.gif

Inside AppleTalk, 2nd ed. AppleTalk内幕,第二版。
作者: Gursharan S. Sidhu, Richard F. Andrews, and Alan B. Oppenheimer
年份: 1990
补充材料或勘误表: Free book
官方描述: 由Apple Computer网络系统开发技术总监Gursharan S. Sidhu和Apple的两名高级工程师Richard F. Andrews和Alan B. Oppenheimer撰写 《AppleTalk内幕》对AppleTalk网络系统的协议架构进行了深入探讨。第二版具有对AppleTalk协议的完全更新的详细描述,包括对AppleTalk Phase 2的增强,以及由Sidhu编写的基本概述。
评介:



OSI

ISBN 0136832105.jpg

Buy from amazon.gif

The Little Black Book: Mail Bonding with OSI Directory Services
作者: Marshall T. Rose
年份: 1991
补充材料或勘误表: N/A
官方描述: 来自畅销书《The Open Book(译者注:下面有这本书的介绍)》和《The Simple Book: An Introduction to Networking Management (Prentice Hall Series in Innovative Technology)》的作者,这本目录服务技术综合指南为各种通信服务提供了底层基础设施。 该指南探索了协议和协议套件,为读者提供了有关简化电子网络上的消息处理和路由的技术。 它讨论了电子通信中使用的网络模型消息处理,用户代理,消息传输,网关等。 该手册介绍了X.500目录等主题,对涉及电子邮件,网络通信和其他电子网络的人们应该会感兴趣。
评介:



ISBN 0136430163.jpg

Buy from amazon.gif

The Open Book: A Practical Perspective on OSI 关于OSI实践视角的书
作者: Marshall T. Rose
年份: 1990
补充材料或勘误表: N/A
官方描述: OSI协议套件 (一套国际标准化的计算机通信规则) 提供了一个独特的承诺: 它有潜力为全球网络提供政治和技术解决方案。 计算机-从超级计算机到工作站和pc,从行政套件到实验室,从帕洛阿尔托(硅谷)到伦敦或任何地方-都可以共享一套通用的通信规则。 但是,对于任何新兴技术,都有许多问题需要回答和解决。 《The Open Book》旨在检视那些复杂的问题和想法,并提供一套平衡的观点。
评介:



TCP/IP

ISBN 0321336313.jpg
Buy from amazon.gif

ISBN 020163354X.jpg
Buy from amazon.gif

ISBN 0201634953.jpg
Buy from amazon.gif

TCP/IP Illustrated TCP/IP图解
作者: Gary R. Wright, Kevin R. Fall, and W. Richard Stevens
年份: 2011 (Vol1), 1995 (Vol2), 1996 (Vol3)
补充材料或勘误表: Volume 2, Volume 3
官方描述: 《TCP/IP图解》书籍因其对当今网络专业人员所面临的基本TCP/IP主题的高效视觉方法而受到赞誉。 “图解”一词使这本书与众不同。 通过展示发生的强制条件,然后显示结果,《TCP/IP图解》使读者比仅靠文字所能提供的概念有更多的理解。 这套书以其图表和清晰易读的写作风格而著称。
评介:

外围设备

实现

USB

ISBN 1717425364.jpg

Buy from amazon.gif

USB: The Universal Serial Bus USB总线
作者: Benjamin David Lunt
年份: 2018
补充材料或勘误表: Link
官方描述: 这本书是为那些正在构建操作系统,编写嵌入式代码,或者只是想学习如何直接通过硬件编程与USB硬件和附加设备通信的人准备的。

本书将向你展示如何查找和初始化四个主要USB主机控制器中的每一个,设置USB堆栈以及与连接的设备进行通信。 它具有完成此操作所需的每个步骤的详细信息和示例。 包含UHCI,OHCI,EHCI和新超高速xHCI控制器的详细信息易于遵循和理解。

包括的资源:

  • 源代码 - 显示如何检测控制器以及向(从)连接的设备发送(接收)数据。
评介: https://www.amazon.com/dp/1717425364/#customerReviews




操作系统

理论

ISBN 0136006639.jpg

Buy from amazon.gif

Modern Operating Systems, 3rd ed. 现代操作系统,第三版。
作者: Andrew S. Tanenbaum
年份: 2007
补充材料或勘误表: Link
官方描述: 用于计算机科学,计算机工程和电气工程程序中操作系统的入门课程。

这一全球畅销书的大众期待版修订结合了操作系统 (OS) 技术的最新发展。 第三版包括Linux、Windows、嵌入式实时操作系统和多媒体系统等相关OS的最新资料。 Tanenbaum还根据他作为操作系统研究人员的经验提供有关当前研究的信息。

学生资源包括:

  • 在线练习-提供动手构建和分析操作系统性能的经验。特别是,这些练习旨在提供分析Windows和Linux中资源消耗的经验。
  • 仿真练习-旨在提供构建OS的一些关键组件的经验,包括进程调度,主内存分配,分页算法和虚拟内存以及文件系统。
  • 实验室实验
  • 请注意,本书不再提供GOAL。

受密码保护的讲师资源 (选择资源选项卡以查看可下载的文件):

  • Power Point讲座幻灯片
  • .jpeg和.eps两种文件格式的图片
  • 练习的解答
  • 请注意,本书不再提供GOAL。

《现代操作系统,第三版》 是 Text and Authors Association (TAA) “2010 McGuffey Longevity Award” 的获得者。 McGuffey Longevity Award表彰那些随着时间的推移而证明卓越的教科书。

评介:



ISBN 1118063333.jpg

Buy from amazon.gif

Operating System Concepts, 9th ed. 操作系统概念,第9版。
作者: Avi Silberschatz, Peter Baer Galvin, and Greg Gagne
年份: 2012
补充材料或勘误表: Link
官方描述:
评介:



ISBN 013230998X.jpg

Buy from amazon.gif

Operating systems: Internals and Design Principles, 7th ed. 操作系统: 内部和设计原理,第7版。
作者: William Stallings
年份: 2011
补充材料或勘误表: Link 1, Link 2
官方描述: 对操作系统原理的最新调查。 涵盖基本技术以及当代设计问题,例如线程,微内核,SMP(对称多处理器),实时系统,多处理器调度,嵌入式操作系统,分布式系统,集群,安全性和面向对象的设计。 第三版和第四版获得了TAA年度最佳计算机科学和工程教科书奖。
评介:



ISBN 198508659X.jpg

Buy from amazon.gif

Operating Systems: Three Easy Pieces 操作系统: 三个简单的部分
作者: Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
年份: 2015
补充材料或勘误表: Website
官方描述: 一本免费的书,讨论操作系统理论和实现。 这本书围绕三个概念部分,这些部分是操作系统的基础: 虚拟化、并发性和持久性。 在理解概念时,你还将学习实用知识,包括操作系统如何执行诸如调度CPU,管理内存和持久存储文件之类的操作。
评介:



实现

ISBN 1588530000.jpg

Buy from amazon.gif

MMURTL V1.0
作者: Richard A. Burgess
年份: 2000
补充材料或勘误表: Book, code
官方描述: MMURTL-V1.0 - 是一本在对计算机操作系统的内部工作感兴趣的计算机程序员中非常受欢迎的书。 在左侧内容显示的是初版封面,它的小标题为 “Developing Your own 32 Bit Operating System(开发自己的32位操作系统)” “(ISBN 0-672-30655-7)”,并由SAMS/MacMillan出版。 我们已经将这本书重命名为 “MMURTL-V1.0” (ISBN 1-58853-000-0) ”,印刷版本是“ 完美装订 ”的软封面 (请参阅页面最底部的附加图片)。 它被重命名,因为这是作者最初想要的名称。 MMURTLMessage based MUltitasking Real Time kerneL(基于消息的多任务实时内核)短语的“糟糕”缩写词 (引用作者话就是: “唉...所有好的项目首字母缩写词都已经被用了!” )。

这从字面上看是关于编写计算机操作系统的 “如何进行的书”,并包括汇编程序和C语言代码来构建一个操作系统。 实际上,它在随附的CD上包含完整的操作系统源代码,汇编程序和C编译器以及它们的源代码!这是原书的确切文本,除非作者在原始文本不正确的地方进行了非常小的更正 (编辑错误,错别字等)。 你可以本书的第一章中看到本书的概述,以及作者的目标。

PDF电子书大约是 2.7 Mb。 要下载的所有文件的总大小约为 8.5 Mb。 印刷版约604页,而PDF版为667页。 印刷版本还包含作者生成的完整索引。

评介:



ISBN 0131429388.jpg

Buy from amazon.gif

Operating Systems: Design and Implementation, 3rd ed. 操作系统: 设计与实现,第3版。
作者: Andrew S. Tanenbaum, and Albert S. Woodhull
年份: 2006
补充材料或勘误表: Link
官方描述: 《操作系统: 设计与实现,第3版》',是计算机操作系统入门课程的理想选择。 由Minix的创建者撰写,让专业程序员现在拥有了当今最新的教程和参考。

经过修订以介绍MINIX的最新版本 (MINIX 3),此精简,简化的新版本仍然是首要解释相关原理的唯一操作系统教材,然后使用类Unix操作系统作为详细示例演示其应用程序。 它特别设计用于高可靠性,用于嵌入式系统以及易于教学。

评介:



ISBN 1558604979.jpg

Buy from amazon.gif

Practical File System Design with the Be File System 使用Be文件系统的实用文件系统设计
作者: Dominic Giampaolo
年份: 1998
补充材料或勘误表: Free book and code
官方描述: 这是通用文件系统的设计和实现的新指南,尤其针对Be文件系统 (BFS)。 本书涵盖了与文件系统相关的所有主题,在传统操作系统书籍经常停止的地方进行了相当深入的研究。 详细介绍了高级主题,例如日志,属性,索引和查询处理。 BFS从头开始构建为现代的64位日志文件系统,是Be操作系统 (BeOS) 的主要文件系统,该系统专为高性能多媒体应用程序而设计。

你不必是内核架构师或文件系统工程师即可使用实用的文件系统设计。 你也不必是BeOS开发人员或用户。 只需要C的基本知识。 如果你曾经想知道文件系统是如何工作的,如何实现,或者想了解更多关于Be文件系统的信息,这本书就是你所需要的。

  • 审视其他文件系统,包括Linux ext2,BSD FFS,Macintosh HFS,NTFS和SGI的XFS。
  • 在磁盘上放置数据的分配策略以及BFS使用的磁盘上数据结构的讨论
  • 如何实现日志记录
  • 磁盘缓存的工作方式,包括与文件系统日志的缓存交互
  • 文件系统性能调优和BFS、NTFS、XFS、ext2基准比较
  • 一个文件系统构建工具包,允许用户实验和创建自己的文件系统
评介:



ISBN 0201544288.jpg

Buy from amazon.gif

Project Oberon: The Design of an Operating System and Compiler Oberon项目: 操作系统和编译器的设计
作者: Niklaus Wirth, and Jürg Gutknecht
年份: 1992
补充材料或勘误表: New, updated edition 2013, with processor in FPGA, the first edition of 1992 is available here with the original code.
官方描述: 1985年,Niklaus Wirth和Juerg Gutknecht开始了一个从头开始建造新工作站的项目。 爱因斯坦的名言: “使其尽可能简单,但不要简单” 是他们方法的路标,从而形成了一个典型的清晰度,效率和紧凑性系统。 Wirth对旅行者太空探测器的准确性和可靠性着迷,旅行者经过了天王星的卫星之一Oberon。 所以该项目被命名为Oberon。

这是 Oberon 的设计,开发和实现的第一手说明。 它为所有渴望从两位世界级软件工程师的经验中学习的人提供了对工作站开发理论和实践的深刻见解。

项目[1]包括:

  • Oberon 系统的完整程序清单,以及系统开发方式的详细说明
  • 演示经济高效的软件工程如何产生功能强大,高效和灵活的系统,该系统仅需要当前商业操作系统的计算机能力和存储容量的一小部分
  • 深入了解 Oberon 系统作为多服务器工作站的基础,包括文件分发,打印和电子邮件设施。
评介:



ISBN 0321968972.jpg

Buy from amazon.gif

The Design and Implementation of the FreeBSD Operating System, 2nd ed. FreeBSD操作系统的设计与实现,第2版。
作者: Marshall Kirk McKusick, George V. Neville-Neil, and Robert N.M. Watson
年份: 2014
补充材料或勘误表: Link
官方描述: FreeBSD内核内部结构的最完整,最权威的技术指南现已进行了广泛更新,以涵盖版本5和11之间的所有重大改进。 这个版本的内容大约3分之1是全新的,另一个3分之1已经被广泛重写。

三位长期的FreeBSD项目负责人首先简要概述了FreeBSD内核的当前设计和实现。 接下来,它们从系统调用级别向下覆盖FreeBSD内核-从接口到内核再到硬件。 在解释关键设计决策时,他们详细介绍了实现每个重要系统设施 (包括进程管理,安全性,虚拟内存,I/O系统,文件系统,socket IPC和网络) 中使用的概念,数据结构和算法。

评介:



ISBN 0735648735.jpg
Buy from amazon.gif

ISBN 0735665877.jpg
Buy from amazon.gif

Windows Internals, 6th ed Windows内幕,第6版。
作者: Mark Russinovich, David A. Solomon, and Alex Ionescu
年份: 2012
补充材料或勘误表: Link
官方描述: 《第6版Windows Internals》介绍了Windows 7和Windows Server 2008 R2操作系统的核心内核组件的内部结构。 这本经典之作将帮助你:
  • 了解核心系统和管理机制的工作方式-从对象管理器到服务再到注册表
  • 使用诸如内核调试器之类的工具探索内部系统数据结构
  • 掌握调度程序的优先级和CPU放置算法
  • 进入Windows安全模型,查看它如何授权访问数据
  • 了解Windows如何管理物理和虚拟内存
  • 从上到下浏览Windows网络堆栈-包括api,协议驱动程序和网络适配器驱动程序
  • 对文件系统访问问题和系统启动问题进行故障排除
  • 了解如何分析崩溃
  • 在该系列的第六个版本中,该版本再次由Microsoft Azure小组的技术研究员Mark Russinovich,操作系统专家和Windows内部教师David Solomon以及CrowdStrike的首席架构师Alex Ionescu撰写,专门研究操作系统内幕和安全性。 除了更新Windows中的更改之外,还有许多新实验和示例强调了现有和新的系统内部工具的使用。

第六版分两部分发布: 第1部分现在可得,第2部分将在9月发布。 拆分的原因是为了尽快将内容交到读者手中。

评介:



编程语言

理论

实现

C

ISBN 013089592X.jpg

Buy from amazon.gif

C: A Reference Manual, 5th ed. C: 参考手册,第5版。
作者: Samuel P. Harbison III, and Guy L. Steele Jr.
年份: 2002
补充材料或勘误表: Link
官方描述: 这本最畅销的权威参考手册提供了C语言、运行时库的完整描述,以及强调正确性、可移植性和可维护性的C编程风格。

作者Samuel P. Harbison和Guy L. Steele Jr. 在一本手册中提供了比其他任何书更清晰,更详细地C语言描述:

  • 标准C (1999) -C标准的新修订支持复杂和布尔类型,可变长度数组,精确的浮点编程以及可移植性和国际化的新库。
  • 标准C (1989)-当今大多数程序员使用的C版本。
  • 传统的C-common实践1990年,每天数百万行代码被使用。
  • 可以C++和C代码相互兼容。
  • 所有C版本的完整C运行时库。
  • C: 参考手册是唯一描述C-过去和现在所有细节的书。 它是所有C程序员和实现者的唯一必备参考。

经过彻底修订和更新,扩展的第五版包括最新的C标准,ISO/IEC 9899:1999,包含其强大的语言扩展和新的库的完整描述。

新的!访问网站。www.CAReferenceManual.com包含本书中较长示例的源代码,有关语言问题的扩展讨论,最新的ISO/IEC语言更正以及指向其他C资源的链接。

评介:



ISBN 0131103628.jpg

Buy from amazon.gif

The C Programming Language, 2nd ed. C编程语言,第二版。
作者: Brian W. Kernighan, and Dennis M. Ritchie
年份: 1988
补充材料或勘误表: Link
官方描述: 这本书旨在帮助读者学习如何用c语言编程。 这是权威的参考指南,现在是第二版。 尽管第一版是1978年编写的,但它仍然是全球畅销书。 第二版带来了最新的经典原创作品,包括ANSI标准。

来自序言:

我们试图保留第一版的简洁性。 C不是一个重语言,这本书也不该是一本重书。 我们改进了对C编程至关重要的关键功能 (例如指针) 的阐述。 我们对原来的例子进行了提炼,并在几个章节中增加了新的例子。 例如,the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa。 与以前一样,所有教材中的示例都已直接进行了测试,文本为机器可读形式。

正如我们在第一版的第一个序言中所说,C “随着人们对它的体验的增长而变好。” 有了十多年的经验,我们仍然有这种感觉。我们希望这本书能帮助你学习C并很好地使用它。

评介:



ISBN 0321563212.jpg

Buy from amazon.gif

The CERT C Secure Coding Standard CERT C安全编码标准
作者: Robert C. Seacord
年份: 2008
补充材料或勘误表: Freely available
官方描述: 软件安全对组织的运营和资产以及个人福利具有重大影响。 要创建安全的软件,开发人员必须知道危险在哪里。 用C语言进行安全编程可能比许多经验丰富的程序员所认为的还要困难。

这本书是一个必不可少的桌面参考,记录了 The CERT® C Secure Coding Standard 的第一个正式版本。 该标准逐项列出了那些编码错误,这些错误是C中软件漏洞的根本原因,并按严重性、利用可能性和补救成本对它们进行了优先排序。 每个指南都提供了不安全代码的示例以及安全的替代实现。 如果统一应用,这些准则将消除导致缓冲区溢出、格式字符串漏洞、整数溢出和其他常见软件漏洞的关键编码错误。

评介:



Security

ISBN 0321304543.jpg

Buy from amazon.gif

The Art of Computer Virus Research and Defense 计算机病毒研究与防御的艺术
作者: Peter Szor
年份: 2005
补充材料或勘误表: Link
官方描述: 赛门铁克的首席反病毒研究人员撰写了有关当代病毒威胁,防御技术和分析工具的权威指南。 与大多数有关计算机病毒es的书籍不同, 计算机病毒研究与防御的艺术 是为白帽子编写的严谨参考: 负责保护其组织免受恶意软件侵害的IT和安全专业人员。 Peter Szor系统地涵盖了你需要了解的所有内容,包括病毒行为和分类,保护策略,防病毒和蠕虫阻止技术等等。

Szor介绍了恶意软件和保护方面的最新技术,提供了专业人员处理日益复杂的攻击所需的全部技术细节。 在此过程中,他提供了有关代码变质(code metamorphism)和其他新兴技术的广泛信息,因此你可以预测并为未来的威胁做好准备。

Szor还提供了有史以来最彻底,最实用的病毒分析入门-解决从创建自己的个人实验室到自动化分析过程的所有问题。 这本书的涵盖了

  • 发现恶意代码如何攻击各种平台
  • 针对感染(infection),内存操作(in-memory operation),自我保护(self-protection),有效载荷传递(payload delivery),挖掘(exploitation)等对恶意软件策略进行分类
  • 识别和响应代码混淆威胁: 加密(encrypted)、多态(polymorphic)和变质(metamorphic)
  • 掌握用于分析恶意代码的经验方法-以及如何处理所学知识
  • 用反汇编程序、调试器、仿真器和虚拟机对恶意代码进行逆向工程
  • 实施技术防御: 扫描(scanning),代码仿真(code emulation),消毒(disinfection),接种(inoculation),完整性检查(integrity checking),沙箱(sandboxing),蜜罐(honeypots),行为阻止(behavior blocking)等等
  • 使用蠕虫阻断、基于主机的入侵防御和网络级防御策略
评介:



ISBN 0764574817.jpg

Buy from amazon.gif

Reversing: Secrets of Reverse Engineering 逆向工程的秘密
作者: Eldad Eilam
年份: 2005
补充材料或勘误表: Link
官方描述: 从逆向工程的基本入门 -- 包括计算机内部、操作系统和汇编语言 -- 开始,然后讨论逆向工程的各种应用,本书为读者提供了实用、深入的软件逆向工程技术。本书分为两部分,第一部分涉及与安全相关的逆向工程,第二部分探讨了逆向工程的更实际的方面。 此外,作者还介绍了如何对第三方软件库进行逆向工程以改善接口以及如何对竞争对手的软件进行逆向工程以构建更好的产品。
  • 最流行的关于展示了软件逆向工程如何帮助防御安全威胁,加快开发速度并解开竞争产品秘密的书
  • 通过演示黑客如何利用逆向工程技术破解复制保护方案并识别病毒和其他恶意软件的软件目标,帮助开发人员填补安全漏洞
  • 提供高级逆向工程入门,深入研究 “反汇编”-代码级逆向工程-并解释如何破译汇编语言
评介:



ISBN 0470068523.jpg

Buy from amazon.gif

Security Engineering, 2nd ed. 安全工程,第二版。
作者: Ross Anderson
年份: 2008
补充材料或勘误表: Link
官方描述: 自从这本书的第一版2001年出版以来,世界发生了根本性的变化。 垃圾邮件发送者,病毒编写者,网络钓鱼者,洗钱者和间谍现在在活跃的在线犯罪经济中彼此忙于交易,随着他们越来越专业,他们会变得更难防范。 在这本必不可少的,全面更新的指南中,罗斯·安德森 (Ross Anderson) 揭示了如何构建无论面对错误还是恶意都保持可靠的系统。 这里直接对关键主题,如技术工程基础、攻击类型、专门的保护机制、安全心理学、政策等进行了讨论。
评介:



密码学

密码分析

密码学

ISBN 0471117099.jpg

Buy from amazon.gif

Applied Cryptography, 2nd ed. 应用密码学,第二版。
作者: Bruce Schneier
年份: 1996
补充材料或勘误表: Link
官方描述: 新版的密码学经典为你提供了现代密码学的全面调查。 这本书详细介绍了程序员和电子通信专业人员如何使用密码学 (加密和解密消息的技术) 来维护计算机数据的隐私。 它描述了数十种密码算法,给出了如何在密码软件中实现它们的实用建议,并展示了如何将它们用于解决安全问题。 这个新版本涵盖了实用密码技术的最新发展,向设计计算机应用程序,网络和存储系统的程序员展示了如何将安全性构建到其软件和系统中。

第二版有什么新内容?

应用密码学的第二版是对第一版的重大重写: 多50%的文字,7个章节以及1600多个新参考文献。 我不仅对第一版进行了更正,并添加了自出版以来的发展,而且还包括了第一版中遗漏的主题。 第二版有许多新算法 (包括GOST,Blowfish,RC4和A5),更多关于Clipper芯片和密钥托管的信息,几十个新协议,更多关于PGP如何工作的信息,关于密钥管理和操作模式的详细信息,以及新的源代码。

评介:



软件开发

理论

ISBN 0735619670.jpg

Buy from amazon.gif

Code Complete, 2nd ed. 代码大全(译者注:这里用了这本书的中译版名字,其实个人觉得应该翻译为“代码完成”更合适),第二版。
作者: Steve McConnell
年份: 2004
补充材料或勘误表: Link
官方描述: 十多年来,史蒂夫·麦康奈尔 (Steve McConnell) 是软件社区的主要作者和声音之一,他帮助改变了开发人员编写代码的方式,并生产出更好的软件。 现在,他的经典著作《代码完成》 (CODE COMPLETE) 已通过构建软件的艺术和科学的最佳实践进行了全面更新和修订。 无论你是寻求软件开发实践的良好介绍的新开发人员,还是探索解决问题的战略性新方法的资深人士,你都会找到丰富的实用建议和方法来增强你的技能。 主题包括设计,将良好的技术应用于施工,消除错误,计划,管理施工活动以及将个人性格与高级软件联系起来。 此新版本具有有关编程技术的全面更新信息,包括Web风格编程的出现以及面向对象设计的集成覆盖。 你还可以在C,Microsoft(r) Visual Basic(r),C # 和Java中找到新的代码示例-好的和坏的,尽管重点是技术和实践。
评介:



ISBN 0201835959.jpg

Buy from amazon.gif

The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition 人月神话: 软件工程论文集,20周年纪念版
作者: Frederick P. Brooks, Jr.
年份: 1995
补充材料或勘误表: N/A
官方描述: 很少有有关软件项目管理的书籍像 “神话人物月” 那样具有影响力和永恒。 结合软件工程事实和发人深省的观点,Fred Brooks为管理复杂项目的任何人提供了洞察力。 这些文章借鉴了他作为IBM系统/360计算机系列项目经理的经验,然后是其庞大的软件系统OS/360。 现在,在他的书最初出版20年后,布鲁克斯重新审视了他的原始想法,并增加了新的想法和建议,既对已经熟悉他的作品的读者,也对第一次发现它的读者。

新增章节包括 (1) 原书中主张的所有命题的清晰浓缩,包括布鲁克斯在《人月神话: 》中的中心论点,即大型编程项目由于分工而遭受与小型编程项目不同的管理问题; 因此,产品的概念完整性至关重要; 实现这种统一是困难但有可能的; (2) Brooks这些命题的后续看法; (3) 重印他的经典1986年论文《没有银弹》; 和 (4) 今天对1986的断言的反思,“十年内不会有银弹”。

评介:



实践

ISBN 0201633612.jpg

Buy from amazon.gif

Design Patterns: Elements of Reusable Object-Oriented Software 设计模式: 可重用的面向对象软件的元素
作者: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
年份: 1994
补充材料或勘误表:
官方描述: 四位顶尖的设计师获得了有关面向对象软件设计的丰富经验,为常见的设计问题提供了简单明了的解决方案目录。 以前没有记录,这23种模式使设计师可以创建更灵活,优雅且最终可重复使用的设计,而无需重新发现设计解决方案本身。

作者首先描述了什么是模式,以及它们如何帮助你设计面向对象的软件。 然后,他们继续系统地命名,解释,评估和编目面向对象系统中的重复设计。 以设计模式为指导,你将了解这些重要模式如何适应软件开发过程, 以及如何利用它们最有效地解决自己的设计问题。

每种模式都描述了它适用的情况,当它可以在其他设计约束下应用时, 以及在更大的设计中使用该模式的后果和权衡。 所有模式都是从真实系统编译而来,并基于真实世界的示例。 每种模式还包括演示如何在面向对象的编程语言 (如C++或Smalltalk) 中实现的代码。

评介:



ISBN 0596009658.jpg

Buy from amazon.gif

Learning the bash Shell, 3rd ed. 学习bash Shell,第三版。
作者: Cameron Newham, and Bill Rosenblatt
年份: 2005
补充材料或勘误表: Free book, errata, and code, more errata
官方描述: O'reilly关于Linux的bash shell的畅销书又来了。 现在,Linux作为服务器和台式机都扮演了重要角色,《学习bash Shell》 已被更新,以说明所有最新更改。 实际上,第三版是bash shell迄今为止最有价值的指南。

任何优秀的程序员都知道,Linux操作系统的用户面对的第一件事就是shell,即UNIX术语,用于系统的用户界面。 换句话说,它让你可以通过键盘和显示器与计算机进行交流。 掌握bash shell听起来可能很简单,但事实并非如此。 实际上,有许多复杂性需要仔细解释,这正是 《学习bash Shell》 所提供的。

如果你是shell编程的新手,则本书提供了出色的介绍,涵盖了从最基本到最先进的功能的所有内容。 而且,如果你已经编写了多年的shell脚本,那么它提供了一种找出新shell提供的功能的好方法。 《学习bash Shell》还充满了Shell命令和程序的实际示例,这些示例将使Linux的日常使用变得更加容易。 有了这本书,程序员将会学到:

  • 如何安装bash作为你的登录shell
  • 交互式shell使用的基础知识,包括UNIX文件和目录结构,标准I/O和后台作业
  • 命令行编辑、历史记录替换和键绑定
  • 如何在不编程的情况下自定义你的shell环境
  • 基础shell编程、流程控制结构、命令行选项和类型化变量的基本要点
  • 进程处理,从作业控制到流程、协程和subshell
  • 调试技术,如跟踪和详细模式(verbose modes)
  • 实现全系统Shell定制的技术和与系统安全相关的功能
评介:



ISBN 059652983X.jpg

Buy from amazon.gif

Learning the vi and Vim Editors, 7th ed. 学习vi和Vim编辑,第7版。
作者: Arnold Robbins, Elbert Hannah, and Linda Lamb
年份: 2008
补充材料或勘误表: Link
官方描述: 硬核的Unix和Linux用户对他们的文本编辑器十分狂热。 编辑器是被崇拜和敬仰的对象,还是被蔑视和嘲笑的对象,这取决于讨论的编辑器是你的还是别人的。

“Vi” 一直是近30年的标准编辑。 它在Unix和Linux上很受欢迎,在Windows系统上也有越来越多的追随者。 大多数有经验的系统管理员都引用vi作为他们选择的工具。 1986年,这本书一直是 “vi” 的指南。

但是,Unix系统并不是30年前的样子,这本书也不是。 在保留了以前版本的所有宝贵功能的同时,第7版的 《学习vi和vim编辑器》已扩展为包括有关 “vim” (更先进的 “vi” 克隆) 的详细信息。 “Vim” 是大多数Linux系统和Mac OS X上的vi的默认版本,也可用于许多其他操作系统。

通过本指南,你可以学习两个编辑器的文本编辑基础知识和高级工具,例如多窗口编辑,如何编写交互式宏和脚本以扩展编辑器,以及面向程序员的强大工具-所有这些都以易于遵循的风格使本书成为经典。

《学习vi和vim编辑》 包括:

使用vi进行文本编辑的完整介绍:

  • 如何快速地在 “vi” 上移动
  • 超越基础知识,例如使用缓冲区
  • “Vi” 的全局搜索和替换
  • 高级编辑,包括自定义 “vi” 和执行Unix命令

如何充分利用vim:

  • 扩展的文本对象和更强大的正则表达式
  • 多窗口编辑和强大的 “vim” 脚本
  • 如何充分利用vim的GUI版本,gvim
  • Vim 对程序员的增强,如语法高亮、折叠和扩展标签

还包括其他三个流行的 “vi” 复刻 -- “nvi”,“ elvis ”和“ vile ”。 你会找到几个有价值的附录,包括按字母顺序快速引用常规 “vi” 和 “vim” 的“ vi ”和“ ex” 模式命令,以及更新的附录 “vi” 和互联网链接。

如果你使用Linux或Unix,则需要学习 “vi” 或 “vim” 知识,无论哪种情况,阅读本书都是必不可少的。 读完这本书后,编辑器的选择对你来说也是显而易见的。

评介:



ISBN 0596006101.jpg

Buy from amazon.gif

Managing Projects with GNU Make, 3rd ed 使用GNU Make管理项目,第三版。
作者: Robert Mecklenburg
年份: 2004
补充材料或勘误表: Free book, errata, and code, more errata
官方描述: 简称为 “make” 的实用程序是Unix和其他操作系统最持久的功能之一。 “Make” 最初是在20世纪70年代发明的,直到今天,它仍然是大多数编程项目中的中央引擎。它甚至构建了linux内核。 在经典的 《使用GNU make管理项目》的第三版中,读者将了解为什么尽管有许多年轻的竞争对手,但该实用程序仍继续在项目构建软件中保持领先地位。

“make” 背后的前提很简单: 更改源文件并想要重建程序或其他输出文件后,请检查时间戳以查看已更改的内容并重新构建所需的内容,而不会浪费时间重建其他文件。 但是,在这个简单的原则之上,“make” 布置了丰富的选项集合,使你可以操作多个目录,为不同平台构建不同版本的程序,并以其他方式自定义构建。

该版本专注于GNU版本的make,已当之无愧地成为行业标准。 GNU make包含本书中探索的强大扩展。 它也很受欢迎,因为它是免费软件,几乎为每个平台提供一个版本,包括作为免费Cygwin项目一部分的Microsoft Windows版本。 《使用GNU make管理项目》,第3版提供了满足大型现代项目需求的指南。 还添加了许多有趣的高级主题,例如可移植性,并行性和与Java一起使用。

第三版的作者罗伯特·梅克伦堡 (Robert Mecklenburg) 数十年来一直使用 “make”,使用各种平台和语言。 在这本书中,他热心地阐述了如何使你的构建尽可能高效,减少维护,避免错误以及彻底了解make在做什么。 关于C和Java的章节提供了针对这些语言项目优化的makefile条目。 作者甚至还讨论了用于构建这本书的makefile。

评介:



ISBN 0138297711.jpg

Buy from amazon.gif

Source File Management with SCCS 使用SCCS进行源文件管理
作者: Israel Silverberg
年份: 1991
补充材料或勘误表: N/A
官方描述: 面向高级软件工程师,软件经理,系统管理员和配置经理的需求,重点介绍UNIX system V环境中源文件库的构建和维护。 本书对UNIX源代码控制系统的概念进行了解释,详细描述了构成SCCS的实用程序,并展示了如何使用这些工具来构建和维护源文件库。 它还显示了如何将所有应用程序放置在单个库中,以及该库如何被不同部门使用。 为了允许读者建立源文件管理系统,该系统将跟踪整个应用程序的版本而不是单个源文件,因此解释了在产品级别维护源文件的技术和其他工具。 然后,本书解释了如何建立一个安全的源代码库,在该库中,对读取和/或更改的访问受到严格控制。 最后,本书提供了实现所描述的概念所需的特殊实用程序的源代码。 源代码磁盘可单独使用。
评介:



计算理论

ISBN 113318779X.jpg

Buy from amazon.gif

Introduction to the Theory of Computation, 3rd ed. 计算理论导论,第3版。
作者: Michael Sipser
年份: 2012
补充材料或勘误表: Link, Errata
官方描述: 现在在第三版中,你可以通过Sipser独特的,市场领先的计算理论介绍清楚地向学生展示最复杂的计算理论主题。 作为当今计算理论课程的第一选择,这一备受期待的修订保留了无与伦比的清晰度和详尽的报道,使其成为高年级本科生和入门研究生的主要教材。 此版本延续了作者Michael Sipser的著名,平易近人的风格,并在关键领域进行了及时的修订,其他练习以及更难忘的示例。 确定性上下文无关语言的首创理论处理是更好地理解解析和LR(k) 语法的理想选择。 本版的精致演示确保了值得信赖的准确性和清晰度,使具有挑战性的计算理论研究易于学生理解和直观,同时保持学科的严谨性和形式化。 读者对计算机硬件,软件和应用程序的基本数学特性有了深入的了解,并结合了实用和哲学范围以及数学处理方法,包括先进的定理和证明。 《计算理论导论,第三版》的全面覆盖使其成为研究理论计算的人们的理想的持续参考工具。
评介:



ISBN 0716782669.jpg
Buy from amazon.gif

ISBN 071678291X.jpg
Buy from amazon.gif

The Language of Machines: An Introduction to Computability and Formal Languages 机器的语言: 可计算性和形式语言简介
作者: Robert W Floyd, and Richard Beigel
年份: 1994
补充材料或勘误表: Link
官方描述: 在《机器的语言》中,罗伯特·弗洛伊德 (Robert Floyd) 和理查德·贝格尔 (Richard Beigel) 彻底改变了可计算性和语言的教学。 他们提出的无非是重新定义自动机理论的组成部分: 他们的统一计算模型前所未有地阐明了这一主题。 弗洛伊德 (Floyd) 和贝格尔 (Beigel) 的单一模型涵盖了所有传统类型的计算机,甚至是 “现实世界” 的电子计算机。

Floyd和Beigel使用在斯坦福大学,耶鲁大学和约翰·霍普金斯大学成功的课堂测试,提供了有价值的创新:

  • 统一定义,深入了解各种机器的功能
  • 简单与严谨的完美结合 --- 他们的新方法使以前晦涩的结果变得容易获得。
  • 实用计算机科学的思想和例子 使理论栩栩如生
  • 用于组合程序的机制,类似于UNIX(tm) 中的管道
  • 模拟的首个正式定义,允许模块化证明
  • 通用程序标准化系统 简化了证明

弗洛伊德·贝格尔 (Floyd an Beigel) 对可计算性和形式语言理论的大胆重构为学生建立丰富而持久的知识体系提供了坚实的基础。

评介:



UNIX

ISBN 0321637739.jpg

Buy from amazon.gif

Advanced Programming in the UNIX Environment, 3rd ed. UNIX环境中的高级编程,第3版。
作者: Stephen A. Rago, and W. Richard Stevens
年份: 2013
补充材料或勘误表: Link
官方描述: 掌握系统是当今UNIX和Linux系统的核心: 驱动UNIX和linux内核并运行从文件系统,多任务处理到进程间通信的所有内容的编程接口。 对每个UNIX和Linux程序员来说,透彻的系统调用知识是必不可少的——20年来,W.Richard Stevens的《UNIX环境中的高级编程》一直在提供这方面的知识。 现在,斯蒂芬·拉戈 (Stephen Rago) 已完全更新了该经典版本,以反映包括Red Hat 2.6.x,Solaris 10 3,OS X 10.5.4,FreeBSD 7.0.5在内的现代发行版,并首次包含Ubuntu。 与以前的版本一样,Rago从文件和过程控制等要素开始,精心为更先进的技术奠定了基础。 他用近10,000行代码支持他清晰的解释,所有这些代码都在每个领先的版本和发行版上进行了仔细的测试。 Rago首先介绍了UNIX系统,其标准化过程及其各种实现的最新概述。 接下来,他介绍了文件I/O,文件,目录和标准I/O库。 你将逐步处理UNIX/Linux系统数据文件和信息… 控制进程环境及其关系… 使用信号、线程和守护进程… 掌握先进的I/O技术、进程间通信、套接字、和高级IPC… 使用终端I/O和伪终端… 与数据库库一起工作,与网络打印机通信等等。 附录提供了有关功能原型,杂项源代码以及本指南许多练习的解决方案的基本信息。 适用于所有中级到高级级别的UNIX程序员和软件工程师。
评介:



ISBN 0139319573.jpg

Buy from amazon.gif

UNIX Curses Explained UNIX Curses解释
作者: Berny Goodheart
年份: 1991
补充材料或勘误表: N/A
官方描述: 完整地记录Curses库,并提供UNIX Curses的详细解释。 包含完整的字母参考部分,以及使用Curses,窗口,颜色处理,替代字符集,垫和终端的许多清晰示例。
评介:



ISBN 0131411551.jpg
Buy from amazon.gif

ISBN 0130810819.jpg
Buy from amazon.gif

UNIX Network Programming UNIX网络编程
作者: Andrew M. Rudoff, Bill Fenner, and W. Richard Stevens
年份: 2003 (Vol1), 1998 (Vol2)
补充材料或勘误表: Volume 1, Volume 2
官方描述: 这本书是为那些想要编写使用称为套接字(Socket)的应用程序接口 (API) 相互通信的程序的人准备的。 一些读者可能已经非常熟悉套接字,因为该模型已成为网络编程的代名词。 另一些人可能需要从头开始介绍套接字。 本书的目标是为初学者和专业人士,开发新的网络感知应用程序以及维护现有代码的人以及那些只想了解其网络组件的人提供网络编程指南系统功能。

本文中的所有示例都是在Unix系统上测试的实际可运行的代码。 但是,许多非Unix系统都支持sockets API,并且这些示例在很大程度上与操作系统无关,我们提出的一般概念也是如此。 实际上,每个操作系统 (OS) 都提供了许多网络相关应用程序,例如Web浏览器,电子邮件客户端和文件共享服务器。 我们将讨论这些应用程序通常划分为客户端和服务器,并在整个文本中多次编写我们自己的小示例。

实现良好的进程间通信 (IPC-interprocess communications) 几乎是每个非平凡UNIX程序性能的关键。 在 《UNIX网络编程,第2卷, 第二版中》,传奇的UNIX专家W. Richard Stevens介绍了每种形式的IPC的全面指南,包括消息传递,同步,共享内存和远程过程调用 (RPC)。

史蒂文斯 (Stevens) 首先介绍了IPC及其要解决的问题。 你将逐步学习如何最大化System V IPC和新的Posix标准,这些标准在便利性和性能方面提供了显著改善。 你会发现Pthreads的覆盖范围很广,其中许多示例反映了多个线程而不是多个进程。 在此过程中,你将掌握所有当前的IPC技巧和技术,包括:

  • 管道和fifo。
  • Posix和System V消息队列
  • 互斥和条件变量
  • 读写锁
  • 记录锁定
  • Posix和System V信号量
  • Posix和System V共享内存
  • Solaris Doors和Sun RPC
  • IPC技术的性能测量

如果你读过史蒂文斯最畅销的第一版UNIX网络编程,这本书将其IPC覆盖范围扩大了五倍! 你不仅会从外部了解IPC。“你实际上将创建Posix消息队列,读写锁和信号量的实现,从而深入了解这些功能,而这些功能根本无法在别处获得。

这本书包含大量的新源代码-所有经过精心优化并可在Web上获得。 你甚至可以找到使用消息传递带宽和延迟程序以及线程和进程同步程序来衡量IPC性能的完整指南。

你对IPC的理解越好,你的UNIX软件就会运行得越好。 《UNIX网络编程,第2卷,第二版》包含所有你需要知道的内容。

评介:



ISBN 013937681X.jpg

Buy from amazon.gif

The Unix Programming Environment Unix编程环境
作者: Brian W. Kernighan, and Rob Pike
年份: 1983
补充材料或勘误表: Link
官方描述: 本书专为初次和有经验的用户而设计,详细描述了UNIX® 编程环境和理念。 读者不仅可以了解如何使用系统,其组件和程序,还可以了解它们如何适应整个环境。
评介:



ISBN 1695978552.jpg

Buy from amazon.gif

UNIX: A History and a Memoir - UNIX: 历史和回忆录
作者: Brian W. Kernighan
年份: 2019
补充材料或勘误表:
官方描述: 关于Unix如何开始以及它如何占领世界的迷人故事。 Brian Kernighan是Unix开发人员最初小组的成员,是几个基础Unix程序的创建者,并且是《C编程语言》和《Unix编程环境》等经典书籍的合著者。"
评介:



另见