Linux系统编程(第2版)

[美] Robert Love

出版时间

2014-04-30

ISBN

9787115346353

评分

★★★★★

标签

计算机

书籍介绍
这本书最鲜明的特点,是它把Linux系统编程讲成了一个"有血有肉"的整体,而非零散系统调用的堆砌。作者Robert Love本身就是内核开发者,他写进程时强调"进程不只是运行的程序,还包含数据、资源和状态",写文件时从"打开才能操作"这一朴素动作切入,引出文件表、文件描述符、inode副本这些底层结构——读者能清晰看到API背后的内核运作逻辑。书中对信号"单向异步通知"、真实uid、部分写等细节的讲解,比APUE更聚焦Linux、更贴近实际版本。但正因如此,它也存在争议:内容简练到缺少IPC与网络编程,对初学者和资深者都不算友好,加上中文版翻译质量饱受诟病,阅读体验大打折扣。它适合已有一定基础、想快速建立Linux系统观的读者,配合man手册使用效果更佳。
作者简介
Robert Love在很早期就一直使用Linux并贡献代码,包括对Linux内核和GNOME桌面环境的贡献。Robert Love是Google软件工程师,是Android设计和开发团队成员。目前,他致力于Google的Web搜索架构。Robert获得了Florida大学的双学位:计算机科学理学学士和数学文学学士。
AI导读
核心看点
  • 系统调用手册式讲解,涵盖文件I/O、进程、线程等核心主题
  • 深入剖析Linux内核机制,如文件描述符、信号与权限管理
  • 提供优化代码性能的内幕指南,适合追求高效开发的程序员
读者共识
  • 内容专业且精炼,是Linux系统编程的重要参考资源
  • 中文翻译错误多且漏译严重,严重影响阅读体验和理解
  • 适合作为快速回顾或查询手册,不适合零基础初学者入门
精彩摘录
  • "进程(process)是执行中的目标码(object code):正在运行的程序。但它不仅仅是目标码,进程由数据、资源、状态以及一个虚拟的计算机组成。"
  • "Linux 中的授权机制由用户(user)和组(group)提供。每个用户都会被分配一个独一无二的正整数,称为用户标识符(user ID,简称 uid)。每个进程恰好会被关联到一个 uid,用来识别运行进程的用户,这被称为进程的真实用户标识符(real uid)。"
  • "信号(signal)是一种单向一部通知机制。信号可以从内核送往一个进程,从一个进程送往另一个进程,或者从一个进程送给它自己。"
  • "一个文件必须先打开,才可以对它进行操作。内核会替每个进程维护一份已打开文件列表,称为文件表(file table)。此表是通过非负整数被索引,而此非负整数称为文件描述符(file descriptor,缩写 fd)。"
  • "默认情况下,子进程会取得其父进程的文件表。"
  • "该表(file table)中每个条目内含与已打开文件相关的信息,包括一个指针(指向文件 inode 在内存中的副本)以及相关的元数据(例如文件位置与访问模式)。"
  • "第一个文件系统会被挂载到命名空间的 root 结点,“/”,这被称为根文件系统(root file system)。Linux 系统通常会具有一个根文件系统。"
目录
第1章 入门和基本概念 1
1.1 系统编程 1
1.1.1 为什么要学习系统编程 2
1.1.2 系统编程的基础 2
1.1.3 系统调用 3

显示全部
用户评论
TLPI简化版
翻译我想草泥马
@2016-03-24 22:55:52
翻译错误有点多,五一三天整体阅读畅快!
看了大家的评论可能高手比较多吧,很多都觉得翻译的比较烂。至少翻译对我来说足够理解这些内容的大致。相比apue这本书薄了很多,几乎只讲Linux下的系统编程,同时针对版本也比较新,io模型较apue讲的更接地气。适合我这种初学者吧。
译者在致谢中感谢了她的婆婆,如此良好的婆媳关系也掩盖不了这本书翻译得不太好,本来可以给五星的。尽管如此,仍然推荐广大想学习Linux系统编程的同学阅读学习。
下载
收藏