我从来没有真正理解:什么是POSIX?

uqui 发布于 2019-11-10 linux 最后更新 2019-11-10 12:10 254 浏览

什么是POSIX?我读了Wikipedia article,并且每当我遇到这个词的时候我都会读它。事实是,我从来没有真正明白它是什么。 任何人都可以通过解释“对POSIX的需求”向我解释吗?

已邀请:

nipsa

赞同来自:

POSIX是操作系统的标准,应该可以更容易地编写跨平台软件。这在Unix世界中是一个特别重要的事情。

set

赞同来自:

POSIX是:

POSIX (pronounced /ˈpɒzɪks/) or "Portable Operating System Interface [for Unix]"1 is the name of a family of related standards specified by the IEEE to define the application programming interface (API), along with shell and utilities interfaces for software compatible with variants of the Unix operating system, although the standard can apply to any operating system.
基本上,它是一组措施,通过拥有(大多数)常见的API和实用程序来减轻开发和使用不同版本的UNIX的痛苦。有限的POSIX合规性也扩展到各种版本的Windows。

et_ea

赞同来自:

POSIX是IEEE和The Open Group提出的一套标准,描述了理想的Unix如何运作。程序员,用户和管理员都可以熟悉POSIX文档,并期望POSIX投诉Unix提供所有提到的标准工具。 由于每个Unix的工作方式都有所不同 - Solaris,Mac OS X,IRIX,BSD和Linux都有它们的怪癖 - POSIX对业内人士特别有用,因为它定义了一个标准的操作环境。例如, C库中的大多数函数都基于POSIX;因此,程序员可以在他的应用程序中使用一个程序员,并期望它在大多数Unices中表现相同。 然而,Unix的不同领域通常是焦点,而不是标准的。 关于POSIX的好处是欢迎您自己阅读:

The Open Group Base Specifications Issue 7
问题7被称为POSIX.1-2008,并且有新的东西 - 但是,用于POSIX.1的Google-fu等可以让你看到Unix背后的整个历史。

onam

赞同来自:

POSIX是由IEEE指定的一系列标准,用于澄清和统一Unix-y操作系统提供的应用程序编程接口(以及辅助问题,如命令行shell实用程序)。当您编写程序以依赖POSIX标准时,您可以非常肯定能够轻松地将它们移植到大量的Unix衍生产品系列中(包括Linux,但不仅限于此!);如果你使用的某些Linux API没有标准化为Posix的一部分,那么如果你希望将来将该程序或库移植到其他Unix-y系统(例如MacOSX),你将会遇到更困难的时间。

sit_in

赞同来自:

Posix管理互操作性,可移植性以及其他方面,例如fork的使用和机制,权限和文件系统标准,如/ etc,/ var,/ usr等。因此,当开发人员在符合Posix的系统(例如Linux)下编写程序时,通常(并非总是)保证在另一个符合posix的系统(例如IBM的AIX系统或Unix的其他商业变体)上运行。 Posix是一件好事,因此它可以简化软件开发,以实现最大程度的便携性。希望这个答案有意义。 感谢Jed Smith& Tinkertim指出我的错误 - 我的坏!!! :(

znon

赞同来自:

In 1985, individuals from companies throughout the computer industry joined together to develop the POSIX (Portable Operating System Interface for Computer Environments) standard, which is based largely on the UNIX System V Interface Definition (SVID) and other earlier standardization efforts. These efforts were spurred by the U.S. government, which needed a standard computing environment to minimize its training and procurement costs. Released in 1988, POSIX is a group of IEEE standards that define the API, shell, and utility interfaces for an operating system. Although aimed at UNIX-like systems, the standards can apply to any compatible operating system. Now that these stan- dards have gained acceptance, software developers are able to develop applications that run on all conforming versions of UNIX, Linux, and other operating systems.
从书中:Linux的实用指南

pculpa

赞同来自:

POSIX为操作系统或程序定义了一组标准。 目标是编写与类UNIX系统兼容的新软件。 例如,在Linux上运行的程序也可以在其他类UNIX系统上编译和运行,如Solaris,HP-UX和AIX等。 最受欢迎的示例是GNU Bash,它是100%POSIX合规性和gawk实用程序。

lut

赞同来自:

Posix更像是一个操作系统,它是一个“操作系统标准”。您可以将它想象成一个虚构的操作系统,它实际上不存在,但它有一个文档。这些论文是由IEEE定义的“posix标准”,IEEE是美国的标准组织。 实现此规范的操作系统是“Posix兼容的”。 政府法规在其投资中更喜欢符合Posix标准的解决方案,因此符合Posix标准具有显着的财务优势,特别是对于美国的大型IT公司而言。 操作系统完全符合posix的奖励,它保证它将无缝地编译和运行所有符合Posix的应用程序。 Linux是最知名的。 OSX,Solaris,NetBSD和Windows NT也在这里播放。 Free-和OpenBSD只是“几乎”与Posix兼容。 WinNT的posix遵从性只是避免上述政府监管的伪解决方案。

gqui

赞同来自:

内容太长未翻译

weos

赞同来自:

让我给出一个粗鲁的“非正式”解释。 POSIX是一组标准,它试图将“UNIX”和类UNIX系统与那些与它们不兼容的系统区分开来。它是由美国政府为采购目的而创建的。其想法是,美国联邦采购需要一种方法来合法地指定各种投标和合同的要求,其方式可以用于排除给定现有代码库或编程人员不可移植的系统。 由于POSIX是事后编写的......用于描述一组松散相似的竞争系统......它不是以可以实现的方式编写的。 因此,例如,Microsoft的NT编写时具有足够的POSIX一致性以符合某些出价......即使POSIX子系统在实际可移植性和与UNIX系统的兼容性方面基本上没用。 几十年来,已经编写了各种其他UNIX标准。诸如SPEC1170(指定了必须兼容的一百一十七个函数调用)和SUS(单一UNIX规范)的各种版本之类的东西。 在大多数情况下,这些“标准”不适用于任何实际的技术应用。它们最常用于论证,法律争论和其他功能失调的原因。

oad

赞同来自:

该标准为类Unix操作系统提供了通用基础。它指定了shell应该如何工作,对ls和grep等命令的期望,以及C作者可以期望的许多C库。 例如,命令行用户用来串联命令的管道在这里详细说明,这意味着C的popen(管道打开)功能是POSIX标准,而不是ISO C标准。