写点什么

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:4195082
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

PD分离推理的加速大招,百度智能云网络基础设施和通信组件的优化实践

科技热闻

精彩回顾丨Altair携手汽车工程学会举办主题网络研讨会,共探AI与无网格技术助力汽车行业智能未来

Altair RapidMiner

机器学习 AI SimSolid 汽车工程 无网格仿真

湖仓一体,不只是技术升级,更是企业决策力再造

Databend

秒杀系统—架构设计和方案简介

量贩潮汐·WholesaleTide

架构

鸿蒙5开发宝藏案例分享---自由流转的拖拽多屏联动

莓创技术

更快速度、更省空间、灵活恢复!YMatrix 增量备份功能重磅发布!

YMatrix 超融合数据库

数据资产 超融合数据库 YMatrix 增量备份

昆仑芯超节点创新设计:1U 4 卡高密算力,无缝适配各类机房环境

科技热闻

.NET Dump 中的 Linux信号机制

秃头小帅oi

AI对低代码技术的影响

不在线第一只蜗牛

AI 低代码

鸿蒙5开发宝藏案例分享---一多开发实例(游戏)

莓创技术

鸿蒙5开发宝藏案例分享---一多开发实例(地图导航)

莓创技术

2025北京机器人展

AIOTE智博会

机器人展 智能机器人展 人形机器人展

1688商品详情API接口指南

tbapi

1688商品详情接口 1688数据采集 1688商品详情API

VL 中间语言:进化之路,如何在效率与深度间架起桥梁?

代码制造者

鸿蒙5开发宝藏案例分享---一多开发实例(旅行订票)

莓创技术

NFT 市场或在 BTC 达到周期顶峰之后卷土重来

PowerVerse

代币 区块链+ BTC NFT DePIN

鸿蒙5开发宝藏案例分享---应用接续提升内容发布体验

莓创技术

鸿蒙5开发隐藏案例分享---自由流转的浏览进度接续

莓创技术

数据分析与AI丨AI+数据,助力企业实现全生命周期智能运营

Altair RapidMiner

人工智能 机器学习 AI 数据分析 数字孪生

行业沙龙 | 博睿数据联合承办2025 湾区金科(FinTech)沙龙——智能运维专场,分享主题演讲

博睿数据

重磅!SpringBoot4发布,11项重大变更全解析!

电子尖叫食人鱼

springboot

IP地址交换如何让车联网效率翻倍?

郑州埃文科技

全网最全的Java面试八股文合集!【附答案】

Geek_Yin

Java 程序员 java面试 Java面试题 Java面试八股文

广州某科技公司遭境外黑客攻击?真实的安全防护,这几点不容错过

塞讯科技

AI 网络安全 CVE 安全验证

基于YOLOv8的路面缺陷(路面裂缝、井盖、坑洼路面)识别项目【完整源码数据集+PyQt5界面+完整训练流程+开箱即用!】

申公豹

yolov8

Github霸榜的SpringBoot全套学习教程,从入门到实战,内容超详细!

程序员高级码农

程序员 springboot

闲鱼打定金,满意后收货打尾款,你能接受吗

程序员郭顺发

大模型落地企业研发的正确姿势——暨《DevData25研发效能基准报告》核心数据发布

思码逸研发效能

人工智能 研发效能 API 测试 研发效能管理

鸿蒙5开发案例分享揭秘---一多开发实例(商务办公)

莓创技术

Java面试八股文(精简、纯手打)

Geek_Yin

Java 程序员 java面试 Java面试题 Java面试八股文

鸿蒙5开发宝藏案例分享---一多开发实例(便捷生活)

莓创技术

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