
我是荔园微风,作为一名在IT界整整25年的老兵,后台收到小伙伴留言,问我POSIX究竟是什么,百度了好久都没看明白是什么。
我一句话概括,假如一个美国人、一个德国人、一个法国人在一起想开展贸易,他们互相听不懂对方的语言,但是如果不懂对方语言,就无法开展贸易,怎么办呢,于是他们坐下来决定以后在贸易市场中都使用英语来交流,这样就可以互相之间谈生意了。那么在贸易市场中都使用英语来交流这个规则就是一个大家都遵守的标准。

POSIX 其实就是 Portable Operating System Interface of UNIX(UNIX可移植操作系统接口)的缩写,它定义了一套标准的操作系统接口和工具,最初是基于UNIX制定的针对操作系统应用接口的国际标准。POSIX是一个涵盖范围很广的标准体系,已经颁布了20多个标准。制定POSIX标准是为了获得不同操作系统在源代码级的软件兼容性,使操作系统具有较强的可移植性。POSIX现在已经发展成为一个非常庞大的标准族,某些部分正处在开发过程中。其中,POSIX1003.1标准定义了一个最小的UNIX操作系统接口,任何操作系统都只有符合该标准才能运行UNIX程序。
看到这里,大家就明白了吧,就是为了让一种UNIX系统上开发的程序能在另一种UNIX系统运行而制定的一种标准,不这样的话,不同厂商的UNIX系统各自开发的软件都不能在别家的UNIX系统上运行了。而POSIX这个标准就是为了解决这个问题而生的,各厂商在开发UNIX系统时,只要遵守这个POSIX标准,开发出来的系统就可以运行其他遵守POSIX标准的软件。
POSIX常见标准如下:
(1) POSIX 1003.0标准。用于管理 POSIX 开放式系统环境(Open System Environment,OSE)。IEEE在 1995年通过了这项标准。ISO的版本是ISO/IEC 14252:1996。
(2)POSIX 1003.1标准。是被广泛接受、用于源代码级别的可移植性标准。1003.1提供一个操作系统的C语言应用编程接口(Application Programming Interface,API)。IEEE和ISO已经在1990年通过了这个标准,IEEE在1995年重新修订了该标准。
(3)POSIX 1003.1b标准。是用于实时编程的标准。这个标准在1993年被IEEE通过,并被归入ISO/IEC9945-1。
(4)POSIX1003.1c标准。是用于线程的标准。线程可以简单地理解为一个程序中当前被执行的代码段。该标准曾经是P1993.4或POSIX.4的一部分,在1995年被IEEE通过,并被归入ISO/IEC9945-1:1996。
(5)POSIX 1003.1g标准。是关于通信协议独立接口的标准,该接口可以使一个应用程序通过网络与另一个应用程序通信。1996年IEEE通过了这个标准。
(6)POSIX 1003.2标准。是应用于 Shell和工具软件(分别是操作系统所必须提供的命令处理器和工具程序)的标准。1992年IEEE通过了这个标准,ISO也通过了这个标准,即ISO/IEC 9945-2:1993。
(7)POSIX 1003.2d标准。是改进的1003.2标准。
(8)POSIX 1003.5标准。是相当于1003.1的Ada语言的应用编程接口。1992年IEEE通过了这个标准,并在1997年对其进行了修订。ISO也通过了该标准。
(9)POSIX 1003.5b标准。是相当于1003.1b(实时扩展)的Ada语言的应用编程接口。
IEEE和ISO都已经通过了这个标准。ISO的标准是ISO/IEC 14519:1999。
(10)POSIX 1003.5c标准。是相当于1003.1q(通信协议独立接口)的Ada语言的应用编程接口。1998年IEEE通过了这个标准。ISO也通过了这个标准。
(11)POSIX 1003.9标准。是相当于1003.1的FORTRAN语言的应用编程接口。
1992年IEEE通过了这个标准,并于1997年对其再次确认。ISO也通过了这个标准。
(12)POSIX 1003.10标准。是应用于超级计算应用环境框架(ApplicationEnvironment Profile,AEP)的标准。1995年IEEE通过了这个标准。
(13)POSIX 1003.13标准。是关于应用环境框架的标准,主要针对使用POSIX接口的实时应用程序。1998年IEEE通过了这个标准。
(14)POSIX 1003.22标准。是针对POSIX的关于安全性框架的指南。
(15)POSIX1003.23标准。是针对用户组织的指南,主要用于指导用户开发和使用支持操作需求的开放式系统环境框架。
(16)POSIX 2003标准。是有关是否符合POSIX标准的测试方法的定义、一般需求和指导方针的标准。1997年IEEE通过了这个标准。
(17)POSIX2003.1标准。规定了针对1003.1的POSIX测试方法的提供商要提供的一些条件。1992年IEEE通过了这个标准。
(18)POSIX 2003.2标准。是定义了被用来检查与IEEE 1003.2(Shell和工具API)是否符合的测试方法的标准。1996年IEEE通过了这个标准。
以上介绍了1003家族和2003家族的标准。除此以外,还有几个其他的IEEE标准,例如1224和1228,它们也提供用于开发可移植应用程序的API。
Linux是一个遵循 POSIX 标准的操作系统。也就是说,任何基于 POSIX标准编写的应用程序,包括大多数UNIX和类UNIX系统的应用程序,都可以方便地移植到Linux系统上。
作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。
POSIX是一组定义了操作系统接口和工具的标准,旨在实现不同UNIX系统间的源代码级兼容性。它包括多个子标准,如1003.1、1003.1b等,确保程序可以在遵循POSIX标准的不同系统上运行。Linux作为遵循POSIX标准的系统,因此能支持许多UNIX应用程序的移植。
809

被折叠的 条评论
为什么被折叠?



