我下学期要上一门本科生的操作系统课程,这是一本推荐的书。我想知道你是否仍然推荐在Unix环境第一版而不是第二版中使用高级编程。我知道你不能推荐一本你没有学过的书(不是我想要的),但我想知道是否有人读过/拥有这两个版本,他们是否觉得第一版仍然有意义,或者由于它的年龄(写于1992年),我会更好地投资第二版。我对unix知之甚少,在看了第一版之后,它似乎包含了丰富的信息,请让我知道你的想法。
发布于 2011-12-07 06:59:00
这是一本好书,第一版也不是很过时。Unix的主要目的是限制功能和接口随时间的变化。这本书的旧版本仍然非常有效,并且在19年内只有两个版本的事实说明了unix库和实用程序的稳定性。当然,你的教授应该能够解释你可能会遇到的差异。
发布于 2011-12-07 12:11:35
来自the book's web site
是UNIX®环境中的高级编程的第二版,已经进行了更新,以反映当代操作系统和最近的标准变化。此外,还对示例章节进行了全面检查。用于测试本书中的示例的四个平台包括FreeBSD 5.2.1、Linux2.4.22、MacOSX10.3和Solaris9。这些平台是一个移动目标,很可能现在有更新的版本可用,因此您的使用范围可能会有所不同。
主要的变化包括增加了一个关于套接字的章节,两个关于线程的章节,以及删除了讨论调制解调器通信的章节,尽管这一丢失的章节可以在这里找到。此外,重新编写了打印机通信章节,以说明当今基于网络的打印机。
在我看来,这些变化中最有价值的是使用现代平台进行测试。APUE 1/e几乎没有提到Linux,当然也没有涉及OS,因为它还没有被创建出来。2/e解决了这个问题。
这并不是说APUE 1/e对于Linux和OS系统编程是无用的。多年来,我在Linux上成功地使用了它。我想不出任何时候,它所涵盖的主题没有隐含地涵盖至少一种在Linux上做这件事的方法。主要的困难是,当有多种方法做某事时,APUE通常会提供所有方法,但对于1/e,您必须尝试所有方法才能找出哪种Linux支持。OS的问题更严重,因为它的内核不如Linux的那么通俗。
我不会错过我的1/e版本中关于线程和套接字的章节,因为我有其他的书来介绍这方面的内容。作为一名新的系统程序员,你会发现它们很有价值,直到你找到理由在这些领域获得更全面的东西。它们都是值得全书阅读的主题。(货架满了,真的。)
总之,底线是,尽管我买了2/e上班,但我仍然有我的1/e副本。这份1/e的拷贝刚刚回家了。它仍然很有用。
https://stackoverflow.com/questions/8408055
复制相似问题