UNIX情况初级编程(第3版)读后感摘抄

UNIX情况初级编程(第3版)读后感摘抄

2020-10-30热度:作者:hchj5.com来源:好词好句网

话题:UNIX环境高级编程(第3版) 读后感 

  《UNIX环境高级编程(第3版)》是一本由史蒂文斯 (W.Richard Stevens) / 拉戈 (S著作,人民邮电出版社出版的平装图书,本书定价:128.00元,页数:812,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。

  《UNIX环境高级编程(第3版)》精选点评:

  ●好书

  ●当时真是充实

  ●2009-04-01

  ●手册

  ●校招就靠这本书与UNP,搞定了腾讯和阿里

  ●翻译问题:364页倒数第五行,signop指向的整数包含发送信号的数量。此处数量应该为编号(我猜原文是the number of signal)。

  ●初读感到非常晦涩难懂,罗列了一堆的标准和函数,让人找不着北。断断续续地整体读下来(到16章网络IPC,没有动力继续看下去了),终于对UNIX的IO,线程,进程,信号,IPC等有了个系统的认识,但谈不上深刻理解。功力不够深厚,还得加把劲。

  ●可以挑选一些章节重点阅读,大部分内容作为查阅的资料

  ●高山仰止。

  ●api手册

  《UNIX环境高级编程(第3版)》读后感(一):翻译一般

  翻译水平一般,基本上是比谷歌翻译稍加改进的水平。还是读英文版的好。

  比如这一段:

If times is a non-null pointer and either tv_nsec field has a value other than UTIME_NOW or UTIME_OMIT, the effective user ID of the process must equal the owner ID of the file, or the process must be a superuser process. Merely having write permission for the file is not adequate.

  中文书籍:

  “如果 times 是非空指针,并且任一 tv_nsec 字段的值既不是 UTIME_NOW 也不是UTIME_OMIT,则进程的有效用户ID必须等于该文件的所有者ID,或者进程必须是一个超级用户进程。对文件只具有写权限是不够的。”

  谷歌翻译:

  如果times是非空指针且tv_nsec字段的值不是UTIME_NOW或UTIME_OMIT,则进程的有效用户ID必须等于文件的所有者ID,否则进程必须是超级用户进程。仅仅拥有该文件的写入权限是不够的。

  《UNIX环境高级编程(第3版)》读后感(二):毫无疑问的经典, 程序员必读之书

  刚才, 在整理mac里面的电子书时, 翻到了这本书. 上面布满了密密麻麻的红色的笔记.

  这本书, 看过也有一段时间了. 而此时的我, 也已经不再是一个程序员了.

  离开编程这个职业, 是一种解脱. 你不需要埋头苦想一个模型如何搭建, 不用苦苦地在源码里寻找问题的答案, 不用繁复地单步debug定位问题.

  但是, 翻到这本书, 还是令我心情澎湃.

  想当年, 转行学习计算机, 初心是为了了解计算机的工作原理. 在看完了计算机的几门理论基础后, 我的目标转向了linux. 然而为稻粱谋, 我还是很快就去找了一份工作, 把对linux研究的期待留在后面.

  可惜, 这么些年过去了, 我并没有真正研究过linux. 一直以来, 以为linux会很难. 没有研究linux, 总是让我对专业底气不足.

  终于, 有一天, 我下决心开始看这本书.

  意想不到的是, 那时的第一天, 我就看掉了四章. 第二天又看了两章. 前前后后, 一个半月就把这本看起来相当厚的书看完了.

  这真的是一部好书. 看起来厚, 其实并不难. 所谓的"高级", 其实只不过是"入门". 这是所有程序员都必须的基础啊.

  作者写得真是好啊, 从头到尾, 废话不多. 相比于其它的技术书, 此书语言相当清晰, 很少有含糊不清的地方. 此书的翻译也真得不错, 有时会忘掉原来这本书是翻译的.

  但, 此书有一个地方曾经让我非常想吐嘈. 那就是此书的第十五章, 并于IPC的内容. 章节安全不合理, 让当时的我读起来异常痛苦, 需要前前后后翻阅, 而且例子很少.

  《UNIX环境高级编程(第3版)》读后感(三):Unix/Linux系统软件工程师的法宝

  现在是18年8月3日,书年初就读完了,拖了好久,现在才来写读后感。隔了这么长时间,仍然记得书中一些让我印象深刻的地方,比如library call与system call的区别,各种Unix标准化组织和实现,signal,多进程,多线程,socket编程等。读完这本书,别人提到这些概念,你就不会一脸懵逼了。对Unix系统编程,你也不会太心虚了。

  17年的主要工作是往NonSop服务器上移植CPython解释器以及运行库, 这本书帮了我的大忙。项目18年初已经完成,书也随着读完。通过这本书和这个项目,感觉自己算是个合格的(Unix/Linux)系统软件工程师了。我们的服务器操作系统不是标准的Unix系统,虽然也尽量向Posix标准靠拢,但是到目前为止仍然存在不少差异,这给这份工作带来了很大的挑战。比如好多接口或者接口的参数我们的系统上没有,或者存在但是功能或者返回值情况与Posix标准不一致,signal信号机制比较老旧,Python用到了很多第三方的库而这些库有的在我们的系统上也存在问题,公司自己的编译器,公司自己实现的线程库等等。总之问题多而杂,通过这个项目学到了不少知识,存在的问题是大部分知识都学的不够深入。这需要花时间慢慢做相关的项目来积累经验。

  说回书上来,前面几章介绍Unix基础知识和Unix标准以及各种Unix系统的实现,内容比较简单,读起来能够开阔不少眼界。

  后面几章则介绍并解释了Unix系统的各种函数接口。告诉你这些函数的基本功能,参数情况,函数正常情况下或者出错误情况下的返回值是什么。有的函数有一些小的程序实现例子。有的函数,作者会介绍它过去的情况,后来碰到了什么问题,如何发展成现在这个样子,让你知其然并知其所以然。还有的函数,会介绍各种不同的Unix系统对这个函数实现的差异之处。(我在读这部分时总感觉是在读这些函数的man或者Posix手册信息)这部分内容有的地方比较枯燥,单纯读、看的话可能效果并不好,如果手头能有相关的项目来练习实践的话,那就十分理想了。

  总之,不管是从实用性上,还是从开阔眼界上,这本书都是极佳的,值得力荐。

  《UNIX环境高级编程(第3版)》读后感(四):关于翻译

  4.5节 p80

  “进程每次打开、创建或删除一个文件时,内核就进行文件访问权限测试,而这种测试可能涉及文件的所有者(st_uid和st_gid)、进程的有效ID(有效用户ID和有效组ID)以及进程的附属组ID(若支持的话)。两个所有者ID是文件的性质,而两个有效ID和附属组ID则是进程的性质。”

  英语原文:

  “The file access tests that the kernel performs each time a process opens, creates, or deletes a file depend on the owners of the file (st_uid and st_gid), the effective IDs of the process (effective user ID and effective group ID), and the supplementary group IDs of the process, if supported. The two owner IDs are properties of the file, whereas the two effective IDs and the supplementary group IDs are properties of the process. ”

  这里properties这个词直译为“性质”我觉得是偷懒,没表达透实际的意思,我也是看了英文版才理解到含义。

  4.8节 p83

  quot;umask函数为进程设置文件模式创建屏蔽字"

  这是说的是什么鬼?

  英文原文:

  The umask function sets the file mode creation mask for the process

  8.11节 p205

  “仅当对程序文件设置了设置用户ID位时,exec函数才设置有效用户ID。如果设置用户ID位没有设置,exec函数不会改变有效用户ID,而将维持其现有值。任何时候都可以调用setuid,将有效用户ID设置为实际用户ID或保存的设置用户ID。自然地,不能将有效用户ID设置为任一随机值。”

  我第一次看这句话的时候完全被绕晕了,来看英文原文:

  The effective user ID is set by the exec functions only if the set-user-ID bit is set for the program file. If the set-user-ID bit is not set, the exec functions leave the effective user ID as its current value. We can call setuid at any time to set the effective user ID to either the real user ID or the saved set-user-ID. Naturally, we can't set the effective user ID to any random value.

  有没有觉得中文版翻译就是在逗你玩儿~~

  effective user ID、saved set-user-ID这几个词如果不翻译的话其实读起来反而还流畅一点。

  8.17节

  把wall clock time翻译成了“墙上时钟时间”,比起“壁钟时间”差远了

  看wiki的解释:https://en.wikipedia.org/wiki/Wall-clock_time,这根本无法跟“墙上时钟时间”联系起来好吧