写点什么

UNIX 环境高级编程:Stephen Rago 访谈

  • 2013-10-23
  • 本文字数:2025 字

    阅读完需:约 7 分钟

《UNIX 环境高级编程》(Advanced Programming in the UNIX Environment,APUE)被誉为基于 UNIX 的编程环境的圣经。本书全面介绍了 UNIX 环境上的 C 语言编程,涵盖文件 I/O、进程、信号、线程、进程间通信和套接字(Socket)等主题。第 3 版结合 FreeBSD 8、Linux 3.2.0、OS X 10.6.8 和 Solaris 10 讨论了这些概念。

APUE 的第3 版已于近期出版。InfoQ 有机会采访了其作者Stephen Rago,谈到了这一最新版本以及UNIX 开发。

InfoQ**:本书第1版出版于1992年,2005年更新过一版。在第3版中,你的主要目标和动机是什么?**

Stephen Rago在第 2 版出版之前,我一直受困于没有足够的时间来更新某些平台相关的内容。尤其是我想用 Linux 2.6 代替 2.4,因为 2.6 对 pthread 的支持更好一些,而且其表现与其他平台更为接近。但当时 2.4 仍然有很大的装机量,所以我保留了它。第 3 版用了我两年的时间才得以出版,因为在这期间,书中覆盖的平台频繁更新了好多次,我感觉自己一直在追赶。

InfoQ:你感觉哪部分写起来最有意思?

Rago这就好像问我最喜欢自己的哪个孩子。从遗传学角度讲,好父母不能厚此薄彼。我也一样。相对于我的工作,在 APUE 第 3 版上的工作是一次让我耳目一新的改变。我本质上是一位 C 程序员和操作系统开发人员,而 UNIX 系统的优雅超越了其他所有操作系统,所以每部分工作我都非常喜欢。

InfoQ**:与第2版相比,面向的读者有变化吗?比如说,这本书是面向职业开发人员的,还是面向学习相关编程知识的人员的,这方面是不是有所改变?**

RagoAPUE 最初是作为“Addison-Wesley 专业计算丛书”(Addison-Wesley Professional Computing Series)的一部分出版的,所以我假定读者是职业程序员。不过从我最近收到的提问问题的电子邮件来看,很多是来自学术界(对于赤裸裸地要答案的请求,我尽量不直接回复)。我知道一些系统编程类课程用到了这本书,我猜随着 UNIX 系统及其克隆产品在业务中越来越常见,越来越多的开发者都掌握了书中材料,所以本书面向的读者某种程度上也向学术界迁移了。或许也可以看做对这种改变的反映,我目前正在编写 APUE 第 3 版配套的教师手册,其中包括了书中所有习题的答案,还添加了一些书中没有的新习题。

在描述实际编程问题以及揭示很多 UNIX 系统接口的背景方面,这本书做得不错。所以我认为这本书可以很好地服务这两类读者。

InfoQ**:你有没有发现基于UNIX系统比较适合学术研究?这是因为其设计内在的特性,还是说只是因为相对于商业系统,其源代码很容易获得?**

Rago这两方面的原因使基于 UNIX 的系统用于学术研究非常理想。其设计简洁清晰,各种实现的源代码也可以免费获得,所以我们可以看到抽象的概念是如何映射为实际实现的。你可能需要把 UNIX 系统包含在“商业系统”中,因为很多业务都运行在 UNIX 系统之上。

InfoQ**:你感觉你的书在哪种环境上更受欢迎,是UNIXOS X还是其他系统?**

Rago:很难说。尽管我并没有一种很好的方法来衡量各种环境的受欢迎程度,但是从我收到的电子邮件来看,大部分人运行的都是某个版本的 Linux。

InfoQ**:考虑到C语言与UNIX的历史关系,所有例子都是用C写的。你有没有发现哪种语言能挑战C语言?C语言足够好了吗,还是说有新语言可以改进系统编程?**

Rago40 年来,C 语言一直是够用的。我工作过的地方曾经把 C++ 当做更好的 C,因为它会进行更强的类型检查。但是 C++ 如此庞大和复杂,使用起来非常困难。编写 C 程序时,我不需要不断地查参考书,以确定这样那样的特性应该如何使用;编写 C++ 程序就不是这样了。我更喜欢 C,因为可以用同一种语言处理高层和低层的东西,语言规范也足够简单,可以记在脑子里。操作系统需要与硬件交互,并基于高层构造提供功能,所以 C 语言可以很好地满足需求。使用底层操作系统所用的语言来编程会比较轻松。我还没研究过 Go 语言,但会找机会看一下,因为该语言尝试解决用 C 和 C++ 之类的语言构建大型项目时所遇到的某些软件工程问题。

InfoQ**:在花时间写书的时候,你有没有发现UNIX有何不足?**

Rago或许 UNIX 系统需要一些简单的特性使执行更安全。比如,在 IPC 通道(如命名管道或套接字)的一端很难获得一个进程的标识信息。但是 UNIX 系统起源于协同环境,所以它没有提供更多内置的认证基础设施这一点也很容易理解。但是相对于使用该系统能做的所有事情,这只是小瑕疵了。

关于 APUE 一书作者

Stephen A. Rago是《UNIX® System V 网络编程》(Addison-Wesley,1993)一书的作者。Rago 是贝尔实验室参与构建 UNIX System V Release 4 的开发者之一。他曾经是《UNIX 环境高级编程》第 1 版的技术审校者。Rago 目前是 NEC 美国实验室存储系统组的一名研究人员。

W. Richard Stevens是公认的 UNIX 和网络专家,也是一位备受尊重的作家,还是广受欢迎的讲师和咨询师。他最著名的是《UNIX 网络编程》、《UNIX 环境高级编程》和《TCP/IP 详解》等一系列书籍。

查看英文原文: Advanced UNIX Programming: An Interview with Stephen Rago

2013-10-23 06:4195402
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 151.5 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

文心快码发布AI IDE,智能体自动写代码,设计稿一键转代码,打造开发者个性化IDE

百度Geek说

编程智能体+MCP:让 AI 提取和总结微信聊天记录,再也不怕错过重要信息

阿里云云效

阿里云 通义灵码

用 Trae 入门 CloudWeGo-Kitex,包教包会!

火山引擎开发者社区

#Trae

“全球金牌敏捷课程” · 8月16-17日CSM认证课程 · Jim老师引导团队Agility与企业Agility话题

ShineScrum

Scrum Master

AI时代的数据智能跃迁:数据、工具与组织的进化

火山引擎开发者社区

AI

零基础音视频入门:你所不知道的Web前端音视频知识

JackJiang

想要靠设备管理来提升效率,首先得避开这5个坑!

积木链小链

数字化转型 智能制造 设备管理

【行业知识】水利管理业定义以及使用堡垒机的必要性

行云管家

网络安全 数据安全 堡垒机

Jim老师A-CSPO认证课程推荐文章视频集锦

ShineScrum

敏捷 #产品经理

Iontra助力减排1亿吨CO₂

财见

编程智能体+MCP:让 AI 提取和总结微信聊天记录,再也不怕错过重要信息

阿里巴巴云原生

阿里云 通义灵码

「宇树科技」年度营收超10亿元,13家“宇树链”企业梳理!

机器人头条

机器人 科技 人形机器人 具身智能 宇树科技

多模态数据湖焕新升级,企业新一代AI Native的数据基建

火山引擎开发者社区

人工智能

“团队敏捷教练进阶课程” 8月23-24日 · A-CSM认证周末班

ShineScrum

敏捷教练 Scrum Master A-CSM

移动AI一周年,5G-A和AI究竟把世界变成什么样?

脑极体

AI

如何用内网穿透远程访问Everything?实现随时随地快速检索文件

贝锐

内网穿透

2026杭州国际人工智能与应用场景展览会

AIOTE智博会

人工智能展览会 人工智能展会 人工智能博览会 人工智能展

Web前端入门:JavaScript DOM 节点查找常用方法

电子尖叫食人鱼

JavaScript 前端 Web

博睿数据发布!LLM在可观测性体系建设落地的30 大核心技术应用场景探索

博睿数据

AI 技术开发英语阅读 App

北京木奇移动技术有限公司

软件外包公司 AI英语学习 APP开发公司

福州等保测评公司名称汇总(2025整理)

行云管家

等保 等保评测

ManageEngine卓豪简化变更管理的工作方法(五)

ServiceDesk_Plus

变更管理 ManageEngine卓豪

荣誉|奇点云荣获“2024年度杭州市总部企业”

奇点云

杭州 总部企业

MindIE-LLM ATB模型推理全流程解析

AI布道Mr.Jin

智算时代的流量枢纽:蚂蚁 AI Gateway 如何提升大模型推理效能

蚂蚁开源

Gateway 蚂蚁集团 MOSN 蚂蚁开源

NocoBase 本周更新汇总:外部数据源支持按需加载数据表

NocoBase

开源 低代码 零代码 无代码 版本更新

一手生态开放,一手技术突围,昇腾CANN成中国AI创新底座

极客天地

扣子企业交流日最全回顾|数万家企业都在怎么用扣子?

火山引擎开发者社区

AI 扣子

Nacos 3.0 架构全景解读,AI 时代服务注册中心的演进

阿里巴巴云原生

阿里云 云原生 nacos

UNIX环境高级编程:Stephen Rago访谈_Linux_Jeff Martin_InfoQ精选文章