跳转到主要内容
POSIX™规范历久弥新 - 简化跨平台软件开发任务

POSIX™规范历久弥新 - 简化跨平台软件开发任务

2022年9月22日 8次秝妤
 

 

“POSIX™是“uni-X便携式操作系统接口”的简称,由ISO/IEC、IEEE和The Open Group标准化的操作系统接口。其目标是通过制定一套供操作系统供应商遵循的准则来简化跨平台软件开发的任务。理想情况下,开发人员只需编写一次程序即可在所有符合POSIX的系统上运行。大多数现代商业Unix实施和许多免费实施都符合POSIX标准。"

 

 

Linux™和UNIX®系统在当今市场成功的关键因素之一,是其采用了流行的、开放的标准,如X Window System、TCP/IP、HTTP和POSIX标准。今天,随着互联网、社交计算、移动性和云的可用性的普及,我们看到IT系统、移动设备和应用程序的快速发展变化,以及它们为我们工作方式带来的变革。但是,标准的发展是否足够快,足以跟上技术变化的步伐?本文将从宏观层面分析当前POSIX标准化活动,它是如何运作的,以及您可以如何做出贡献以帮助它跟上步伐。

 

什么是POSIX™?

 

POSIX是归属于IEEE的商标,是“便携式操作系统接口”的首字母缩写。POSIX的名字是1986年由Richard Stallman提出。最著名的POSIX标准是IEEE标准1003.1(或ISO标准9945,同一文件),简称为“POSIX.1”。它指定了源代码级别的APIs,关于源代码便携性。它既不是代码实施,亦非操作系统,它是编程接口的标准定义,支持规范的系统保证向应用程序程序员提供这个编程接口。操作系统供应商(OSV)和独立软件供应商(ISV)已实施符合本标准的软件。

 

POSIX.1的主要部分是定义、实用程序(例如awk,grep、ps、vi等)、标题(如unistd.h、sys/select.h和其他C标题)、线程、网络、实时、国际化、数学函数等。该标准总共描述了1350多个接口。

 

如果将POSIX.1作为您的软件项目的要求,那么这并不能帮助您很多。POSIX.1覆盖面广泛(约4000页),并且没有一个项目需要囊括其内所包含的一切(即使OSVs也很少实施每一个可选接口)。POSIX.1.标准本身由模块构成,称为选项组。对于所有POSIX系统来说,接口和功能的最小集合为必需。大多数功能是可选择的,有关可选项的详细说明,请参阅https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html 

 

关于POSIX标准有几个常见的误解

 

01.在其发展初期,约20世纪80年代中期,一个常见的误解是POSIX如果一段时间没有改变,它就已经过时,与时代不相关了。POSIX上一版本于2018年发布,未来演进的新版本通常向上兼容上一版本,同时也会添加数百个新接口。版本的演进将需要每一位业界专家的参与和贡献,共同促进标准与时俱进。

 

02.另一个常见的误解是,您需要成为IEEE成员才能为标准演进做贡献。

 

自1998年以来,该标准由Austin Group,The Open Group旗下的一个开放工作组来维护和发展。该工作组是免费向所有相关方开放。Austin Group内部的决策是通过协商达成共识而做出的;有时共识很容易达成,有时需要经过激烈的讨论来达成一致。当越多的人参与讨论并达成共识时,这才可能是越正确的决定。这也是为什么您的参与如此重要。(*注:Austin Group代表了所有主要的UNIX系统参与者和开源分布。)

 

点击此处了解更多Austin工作组的信息

 

今天,POSIX标准开发的方法是“一次编写,采用无处不在“。通过一个单一的开放技术工作组制定,所得到的文件被IEEE采用为POSIX标准,被The Open Group采用作为单一UNIX的基本规范,以及被国际标准组织采用作为国际标准(这反过来意味着它可能是贵国的国家标准;例如,英国标准协会已采用ISO 9945作为英国标准)。

 

这是否意味着POSIX.1标准是完整和完美的?

 

就像任何大型产品,POSIX同时存在着缺陷。当然,随着实施经验日积月累,我们同时通过及时的缺陷报告及修复流程来对文档进行改进。虽然标准不能一夜之间改变,但会有一个机制来定期实现技术修正,同时也为未来的方向提供项目资料。

 

POSIX在当今仍然适用吗?

 

当然。标准接口意味着应用的更便捷的移植。在其他标准化工作中,POSIX接口被广泛实施和引用,包括单一UNIX规范和Linux标准库。它们广泛存在于IT基础设施中,从嵌入式系统、移动设备、互联网路由器、服务器和工作站,一直到分布式超级计算机。

 

为什么您的参与势在必行?

 

通过向标准反馈实际实施中的问题,可以实现标准的改进,并扩展新功能,从而可以为系统之间的“共性”要求提高门槛。通常,相较于实施完全不同的行为,通过使关键功能共享公共界面和/或实施完全相同的行为,能让我们实现更多获益。