POSIX是一种操作系统接口标准,全称为“可移植操作系统接口”(Portable Operating System Interface)。它最初由IEEE组织制定,目的是为了使不同的操作系统之间可以互相兼容。POSIX标准定义了一系列API(应用程序接口)和命令行工具,这些API和工具规定了操作系统应该提供哪些功能,并规定了这些功能的调用方式和行为。

1678928029039.jpg

POSIX标准包含多个部分,主要涵盖了文件管理、进程控制、用户权限、系统调用等方面。其中最常见的是POSIX.1标准,也称为核心标准,它规范了基本的操作系统接口。另外还有POSIX.2标准,规定了一些其他的API和工具,如shell、正则表达式等;POSIX.3标准则定义了一些标准化的Shell扩展;POSIX.4标准则规定了网络编程相关的API等。这些标准都是为了让不同的操作系统之间具有更好的兼容性,以便更方便地编写跨平台程序。


简要介绍POSIX PSE51、 PSE52、 PSE53、 PSE54、POSIX .1:

POSIX是一种定义了操作系统为应用程序提供的接口标准的缩写,它旨在实现软件在不同操作系统之间的可移植性。它涵盖了系统库、标准工具程序、系统核心特性和C库中的一些与操作系统相关的低级控制功能等方面。

POSIX标准存在不同的配置文件(Profile),它们根据不同的场景和需求,规定了不同的接口和功能。其中,IEEE 1003.13是针对嵌入式领域制定的标准,它根据范围的大小又分为四个不同的配置文件,PSE51, PSE52, PSE53和PSE54。它们分别是:

  • PSE51:最小实时系统配置文件(Minimal Real-time System Profile),(针对嵌入式领域制定的最小实时系统配置文件之一)它是POSIX标准的一个子集,而且是最小子集,不需要多进程(线程),不需要文件系统,也不包括进程间通信(IPC)。
  • PSE52:实时控制器配置文件(Real-time Controller Profile),它在PSE51的基础上增加了多线程和信号量等功能,适用于需要实时控制和调度的场景。
  • PSE53:专用实时集成配置文件(Dedicated Real-time Integration Profile),它在PSE52的基础上增加了共享内存、消息队列、定时器等功能,适用于需要高效通信和同步的场景。
  • PSE54:通用实时集成配置文件(General Real-time Integration Profile),它在PSE53的基础上增加了文件系统、套接字、信号等功能,适用于需要更多服务和功能的场景。
  • POSIX .1是POSIX标准中最基本和最核心的部分,它定义了操作系统内核接口(System Kernel Interface),包括进程管理、内存管理、信号处理、错误处理等功能。它是其他POSIX标准的基础,也是最广泛支持和使用的部分。

POSIX标准通常被Unix/Linux操作系统所支持。几乎所有的Unix/Linux发行版都遵循了POSIX标准,因此开发人员可以在这些操作系统上使用标准的API和工具,而不用担心因为操作系统的差异导致程序无法运行。

POSIX标准的优点不仅在于它能够让程序跨平台运行,而且它还可以提高程序的可移植性和可重用性。采用POSIX标准编写的程序可以在不同的系统上复用,从而避免了重复开发的浪费。此外,POSIX标准的使用也可以提高程序的安全性和可靠性,因为它规定了操作系统的行为和调用方式,从而避免了不必要的错误和漏洞。

总之,POSIX标准是一个非常重要的标准,它不仅为操作系统提供了统一的接口,也为程序员提供了一个通用的开发环境。随着计算机技术的不断发展和普及,POSIX标准的应用也将越来越广泛。


POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。

POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。
简单总结:

完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,linux下是fork函数,windows下是creatprocess函数。好,我现在在linux下写一个程序,用到fork函数,那么这个程序该怎么往windows上移植?我需要把源代码里的fork通通改成creatprocess,然后重新编译...

  posix标准的出现就是为了解决这个问题。linux和windows都要实现基本的posix标准,linux把fork函数封装成posix_fork(随便说的),windows把creatprocess函数也封装成posix_fork,都声明在unistd.h里。这样,程序员编写普通应用时候,只用包含unistd.h,调用posix_fork函数,程序就在源代码级别可移植了。
 

POSIX是OS对外接口的标准。

POSIX的目的,是统一UNIX-like 的OS对外的接口,方便OS之上的应用在各种OS上移植运行。

POSIX 是Portable OperatingSystem Interface for Computer Environments 的缩写,它是ISO C的延伸,POSIX 明确了可以移植的OS接口,应具备的种种条件:其范围不只有系统库,还同时包括一些标准的工具程序、系统核心应有的特色操作,以及在C库中某些与OS相关的低层控制机制等。

由于glibc 是完全按照POSIX 的标准制作的,同时搭配了符合POSIX 标准的Linux 核心,故在此环境下开发的程序可以做到完全符合POSIX 的规格。

VxWorks

作为比较老牌的嵌入式实时操作系统,VxWorks被广泛应用于多个领域,如航空航天,工业控制等对实时性要求很高的领域, 它也是非常重视对POSIX标准的支持,其全部支持了PSE52标准 + BSD Socket。并通过官方的PSE52认证。

QNX

作为被广泛应用于汽车领域的嵌入式实时操作系统,同时也是比较成功的商用微内核操作系统,QNX也是比较重视对POSIX标准的支持,其全部支持了PSE52标准 + BSD Socket。

IEEE 1003.13是针对嵌入式领域制定的标准,根据范围的大小又分为4个不同的Profile,PSE51, PSE52, PSE53和PSE54。

PSE51并不包括IPC (inter process communication ),  因为并没有直接的接口实现进程之间的交互。因而进程间通信,需要有额外模块支持,例如AUTOSAR AP提供CM (communication management )提供机器内和机器之间面向服务的通信。

POSIX定义

POSIX: Portable Operating System Interface of Unix.,可移植操作系统接口。X表示其是对Unix API的传承。

POSIX标准由IEEE(电气和电子工程师协会)发布,定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行软件而定义的一系列API标准的总称。

简单可以理解POSIX标准是为操作系统设计API时遵循的规范,一套规范的系统调用集。

POSIX的诞生/解决的问题

POSIX的诞生和Unix的发展是密不可分的。当年最早的Unix,源代码流传出去了,加上早期的Unix不够完善,于是之后出现了好些独立开发的与Unix基本兼容但又不完全兼容的OS,通称Unix-like OS。这样版本混乱的情况导致相互之间的竞争和不兼容之处越来越多,给软件的可移植性带来很大困难,对Unix的发展极为不利。

为了提高兼容性和应用程序的可移植性,结束混乱局面,IEEE提出了POSIX标准,POSIX在源代码级别上定义了一组最小的Unix(类unix)操作系统接口。 这套标准涵盖了很多方面,比如Unix系统调用的C语言接口,shell程序和工具、线程和网络编程等。POSIX标准意在期望获得源代码级别的软件可移植性。为一个POSIX兼容的操作系统编写的程序,可以在任何其他POSIX操作系统上编译执行。

POSIX现在已经发展成为一个非常庞大的标准族,并不局限于Unix, 一些其他的操作系统,如Microsoft windows NT, Linux等都支持或者部分支持POSIX标准。

POSIX标准的思路

问题: 不同操作系统内核为同一功能提供的系统调用(函数)是不同的,例如创建进程,linux下是fork函数,windows下是createprocess函数,如果在Linux下写了一个程序用到了fork函数,要往windows上移植就得把源代码里面的fork通通改成createprocess,然后重新编译。

解决方法: 定义POSIX标准, linux和windows实现基于POSIX标准,提供同样的接口,例如定义创建进程的接口为posix_fork(示例名/非真实名字), 且linux和windows都把各自创建进程的调用封装成posix_fork,都声明在unistd.h里。 这样程序员编写应用时,只需包含unistd.h, 调用这个POSIX标准中定义的API接口: posix_fork函数,即可实现源代码级别的可移植。

POSIX标准理解 - 1130136248 - 博客园icon-default.png?t=N7T8https://www.cnblogs.com/1130136248wlxk/articles/5308863.html

【POSIX】POSIX标准介绍 - 简书icon-default.png?t=N7T8https://www.jianshu.com/p/e9e3f17deb36

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐