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 ] surveys the most important algorithms and data structures in use today. 教科书分为六章:
在科学,工程和工业领域的应用是本文的主要特征。 我们通过检查每个算法对特定应用的影响来激励我们解决的每个算法。 | |
评介: |
|
The Art of Computer Programming |
Author(s): Donald E. Knuth | |
Year: 2011 | |
Supplementary material and/or errata: Link | |
Official Description: 1999年结束时,这些书被 “美国科学家” 评为本世纪最佳的十二本物理科学专著之一,以及: 狄拉克论量子力学,爱因斯坦论相对论,曼德尔布罗特论分形,鲍林论化学键,罗素和怀特黑德论数学基础,冯·诺伊曼和摩根斯坦论博弈论,维纳论控制论,伍德沃德和霍夫曼论轨道对称性,费曼论量子电动力学,史密斯论结构搜索,爱因斯坦文集。哇! | |
Review: |
Introduction to Algorithms, 3rd ed. 算法导论,第三版。 | |
作者: Thomas H. Cormen, Charles E. Leiserson, Ronald L Rivest, Clifford Stein | |
年份: 2009 | |
补充材料或勘误表: Link | |
官方描述: 一些关于算法的书很严格,但不完整; 其他人则涵盖大量材料,但缺乏严谨性。 “算法导论” 独特地结合了严谨性和全面性。 这本书深入地涵盖了广泛的算法,但使各级读者都可以使用它们的设计和分析。 每一章都相对自成体系,可以作为一个学习单元。 这些算法以英语和伪代码进行了描述,这些伪代码旨在使做过一些编程的人可读。 在不牺牲覆盖深度或数学严谨性的情况下,解释一直保持基本状态。
第一版成为世界各地大学中广泛使用的文本,也是专业人士的标准参考。 第二版的新章节介绍了算法的作用,概率分析和随机算法以及线性规划。 第三版已经修订和更新。 它包括两个全新的章节,关于van Emde Boas树和多线程算法,以及关于递归的章节的大量补充 (现在称为 “分而治之”)。 它具有改进的动态编程和贪婪算法的处理方法,以及在流网络上的材料中基于边缘的流的新概念。 这个版本增加了许多新的练习和问题。 从第三版开始,这本教科书由麻省理工学院出版社独家出版。 | |
评介: |
编译器理论
Assemblers and Loaders 汇编程序和载入器 | |
作者: David Salomon | |
年份: 1993 | |
补充材料或勘误表: Freely available | |
官方描述: 这本书是在1985-1992期间编写的,是根据计算机组织的课堂笔记开发的。 它包括许多提供答案的练习,并在每一章之后复习问题。 这本书装订成平装本,封面五颜六色。 | |
评介: |
编译器: 原理、技术和工具 | |
作者: Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman | |
年份: 2006 | |
补充材料或勘误表: Link | |
官方描述: “编译器: 原理,技术和工具”,全世界的教授,学生和开发人员都将其称为 “龙书”,并提供新版本。 每一章都经过了全面修订,以反映1986年上一版出版时软件工程,编程语言和计算机体系结构的发展。 作者认识到很少有读者会继续构建编译器,因此将重点放在软件设计和软件开发中面临的更广泛的问题上。
新章节包括: 第10章 指令级并行性 | |
评介: |
Linkers and Loaders 链接器和装载器 | |
作者: John R. Levine | |
年份: 1999 | |
补充材料或勘误表: Free manuscript, Errata and code | |
官方描述: 无论您的编程语言是什么,无论您的平台是什么,您都可能一直在使用链接器和加载器函数。 但是你知道如何利用它们来发挥最大的优势吗?直到现在,随着链接器和装载机的出版,才有一本权威的书完全致力于这些根深蒂固的编译时和运行时过程。 本书首先对链接和加载进行了详细的比较说明,说明了各种编译器和操作系统之间的差异。 在此基础上,作者提出了明确的实用建议,以帮助您创建更快,更清洁的代码。 你将学会避免与Windows dll相关的陷阱,利用许多现代链接器支持的节省空间、提高性能的技术,充分利用UNIX ELF库方案,等等。 如果您对编程很认真,那么您将把这本独特的指南吞噬到该领域最不了解的主题之一。 Linkers & Loaders也是编译器和操作系统课程的理想补充文本。
特点
| |
评介: 写得很好,易于阅读,但透彻且信息丰富。它有足够的异想天开,使大多数读者发现一个枯燥的话题变得有趣。虽然当前版本现在有些过时,但它涵盖了人们需要了解链接编辑器和程序加载器如何工作的大部分内容。- 用户: 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/e' 适用于计算机网络或计算机科学,电气工程,CIS,MIS和业务部门的本科和研究生课程的网络入门。
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 |
Author(s): Gary R. Wright, Kevin R. Fall, and W. Richard Stevens | |
Year: 2011 (Vol1), 1995 (Vol2), 1996 (Vol3) | |
Supplementary material and/or errata: Volume 2, Volume 3 | |
Official Description: The TCP/IP Illustrated books are praised for their highly effective visual approach to the essential TCP/IP topics facing today's networking professionals. The word 'illustrated' distinguishes this book from the rest. By forcing conditions to occur, and then displaying the results, TCP/IP Illustrated gives readers a much greater understanding of the concepts than words alone can provide. The books are noted for their diagrams and clear and readable writing style. | |
Review: |
外围设备
实现
USB
USB: The Universal Serial Bus 通用串行总线 | |
作者: Benjamin David Lunt | |
年份: 2018 | |
补充材料或勘误表: Link | |
官方描述: 这本书是为那些正在构建操作系统,编写嵌入式代码,或者只是想学习如何直接通过硬件编程与USB硬件和附加设备通信的人准备的。
本书将向您展示如何查找和初始化四个主要USB主机控制器中的每一个,设置USB堆栈以及与连接的设备进行通信。 它具有完成此操作所需的每个步骤的详细信息和示例。 UHCI,OHCI,EHCI和新的超高速xHCI控制器的详细信息易于遵循和理解。 Resources Included:
| |
评介: https://www.amazon.com/dp/1717425364/#customerReviews |
操作系统
Theory
Modern Operating Systems, 3rd ed. 现代操作系统,第三版。 | |
作者: Andrew S. Tanenbaum | |
年份: 2007 | |
补充材料或勘误表: Link | |
官方描述: 用于计算机科学,计算机工程和电气工程程序中操作系统的入门课程。
这一全球畅销书的广泛预期修订结合了操作系统 (OS) 技术的最新发展。 第三版包括Linux、Windows、嵌入式实时和多媒体系统等相关OS的最新资料。 Tanenbaum还根据他作为操作系统研究人员的经验提供有关当前研究的信息。 学生资源包括:
受密码保护的讲师资源 (选择资源选项卡以查看可下载的文件):
Modern Operating Systems, 3e is the recipient of the Text and Authors Association (TAA) 2010 McGuffey Longevity Award. McGuffey长寿奖表彰了随着时间的推移而证明卓越的教科书。 | |
评介: |
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 | |
官方描述: 对操作系统原理的最新调查。 涵盖基本技术以及当代设计问题,例如线程,微内核,SMPs,实时系统,多处理器调度,嵌入式OSs,分布式系统,集群,安全性和面向对象的设计。 第三版和第四版获得了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 - 是一本在对计算机操作系统的内部工作感兴趣的计算机程序员中非常受欢迎的书。 如最初打印的左侧显示,它以前的标题为 “” “开发自己的32位操作系统” “(ISBN 0-672-30655-7)”,并由SAMS/MacMillan出版。 我们已经将这本书重命名为 “MMURTL-V1.0” (ISBN 1-58853-000-0) ”,印刷版本是“ 完美装订 ”软封面 (请参阅页面最底部的附加图片)。 它被重命名,因为这是作者最初想要的名称。 Mmult 是 m 基于essage的 multitasking retime 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 | |
官方描述: 操作系统设计与实现,3e',是计算机操作系统入门课程的理想选择。 由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 的设计,开发和实现的第一手说明。 它为所有渴望从两位世界级软件工程师的经验中学习的人提供了对工作站开发理论和实践的深刻见解。 Project Oberon includes: | |
评介: |
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. |
Author(s): Mark Russinovich, David A. Solomon, and Alex Ionescu | |
Year: 2012 | |
Supplementary material and/or errata: Link | |
Official Description: Windows Internals, 6th edition covers the internals of the core kernel components of the Windows 7 and Windows Server 2008 R2 operating systems. This classic book will help you:
第六版分两部分发布: 第1部分现在可用,第2部分将9月。 拆分的原因是为了尽快将内容交到读者手中。 | |
Review: |
编程语言
理论
实现
C
C: A Reference Manual, 5th ed. C: 参考手册,第5版。 | |
作者: Samuel P. Harbison III, and Guy L. Steele Jr. | |
年份: 2002 | |
补充材料或勘误表: Link | |
官方描述: 这本最畅销的权威参考手册提供了c语言、运行时库的完整描述,以及强调正确性、可移植性和可维护性的C编程风格。
Describing the C language more clearly and in more detail than any other book, authors Samuel P. Harbison and Guy L. Steele Jr. provide in a single manual:
经过彻底修订和更新,扩展的第五版包括最新的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编程至关重要的关键功能 (例如指针) 的阐述。 我们对原来的例子进行了提炼,并在几个章节中增加了新的例子。 例如,将声明转换为单词的程序增加了对复杂声明的处理,反之亦然。 与以前一样,所有示例都已直接从文本中进行了测试,文本为机器可读形式。 正如我们在第一版的第一个序言中所说,C “随着人们对它的体验的增长而变得很好。” 有了十多年的经验,我们仍然有这种感觉。我们希望这本书能帮助你学习C并很好地使用它。 | |
评介: |
The CERT C Secure Coding Standard CERT C安全编码标准 | |
作者: Robert C. Seacord | |
年份: 2008 | |
补充材料或勘误表: Freely available | |
官方描述: 软件安全对组织的运营和资产以及个人福利具有重大影响。 要创建安全的软件,开发人员必须知道危险在哪里。 用c语言进行安全编程可能比许多经验丰富的程序员所认为的还要困难。
这本书是一个必不可少的桌面参考,记录了 “'证书安全编码标准'” 的第一个正式版本。 该标准逐项列出了那些编码错误,这些错误是C ++ 中软件漏洞的根本原因,并按严重性、利用可能性和补救成本对它们进行了优先排序。 每个指南都提供了不安全代码的示例以及安全的替代实现。 如果统一应用,这些准则将消除导致缓冲区溢出、格式字符串漏洞、整数溢出和其他常见软件漏洞的关键编码错误。 | |
评介: |
Security
The Art of Computer Virus Research and Defense 计算机病毒研究与防御的艺术 | |
作者: Peter Szor | |
年份: 2005 | |
补充材料或勘误表: Link | |
官方描述: 赛门铁克的首席反病毒研究人员撰写了有关当代病毒威胁,防御技术和分析工具的权威指南。 与大多数有关计算机病毒es的书籍不同,“” ““ 计算机病毒研究与防御的艺术 ”” 是严格为白帽子编写的参考: 负责保护其组织免受恶意软件侵害的IT和安全专业人员。 Peter Szor系统地涵盖了您需要了解的所有内容,包括病毒行为和分类,保护策略,防病毒和蠕虫阻止技术等等。
Szor介绍了恶意软件和保护方面的最新技术,提供了专业人员处理日益复杂的攻击所需的全部技术细节。 在此过程中,他提供了有关代码变质和其他新兴技术的广泛信息,因此您可以预测并为未来的威胁做好准备。 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外壳” 已被更新和刷新,以说明所有最新更改。 实际上,第三版是bash shell迄今为止最有价值的指南。
任何优秀的程序员都知道,Linux操作系统的用户面对的第一件事就是shell,即UNIX术语,用于系统的用户界面。 In other words, it's what lets you communicate with the computer via the keyboard and display. 掌握bash shell听起来可能很简单,但事实并非如此。 实际上,有许多复杂性需要仔细解释,这正是 “学习bash外壳” 所提供的。 如果您是shell编程的新手,则本书提供了出色的介绍,涵盖了从最基本到最先进的功能的所有内容。 而且,如果您已经编写了多年的shell脚本,那么它提供了一种找出新shell提供的功能的好方法。 “学习bash外壳” 还充满了外壳命令和程序的实际示例,这些示例将使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完整介绍文本编辑:
How to make full use of vim:
还包括其他三个流行的 “vi” 克隆的覆盖范围-“nvi”,“ elvis ”和“ vile ”-。 你会找到几个有价值的附录,包括按字母顺序快速引用常规 “vi” 和 “vim” 的“ vi ”和“ ex” 模式命令,以及更新的附录 “vi” 和互联网。 如果您使用Linux或Unix,则需要学习 “vi” 或 “vim” 知识,无论哪种情况,阅读本书都是必不可少的。 读完这本书后,编辑的选择对你来说也是显而易见的。 | |
评介: |
使用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”,使用各种平台和语言。 在这本书中,他热心地阐述了如何使您的构建尽可能高效,减少维护,避免错误以及彻底了解maw在做什么。 关于C和Java的章节提供了针对这些语言的项目优化的makefile条目。 作者甚至还讨论了用于构建这本书的makefile。 | |
评介: |
计算理论
计算理论导论,第3版。 | |
作者: Michael Sipser | |
年份: 2012 | |
补充材料或勘误表: Link, Errata | |
官方描述: 现在,你可以通过Sipser独特的,市场领先的计算理论介绍3E清楚地向学生展示最复杂的计算理论主题。 作为当今计算理论课程的第一选择,这一备受期待的修订保留了无与伦比的清晰度和详尽的报道,使其成为高年级本科生和入门研究生的主要教材。 此版本延续了作者Michael Sipser的著名,平易近人的风格,并在关键领域进行了及时的修订,其他练习以及更难忘的示例。 确定性上下文无关语言的新的首创理论处理是更好地理解解析和LR(k) 语法的理想选择。 本版的精致演示确保了值得信赖的准确性和清晰度,使具有挑战性的计算理论研究易于学生理解和直观,同时保持学科的严谨性和形式主义。 读者对计算机硬件,软件和应用程序的基本数学特性有了深入的了解,并结合了实用和哲学范围以及数学处理方法,包括先进的定理和证明。 计算理论简介,3e的全面覆盖使其成为研究理论计算的人们的理想的持续参考工具。 | |
评介: |
|
The Language of Machines: An Introduction to Computability and Formal Languages |
Author(s): Robert W Floyd, and Richard Beigel | |
Year: 1994 | |
Supplementary material and/or errata: Link | |
Official Description: 在《机器的语言》中,罗伯特·弗洛伊德 (Robert Floyd) 和理查德·贝格尔 (Richard Beigel) 彻底改变了可计算性和语言的教学。 他们提出的无非是重新定义自动机理论的组成部分: 他们的统一计算模型前所未有地阐明了这一主题。 弗洛伊德 (Floyd) 和贝格尔 (Beigel) 的单一模型涵盖了所有传统类型的计算机,甚至是 “现实世界” 的电子计算机。
Floyd和Beigel使用在斯坦福大学,耶鲁大学和约翰·霍普金斯大学成功进行了课堂测试的方法,提供了有价值的创新:
弗洛伊德·贝格尔 (Floyd an Beigel) 对可计算性和形式语言理论的大胆重构为学生建立丰富而持久的知识体系提供了坚实的基础。 | |
Review: |
UNIX
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 |
Author(s): Andrew M. Rudoff, Bill Fenner, and W. Richard Stevens | |
Year: 2003 (Vol1), 1998 (Vol2) | |
Supplementary material and/or errata: Volume 1, Volume 2 | |
Official Description: 这本书是为那些想要编写使用称为套接字的应用程序接口 (API) 相互通信的程序的人准备的。 一些读者可能已经非常熟悉套接字,因为该模型已成为网络编程的代名词。 其他人可能需要从头开始介绍插座。 本书的目标是为初学者和专业人士,开发新的网络感知应用程序以及维护现有代码的人以及那些只想了解其网络组件的人提供网络编程指南系统功能。
本文中的所有示例都是在Unix系统上测试的实际可运行的代码。 但是,许多非Unix系统都支持sockets API,并且这些示例在很大程度上与操作系统无关,我们提出的一般概念也是如此。 实际上,每个操作系统 (OS) 都提供了许多网络感知应用程序,例如Web浏览器,电子邮件客户端和文件共享服务器。 我们将讨论这些应用程序通常划分为客户端和服务器,并在整个文本中多次编写我们自己的小示例。 实现良好的进程间通信 (IPC) 几乎是每个非平凡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卷,第二版。 | |
Review: |
The Unix Programming Environment Unix编程环境 | |
作者: Brian W. Kernighan, and Rob Pike | |
年份: 1983 | |
补充材料或勘误表: Link | |
官方描述: 本书专为初次和有经验的用户而设计,详细描述了UNIX® 编程环境和理念。 读者不仅可以了解如何使用系统,其组件和程序,还可以了解它们如何适应整个环境。 | |
评介: |
UNIX: 历史和回忆录 | |
作者: Brian W. Kernighan | |
年份: 2019 | |
补充材料或勘误表: | |
官方描述: 关于Unix如何开始以及它如何占领世界的迷人故事。 Brian Kernighan是Unix开发人员最初小组的成员,是几个基本Unix程序的创建者,并且是《C编程语言》和《Unix编程环境》等经典书籍的合著者。" | |
评介: |