为什么POSIX被称为“便携式操作系统接口”?

时间:2010-01-22 06:51:55

标签: c++ multithreading unix posix

我已经搜索过但仍然困惑为什么POSIX被称为“可移植操作系统接口”,我学到的是它是Unix环境的一些线程库,因为当你需要在windows下使用它时你必须使用cygwin或者“Unix的Windows服务”等等。这就是为什么我很困惑为什么它被称为Portable OSIX。我是Windows领域的专业C / C ++程序员,但在Unix / Linux中是新手。提前感谢您的回答。

4 个答案:

答案 0 :(得分:13)

在Posix之前,Unix family tree变得非常多样化且不兼容。为一个Unix编写的程序与不同的Unix不兼容,没有大量的移植工作。

Posix是尝试提供一套通用的实用程序和编程接口,以便您的软件可以移植到多个版本的Unix。

由于Posix是关于接口而不是实际操作系统,因此可以在非Unix操作系统上使用Posix外观(例如Microsoft Windows Services for Unix在Windows上显示Posix外观。)

答案 1 :(得分:9)

一两个散兵游勇决定不让它成为核心的一部分并不会使它几乎不能移植到其他几乎所有重要的操作系统。

答案 2 :(得分:4)

POSIX只是用于操作系统的 接口,用于定义线程,进程,信号,管道和I / O等概念。这不是唯一可以跨多个接口移植的接口,而只是一个标准。这个名字实际上是由Richard Stallman在20世纪80年代定义的。

定义POSIX的原因是许多不同版本的UNIX不兼容,因为操作系统尚未就线程或进程的实现达成一致。

以下是进一步研究的更多链接:

答案 3 :(得分:3)

POSIX定义了一组可移植的C函数,shell,使程序员生活更轻松的程序,因为根据POSIX中的定义,编写可移植代码(不仅仅是C)要容易得多,但shell脚本也是如此)。想象一下,如果每个人都有自己的做事方式!

并非所有操作系统都符合POSIX标准,因此如果您必须为这些操作系统进行开发,则必须执行特定于系统的操作。但POSIX可能是当今不同类型系统的便携式标准。当然,有ISO C,它更便携,但是很难用ISO C编写非常有用的程序!