《UNIX环境高级编程》值得看吗,《UNIX环境高级编程》怎么样

时间:2021-06-25 14:35 作者:IIS7 admin

    建议不要一开始看这本书。可以先看其他简单的,这本书统筹了所有流行的unix实现。复杂繁琐,适合高级可移植编码需求的人看。你可以看看wrox系列的linux编程再回来看这本。这本需要很好的知识积累。不然看完没有太多收获。而且这本书是一本字典。
    第一次接触这本书,大概是2017年,当时也觉得好难,看到网络IPC部分实在看不懂,就没往下看了。
    这段时间又在看,不存在看不懂,反而觉得专家就是专家,每句话都值得继续斟酌。这本书如何看懂,也来说说看法。要看懂这本书的确需要基础,满足以下条件基本不是大问题。1、C语言基础,搞熟悉,完全理解最好的;2、C专家编程这本书上的所有内容,必须完全理解;3、必须会使用linux或mac的命令好模式,必须比较熟悉。说一下目前看完的章节的认知:
    1、了解何为内核,大概怎么工作的,网络上查查文章看看,可能先看过windows核心编程(一样看不懂的一本书,但是积累了概念,不确定第一次看这本书的新手究竟会怎么样)。第一章有一张,应用程序,库,shell,内核之间的关系图。这张图相当关键,必须搞懂。
    2、第二章讲ISO C POSIX SUS 规范之间的关系,与定义,这些是UNIX系统规范,注意理解。如果初学稍微记一记。完全理解不太可能。但是要理解,后面章节所有的内容都是围绕这些内容来介绍的。规范如何定义,实现如何满足规范。
    3、第三章、第五章关于IO的理解,注意广义IO与非广义IO的区别,一般学C的时候,IO仅仅是标准IO与文件IO。而第三章与第五章说的IO还有,套接字、终端、打印机等等这些可以叫设备IO。
    4、第四章,如果对linux使用了解深刻,理解上不是大问题,主要在介绍linux一切结文件的理念。
    5、第六章,需要先对linux有较深的了解。7、目前我看到第七章,这里会有C专家编程说过的很多内容。如果能理解C专家编程上说过的内容,这章很容易理解。

    总结学习技巧:
    1、区分内核调用(书上是系统调用),第二章说的POSIX与SUS规范中指明的头文件,一般属于内核调用。ISO C说明的是库调用。看这本书,这一定要区分。一次记不住,看到一定章节,返回来看。到第四章我又重新看过一遍,因为对第二章有点感觉。
    2、边记忆,边理解,边总结,边复习,最好是又一只笔,画一画帮助理解。不理解的一定查资料先搞清楚。没章的练习题做一做,这是必须的。可以测试理解效果。这步相当重要,一旦脱节,后续就会慢慢看不懂。(这方法对我是很管用,用已知知识,分析未知知识,同时也帮助记忆)。
    3、注意跨章节的知识,不明白不要堵塞住,只要不影响理解。接着看,自己分辨出这些知识点是需要后面的知识点做铺垫,才能看懂。
    4、如果看过linux运维使用知识,一定要注意,书中讲的知识,是从程序角度展开的,理解也必须按照这思维模式来理解。否则,很多知识点,越记越容易混淆。
    5、小伙伴们大部分都看的第三版,代码编译得有规范版本意识比如书上例子遵循C99规范,不要搞C11,否则也容易出问题。
    6、作者给出的4种常用系统不要排斥,如果有必要可以,4种系统都搞一搞,初学建议linux或者如果熟悉mac用mac也可以,系统多了可能是负担,我因为已经这么搞过也不觉得多。
    7、如果用linux可能会看到,书上说的东西与真实的系统定义可能不太一样,记住这本书在教通用的UNIX系统规范,实现可能会有区别。很多地方规范只是给出,实现系统必须遵循的最小规范。有些小伙伴说,现在编程看linux编程就可以,前面给的理由也说明,为什么不直接学linux编程,因为我们在学通用规范。
    8、第三版翻译版,很多地方翻译错误或者翻译不准确,一定准备一本英文版配合翻译版一起看。翻译版看不太明白的内容,请检查英文原版对应章节。该书的翻译质量不是绝对好,看到第七章为止,已经发现很多翻译问题。【翻译问题:具体不说了,小毛病不断,大毛病不少。本来QQ空间有记录,QQ空间管理员审核不通过还不让发】
    9、很多函数其实很难记忆,说说记忆技巧,多想想英文名称怎么表达的,词汇不够,看原版可能会找到适合词汇。