Books
(译者注:以下有一些书已有中文版,但是这里翻译给出中文书名时并没有使用,而是仅做字面翻译,请自行查找已出版中文版)
算法
Algorithms 算法 | |
作者: Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani | |
年份: 2006 | |
补充材料或勘误表: Penultimate draft, Errata, Link | |
官方描述: 这本书在加州大学伯克利分校和加州大学圣地亚哥分校进行了十多年的广泛测试,在故事线中解释了算法的基本原理,使材料令人愉悦且易于消化。
重点放在理解每个算法背后的清晰的数学思想上,这种方式既直观又严谨,又不会过于形式化。 特点包括:
| |
评介: |
Algorithms and Data Structures 算法和数据结构 | |
作者: Niklaus Wirth | |
年份: 1985 | |
补充材料或勘误表: Oberon Version 2004 | |
官方描述: 关于算法和数据结构的经典教科书。 引用亚马逊 “oversteer” 的评论: 这本书讨论了真正重要的算法和数据结构。 它可能不包括最新的和最大的进步,但它在当今的实际应用中仍然非常相关。
对我来说,这本书的最高价值不是解释的特定方法,而是这本书教授的良好风格和对程序的思考方式。 很少有书能真正教授好的风格,这可能是最好的之一。 对于任何希望成为一名优秀程序员,而不仅仅是普通程序员的人来说,这本书都是必读的。 | |
评介: Wikipedia |
Algorithms, 4th ed. 算法,第四版 | |
作者: Kevin Wayne, and Robert Sedgewick | |
年份: 2011 | |
补充材料或勘误表: Link | |
官方描述: 罗伯特·塞奇威克和凯文·韦恩的教科书 “算法,第四版” [ Amazon · Pearson · InformIT ] 包含了当今使用的最重要的算法和数据结构。 教科书分为六章:
在科学,工程和工业领域的应用是本文的主要特征。 我们可以研究每个算法,来解决特定应用的挑战。 | |
评介: |
The Art of Computer Programming 计算机编程的艺术 | |
作者: Donald E. Knuth | |
年份: 2011 | |
补充材料或勘误表: Link | |
Official Description: 1999年结束时,这些书被 “美国科学家” 评为本世纪最佳的十二本物理科学专著之一,同在这个清单里的还有: 狄拉克论量子力学,爱因斯坦论相对论,曼德尔布罗特论分形,鲍林论化学键,罗素和怀特黑德论数学基础,冯·诺伊曼和摩根斯坦论博弈论,维纳论控制论,伍德沃德和霍夫曼论轨道对称性,费曼论量子电动力学,史密斯论结构搜索,爱因斯坦文集。哇! | |
评介: |
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的新概念。 这个版本增加了许多新的练习和问题。 从第三版开始,这本教科书由麻省理工学院出版社独家出版。 | |
评介: |
编译器理论
Assemblers and Loaders 汇编器和加载器 | |
作者: David Salomon | |
年份: 1993 | |
补充材料或勘误表: Freely available | |
官方描述: 这本书是在1985-1992期间编写的,是根据计算机组织的课堂笔记开发的。 它包括许多提供答案的练习,并在每一章之后复习问题。 这本书装订成平装本,封面还是五颜六色的。 | |
评介: |
Compilers: Principles, Techniques, & Tools 编译器: 原理、技术和工具 | |
作者: Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman | |
年份: 2006 | |
补充材料或勘误表: Link | |
官方描述: 《编译器: 原理,技术和工具》,全世界的教授,学生和开发人员都将其称为 “龙书”,并还在提供新版。 每一章都经过了全面修订,以反映从1986年上一版出版后软件工程,编程语言和计算机体系结构的发展。 作者认识到很少有读者仍在构建新的编译器,因此将重点放在软件设计和软件开发中面临的更广泛的问题上。
新章节包括: 第10章 Instruction-Level Parallelism 指令级并行性 | |
评介: |
Linkers and Loaders 链接器和加载器 | |
作者: John R. Levine | |
年份: 1999 | |
补充材料或勘误表: Free manuscript, Errata and code | |
官方描述: 无论你的编程语言是什么,无论你的平台是什么,你都可能一直在使用链接器和加载器功能。 但是你知道如何利用它们来发挥最大的优势吗?直到现在,随着《链接器和加载器》的出版,才有一本权威的书完全致力于这些的编译时和运行时过程。 本书首先对链接和加载进行了详细的比较说明,说明了各种编译器和操作系统之间的差异。 在此基础上,作者提出了明确的实用建议,以帮助你创建更快,更干净的代码。 你将学会避免与Windows dll相关的陷阱,利用许多现代链接器支持的节省空间、提高性能的技术,充分利用UNIX ELF库方案,等等。 如果你对编程很认真,那么你应该好好读读这本独特的指南,让它带领你深入你最不了解的编程领域主题之一。 《Linkers & Loaders》也是编译器和操作系统课程的理想补充课本。
特点
| |
评介: 写得很好,易于阅读,而又透彻且信息丰富。它有足够的奇思妙想,使大多数读者发现一个枯燥的话题变得有趣。虽然当前版本现在有些过时,但它涵盖了人们需要了解链接编辑器和程序加载器如何工作的大部分内容。- User:Schol-r-lea |
计算机体系结构
理论
Computer Architecture: A Quantitative Approach, 5th ed. 计算机体系结构: 定量方法,第5版。 | |
作者: John L. Hennessy, and David A. Patterson | |
年份: 2011 | |
补充材料或勘误表: Link | |
官方描述: 当今的计算世界正处于一场革命之中: 移动客户端和云计算已成为当今推动编程和硬件创新的主要范例。 《计算机体系结构》第五版着眼于这一戏剧性的转变,探索手机、平板电脑、笔记本电脑和其他移动计算设备访问云中软件和技术的方式。 每章都包括两个真实世界的例子,一个移动设备和一个数据中心,以说明这种革命性的变化。 | |
评介: |
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,基本网络编程和并发编程。 这些概念得到了一系列有趣和动手实验任务的支持。有关更多详细信息,请参见手稿 前言。 | |
评介: |
Structured Computer Organization, 6th ed. 结构化计算机组织,第6版。 | |
作者: Andrew S. Tanenbaum, and Todd Austin | |
年份: 2012 | |
补充材料或勘误表: Link | |
官方描述: 《结构化计算机组织》 是专门为本科生编写的,是一本最畅销的指南,提供了有关计算机硬件和体系结构的介绍。 对于所有需要对计算机体系结构进行概述或介绍的计算机专业人员和工程师,本文也可作为有用的资源。
本书采用现代结构化,分层的方法来理解计算机系统。 它具有很高的可访问性-并且已经过全面更新,以反映当今最关键的新技术以及计算机组织和体系结构的最新发展。 Tanenbaum著名的写作风格和艰苦的研究使这本书成为最容易获得和最准确的书籍之一,保持了作者将计算机呈现为一系列层的流行方法,每个层都建立在下面的层上,并且可以理解为一个单独的实体。 | |
评介: |
实现
PC
人机交互
网络
理论
Computer Networks, 5th ed. 计算机网络,第5版。 | |
作者: Andrew S. Tanenbaum, and David J. Wetherall | |
年份: 2010 | |
补充材料或勘误表: Link | |
官方描述: 《计算机网络,第5版》是适用于计算机科学,电气工程,计算机信息系统,管理信息系统和工商管理的本科和研究生的计算机网络介绍课程。
Tanenbaum采用结构化的方法来解释网络如何从内到外工作。 他首先解释了网络,计算机硬件和传输系统的物理层; 然后逐步扩展到网络应用程序。 Tanenbaum的深入应用程序覆盖范围包括电子邮件; 域名系统; 万维网 (客户端和服务器端); 和多媒体 (包括IP语音,互联网广播视频点播,视频会议和流媒体)。 每章都遵循一致的方法: Tanenbaum先提出关键原理,然后利用贯穿整本书的真实示例网络-Internet和无线网络 (包括无线局域网,宽带无线和蓝牙) 来说明它们。 第五版包括专门讨论网络安全的一章。 教科书由解决方案手册以及PowerPoint幻灯片,各种形式的表格和其他教学工具的网站补充,还包括协议模拟器,学生可以开发和测试自己的网络协议。 | |
评介: |
Computer Networking: A Top-Down Approach, 6th ed. 计算机网络: 自上而下掌握,第6版。 | |
作者: James F. Kurose, Keith W. Ross | |
年份: 2012 | |
补充材料或勘误表: Link | |
官方描述: 《计算机网络》继续早期强调应用层范例和应用程序编程接口 (顶层),在将协议堆栈处理到更抽象的层之前,鼓励使用协议和网络概念的实践经验。
由于作者的声誉,解释的精确性,程序技艺的质量以及提供的价值,本书已成为该课程的主要书籍。 可以访问作者的博客 http://kuroseross.com 以获取信息和资源,以讨论最新版本,以及有关计算机网络领域的宝贵见解,教学技巧和讨论。 | |
评介: |
实现
AppleTalk
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
TCP/IP
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
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 |
操作系统
理论
Modern Operating Systems, 3rd ed. 现代操作系统,第三版。 | |
作者: Andrew S. Tanenbaum | |
年份: 2007 | |
补充材料或勘误表: Link | |
官方描述: 用于计算机科学,计算机工程和电气工程程序中操作系统的入门课程。
这一全球畅销书的大众期待版修订结合了操作系统 (OS) 技术的最新发展。 第三版包括Linux、Windows、嵌入式实时操作系统和多媒体系统等相关OS的最新资料。 Tanenbaum还根据他作为操作系统研究人员的经验提供有关当前研究的信息。 学生资源包括:
受密码保护的讲师资源 (选择资源选项卡以查看可下载的文件):
《现代操作系统,第三版》 是 Text and Authors Association (TAA) “2010 McGuffey Longevity Award” 的获得者。 McGuffey Longevity Award表彰那些随着时间的推移而证明卓越的教科书。 | |
评介: |
Operating System Concepts, 9th ed. 操作系统概念,第9版。 | |
作者: Avi Silberschatz, Peter Baer Galvin, and Greg Gagne | |
年份: 2012 | |
补充材料或勘误表: Link | |
官方描述: | |
评介: |
Operating systems: Internals and Design Principles, 7th ed. 操作系统: 内部和设计原理,第7版。 | |
作者: William Stallings | |
年份: 2011 | |
补充材料或勘误表: Link 1, Link 2 | |
官方描述: 对操作系统原理的最新调查。 涵盖基本技术以及当代设计问题,例如线程,微内核,SMP(对称多处理器),实时系统,多处理器调度,嵌入式操作系统,分布式系统,集群,安全性和面向对象的设计。 第三版和第四版获得了TAA年度最佳计算机科学和工程教科书奖。 | |
评介: |
Operating Systems: Three Easy Pieces 操作系统: 三个简单的部分 | |
作者: Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau | |
年份: 2015 | |
补充材料或勘误表: Website | |
官方描述: 一本免费的书,讨论操作系统理论和实现。 这本书围绕三个概念部分,这些部分是操作系统的基础: 虚拟化、并发性和持久性。 在理解概念时,你还将学习实用知识,包括操作系统如何执行诸如调度CPU,管理内存和持久存储文件之类的操作。 | |
评介: |
实现
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) ”,印刷版本是“ 完美装订 ”的软封面 (请参阅页面最底部的附加图片)。 它被重命名,因为这是作者最初想要的名称。 MMURTL 是 Message based MUltitasking Real Time kerneL(基于消息的多任务实时内核)短语的“糟糕”缩写词 (引用作者话就是: “唉...所有好的项目首字母缩写词都已经被用了!” )。
这从字面上看是关于编写计算机操作系统的 “如何进行的书”,并包括汇编程序和C语言代码来构建一个操作系统。 实际上,它在随附的CD上包含完整的操作系统源代码,汇编程序和C编译器以及它们的源代码!这是原书的确切文本,除非作者在原始文本不正确的地方进行了非常小的更正 (编辑错误,错别字等)。 你可以本书的第一章中看到本书的概述,以及作者的目标。 PDF电子书大约是 2.7 Mb。 要下载的所有文件的总大小约为 8.5 Mb。 印刷版约604页,而PDF版为667页。 印刷版本还包含作者生成的完整索引。 | |
评介: |
Operating Systems: Design and Implementation, 3rd ed. 操作系统: 设计与实现,第3版。 | |
作者: Andrew S. Tanenbaum, and Albert S. Woodhull | |
年份: 2006 | |
补充材料或勘误表: Link | |
官方描述: 《操作系统: 设计与实现,第3版》',是计算机操作系统入门课程的理想选择。 由Minix的创建者撰写,让专业程序员现在拥有了当今最新的教程和参考。
经过修订以介绍MINIX的最新版本 (MINIX 3),此精简,简化的新版本仍然是首要解释相关原理的唯一操作系统教材,然后使用类Unix操作系统作为详细示例演示其应用程序。 它特别设计用于高可靠性,用于嵌入式系统以及易于教学。 | |
评介: |
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文件系统的信息,这本书就是你所需要的。
| |
评介: |
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]包括: | |
评介: |
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和网络) 中使用的概念,数据结构和算法。 | |
评介: |
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操作系统的核心内核组件的内部结构。 这本经典之作将帮助你:
第六版分两部分发布: 第1部分现在可得,第2部分将在9月发布。 拆分的原因是为了尽快将内容交到读者手中。 | |
评介: |
编程语言
理论
实现
C
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标准,ISO/IEC 9899:1999,包含其强大的语言扩展和新的库的完整描述。 新的!访问网站。www.CAReferenceManual.com包含本书中较长示例的源代码,有关语言问题的扩展讨论,最新的ISO/IEC语言更正以及指向其他C资源的链接。 | |
评介: |
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并很好地使用它。 | |
评介: |
The CERT C Secure Coding Standard CERT C安全编码标准 | |
作者: Robert C. Seacord | |
年份: 2008 | |
补充材料或勘误表: Freely available | |
官方描述: 软件安全对组织的运营和资产以及个人福利具有重大影响。 要创建安全的软件,开发人员必须知道危险在哪里。 用C语言进行安全编程可能比许多经验丰富的程序员所认为的还要困难。
这本书是一个必不可少的桌面参考,记录了 The CERT® C Secure Coding Standard 的第一个正式版本。 该标准逐项列出了那些编码错误,这些错误是C中软件漏洞的根本原因,并按严重性、利用可能性和补救成本对它们进行了优先排序。 每个指南都提供了不安全代码的示例以及安全的替代实现。 如果统一应用,这些准则将消除导致缓冲区溢出、格式字符串漏洞、整数溢出和其他常见软件漏洞的关键编码错误。 | |
评介: |
Security
The Art of Computer Virus Research and Defense 计算机病毒研究与防御的艺术 | |
作者: Peter Szor | |
年份: 2005 | |
补充材料或勘误表: Link | |
官方描述: 赛门铁克的首席反病毒研究人员撰写了有关当代病毒威胁,防御技术和分析工具的权威指南。 与大多数有关计算机病毒es的书籍不同, 计算机病毒研究与防御的艺术 是为白帽子编写的严谨参考: 负责保护其组织免受恶意软件侵害的IT和安全专业人员。 Peter Szor系统地涵盖了你需要了解的所有内容,包括病毒行为和分类,保护策略,防病毒和蠕虫阻止技术等等。
Szor介绍了恶意软件和保护方面的最新技术,提供了专业人员处理日益复杂的攻击所需的全部技术细节。 在此过程中,他提供了有关代码变质(code metamorphism)和其他新兴技术的广泛信息,因此你可以预测并为未来的威胁做好准备。 Szor还提供了有史以来最彻底,最实用的病毒分析入门-解决从创建自己的个人实验室到自动化分析过程的所有问题。 这本书的涵盖了
| |
评介: |
Reversing: Secrets of Reverse Engineering 逆向工程的秘密 | |
作者: Eldad Eilam | |
年份: 2005 | |
补充材料或勘误表: Link | |
官方描述: 从逆向工程的基本入门 -- 包括计算机内部、操作系统和汇编语言 -- 开始,然后讨论逆向工程的各种应用,本书为读者提供了实用、深入的软件逆向工程技术。本书分为两部分,第一部分涉及与安全相关的逆向工程,第二部分探讨了逆向工程的更实际的方面。 此外,作者还介绍了如何对第三方软件库进行逆向工程以改善接口以及如何对竞争对手的软件进行逆向工程以构建更好的产品。
| |
评介: |
Security Engineering, 2nd ed. 安全工程,第二版。 | |
作者: Ross Anderson | |
年份: 2008 | |
补充材料或勘误表: Link | |
官方描述: 自从这本书的第一版2001年出版以来,世界发生了根本性的变化。 垃圾邮件发送者,病毒编写者,网络钓鱼者,洗钱者和间谍现在在活跃的在线犯罪经济中彼此忙于交易,随着他们越来越专业,他们会变得更难防范。 在这本必不可少的,全面更新的指南中,罗斯·安德森 (Ross Anderson) 揭示了如何构建无论面对错误还是恶意都保持可靠的系统。 这里直接对关键主题,如技术工程基础、攻击类型、专门的保护机制、安全心理学、政策等进行了讨论。 | |
评介: |
密码学
密码分析
密码学
Applied Cryptography, 2nd ed. 应用密码学,第二版。 | |
作者: Bruce Schneier | |
年份: 1996 | |
补充材料或勘误表: Link | |
官方描述: 新版的密码学经典为你提供了现代密码学的全面调查。 这本书详细介绍了程序员和电子通信专业人员如何使用密码学 (加密和解密消息的技术) 来维护计算机数据的隐私。 它描述了数十种密码算法,给出了如何在密码软件中实现它们的实用建议,并展示了如何将它们用于解决安全问题。 这个新版本涵盖了实用密码技术的最新发展,向设计计算机应用程序,网络和存储系统的程序员展示了如何将安全性构建到其软件和系统中。
第二版有什么新内容? 应用密码学的第二版是对第一版的重大重写: 多50%的文字,7个章节以及1600多个新参考文献。 我不仅对第一版进行了更正,并添加了自出版以来的发展,而且还包括了第一版中遗漏的主题。 第二版有许多新算法 (包括GOST,Blowfish,RC4和A5),更多关于Clipper芯片和密钥托管的信息,几十个新协议,更多关于PGP如何工作的信息,关于密钥管理和操作模式的详细信息,以及新的源代码。 | |
评介: |
软件开发
理论
Code Complete, 2nd ed. 代码大全(译者注:这里用了这本书的中译版名字,其实个人觉得应该翻译为“代码完成”更合适),第二版。 | |
作者: Steve McConnell | |
年份: 2004 | |
补充材料或勘误表: Link | |
官方描述: 十多年来,史蒂夫·麦康奈尔 (Steve McConnell) 是软件社区的主要作者和声音之一,他帮助改变了开发人员编写代码的方式,并生产出更好的软件。 现在,他的经典著作《代码完成》 (CODE COMPLETE) 已通过构建软件的艺术和科学的最佳实践进行了全面更新和修订。 无论你是寻求软件开发实践的良好介绍的新开发人员,还是探索解决问题的战略性新方法的资深人士,你都会找到丰富的实用建议和方法来增强你的技能。 主题包括设计,将良好的技术应用于施工,消除错误,计划,管理施工活动以及将个人性格与高级软件联系起来。 此新版本具有有关编程技术的全面更新信息,包括Web风格编程的出现以及面向对象设计的集成覆盖。 你还可以在C,Microsoft(r) Visual Basic(r),C # 和Java中找到新的代码示例-好的和坏的,尽管重点是技术和实践。 | |
评介: |
实践
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的日常使用变得更加容易。 有了这本书,程序员将会学到:
| |
评介: |
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进行文本编辑的完整介绍:
如何充分利用vim:
还包括其他三个流行的 “vi” 复刻 -- “nvi”,“ elvis ”和“ vile ”。 你会找到几个有价值的附录,包括按字母顺序快速引用常规 “vi” 和 “vim” 的“ vi ”和“ ex” 模式命令,以及更新的附录 “vi” 和互联网链接。 如果你使用Linux或Unix,则需要学习 “vi” 或 “vim” 知识,无论哪种情况,阅读本书都是必不可少的。 读完这本书后,编辑器的选择对你来说也是显而易见的。 | |
评介: |
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。 | |
评介: |
计算理论
Introduction to the Theory of Computation, 3rd ed. 计算理论导论,第3版。 | |
作者: Michael Sipser | |
年份: 2012 | |
补充材料或勘误表: Link, Errata | |
官方描述: 现在在第三版中,你可以通过Sipser独特的,市场领先的计算理论介绍清楚地向学生展示最复杂的计算理论主题。 作为当今计算理论课程的第一选择,这一备受期待的修订保留了无与伦比的清晰度和详尽的报道,使其成为高年级本科生和入门研究生的主要教材。 此版本延续了作者Michael Sipser的著名,平易近人的风格,并在关键领域进行了及时的修订,其他练习以及更难忘的示例。 确定性上下文无关语言的首创理论处理是更好地理解解析和LR(k) 语法的理想选择。 本版的精致演示确保了值得信赖的准确性和清晰度,使具有挑战性的计算理论研究易于学生理解和直观,同时保持学科的严谨性和形式化。 读者对计算机硬件,软件和应用程序的基本数学特性有了深入的了解,并结合了实用和哲学范围以及数学处理方法,包括先进的定理和证明。 《计算理论导论,第三版》的全面覆盖使其成为研究理论计算的人们的理想的持续参考工具。 | |
评介: |
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使用在斯坦福大学,耶鲁大学和约翰·霍普金斯大学成功的课堂测试,提供了有价值的创新:
弗洛伊德·贝格尔 (Floyd an Beigel) 对可计算性和形式语言理论的大胆重构为学生建立丰富而持久的知识体系提供了坚实的基础。 | |
评介: |
UNIX
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程序员和软件工程师。 | |
评介: |
UNIX Curses Explained UNIX Curses解释 | |
作者: Berny Goodheart | |
年份: 1991 | |
补充材料或勘误表: N/A | |
官方描述: 完整地记录Curses库,并提供UNIX Curses的详细解释。 包含完整的字母参考部分,以及使用Curses,窗口,颜色处理,替代字符集,垫和终端的许多清晰示例。 | |
评介: |
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技巧和技术,包括:
如果你读过史蒂文斯最畅销的第一版UNIX网络编程,这本书将其IPC覆盖范围扩大了五倍! 你不仅会从外部了解IPC。“你实际上将创建Posix消息队列,读写锁和信号量的实现,从而深入了解这些功能,而这些功能根本无法在别处获得。 这本书包含大量的新源代码-所有经过精心优化并可在Web上获得。 你甚至可以找到使用消息传递带宽和延迟程序以及线程和进程同步程序来衡量IPC性能的完整指南。 你对IPC的理解越好,你的UNIX软件就会运行得越好。 《UNIX网络编程,第2卷,第二版》包含所有你需要知道的内容。 | |
评介: |
The Unix Programming Environment Unix编程环境 | |
作者: Brian W. Kernighan, and Rob Pike | |
年份: 1983 | |
补充材料或勘误表: Link | |
官方描述: 本书专为初次和有经验的用户而设计,详细描述了UNIX® 编程环境和理念。 读者不仅可以了解如何使用系统,其组件和程序,还可以了解它们如何适应整个环境。 | |
评介: |