什么是 POSIX(可移植操作系统接口)?
POSIX(可移植操作系统接口)是一组基于 Unix 操作系统的标准操作系统接口。最新的 POSIX 规范——IEEE Std 1003.1-2017——定义了一个标准接口和环境,操作系统 (OS) 可以使用它们来访问符合 POSIX 规范的应用程序。该标准还定义了命令解释器 (shell) 和常用实用程序。POSIX 在源代码级别支持应用程序的可移植性,因此可以构建应用程序使其在任何符合 POSIX 规范的操作系统上运行。
POSIX 标准简史
POSIX 接口最初是在 IEEE 的支持下开发的。然而,POSIX 标准现在由奥斯汀通用标准修订小组(通常称为奥斯汀小组)开发和维护。
奥斯汀小组 (Austin Group) 是一个联合工作组,由来自 IEEE、开放群组 (The Open Group) 以及国际标准化组织 (ISO) 和国际电工委员会 (IEC) 联合技术委员会 1 的成员组成。IEEE 拥有 POSIX 商标。开放群组拥有 Unix 商标,是一个制定技术标准的全球性联盟。
POSIX 的出现源于提高应用程序在不同系统之间可移植性的需求。在计算机发展的早期,程序员必须针对每种计算机型号和操作系统重写应用程序。随着 IBM 推出 System/360 系列计算机,这种情况开始改变。这些计算机都可以运行相同的 OS/360 操作系统。有了这些新系统,应用程序的可移植性得到了提升,从而节省了大量的开发时间。
不久之后,Unix 应运而生,为应用程序的可移植性带来了更大的潜力。与其他操作系统不同,Unix 可以在不同厂商的机器上运行。然而,随着该操作系统的多种变体的出现,可移植性的前景也迅速黯淡。即便如此,Unix 的普及程度仍在不断提升,人们很快意识到需要某种标准来应对应用程序兼容性的挑战。这种需求促成了 POSIX 规范的制定。该标准于 1988 年发布,基于当时最杰出的两个 Unix 系统——AT&T Unix System V 和 Berkeley Software Distribution Unix。
Basic Unix OS commands
什么是 POSIX 标准?
多年来,POSIX 规范不断修订和重组。曾经,每个标准都被非正式地命名为 POSIX,后跟一个十进制数,然后是标准编号。例如,POSIX.1 是 C 语言应用程序编程接口的标准,而 POSIX.2 是操作系统的标准 shell 和实用程序接口。这些标准最终分别被正式命名为 IEEE Std 1003.1 和 IEEE Std 1003.2。
基础标准也曾有过修订,例如 IEEE Std 1003.1b-1993,该标准涉及实时扩展。然而,所有各种规范都已合并为一个标准——IEEE Std 1003.1,该标准上次更新于 2017 年,并于 2018 年发布。正式名称为 IEEE Std 1003.1-2017。然而,它也被称为 POSIX.1-2017,或更通俗的说法是 POSIX.1。
POSIX 标准还有其他名称。Open Group 将其称为“Open Group 基础规范第 7 期,2018 年版”,ISO/IEC 将其称为 ISO/IEC 9945:2009。 ISO/IEC 于 2009 年通过了该标准,并于 2012 年底添加了技术勘误表 1,并于 2017 年 3 月添加了技术勘误表 2,使其与 IEEE Std 1003.1-2017 保持同等水平。
POSIX.1-2017 规范定义了构建符合 POSIX 标准的应用程序所需的基本服务。它们建立了标准语义和语法,以帮助开发人员编写可移植的应用程序。
POSIX.1 由以下四个部分组成
基础定义
提供规范的通用定义,包括术语、概念、语法、服务功能和命令行信息。
系统接口
提供与接口相关的术语和概念的详细信息,并定义应用程序访问符合 POSIX 标准系统时可用的功能接口。
Shell 和实用程序
描述应用程序访问符合 POSIX 标准系统时可用的命令和实用程序,包括这些系统中使用的命令语言。
基本原理
包含有关该标准内容的历史信息以及某些功能被添加或删除的原因。
POSIX.1 采用“一次编写,随处应用”的规范方法,提供一组高效构建应用程序所需的基本服务。该标准强调对应用程序开发至关重要的功能和特性,而不是关注实现这些功能所需的技术。POSIX 标准旨在供系统实现者和应用程序开发者使用。
Linux 是从 Unix 发展而来的,学习起来可能比较棘手。探索主要的 Linux 组件,以便更好地理解它。
暂无评论内容