什么是POSIX?

POSIX(Portable Operating System Interface)是Unix系统的一个设计标准。当年最早的Unix,源代码流传出去了,加上早期的Unix不够完善,于是之后出现了好些独立开发的与Unix基本兼容但又不完全兼容的OS,通称Unix-like OS。局面非常混乱,为了提高兼容性和应用程序的可移植性,标准化Unix-like OS,提出了大家都应该遵守的POSIX标准。后来,Unix这个名字成为了商标,只有花钱进行POSIX标准兼容性测试并通过了的OS,才能称为Unix,其余的OS,最多称为Unix-like OS或者*nix OS。


遵循这个标准的好处是软件可以跨平台。

  • Windows从WinNT开始就有兼容POSIX的考虑。这是因为当年在要求严格的领域,Unix地位比Windows高。为了把Unix用户拉到Windows阵营而搞的。现在情况当然有变化,与当年大不相同了。
  • 现在最新的Win10对 Linux/POSIX 支持好,则是因为Linux已经统治了廉价服务器市场。为了提高Windows的竞争力而搞的。

所以windows也支持就很容易理解了,那么多优秀的开源软件,支持了这个这些软件就可能有windows版本,就可以完善丰富windows下的软件。


以下对于POSIX的介绍,来自《Linux内核设计与实现(第2版)》的第5章

一般情况下,应用程序通过应用编程接口(API)而不是直接通过系统调用来编程。这点很重要,因为应用程序使用的这种编程接口实际上并不需要和内核 提供的系统调用对应。一个API定义了一组应用程序使用的编程接口。它们可以实现成一个系统调用,也可以通过调用多个系统调用来实现,而完全不使用任何系统调用也不存在问题。实际上,API可以在各种不同的操作系统上实现,给应用程序提供完全相同的接口,而它们本身在这些系统上的实现却可能迥异。


在Unix世界中,最流行的应用编程接口是基于POSIX标准的。从纯技术的角度看,POSIX是由IEEE的一组标准组成,其目标是提供一套大体上基于Unix的可移植操作系统标准。Linux是与POSIX兼容的。


POSIX是说明API和系统调用之间关系的一个极好例子。在大多数Unix系统上,根据POSIX而定义的API函数和系统调用之间有着直接关 系。实际上,POSIX标准就是仿照早期Unix系统的界面建立的。

  • 另一方面,许多操作系统,像Windows NT,尽管和Unix没有什么关系,也提供了与POSIX兼容的库。
  • Linux的系统调用像大多数Unix系统一样,作为C库的一部分提供。C库实现了Unix系统的主要API,包括标准C库函数和系统调用。所有的C程序都可以使用C库,而由于C语言本身的特点,其他语言也可以很方便地把它们封装起来使用。此外,C库提供了POSIX的绝大部分API。


参考资料

===========

POSIX是什么标准?为什么Windows也要支持它?

https://www.zhihu.com/question/21048638

我从来没有真正明白:什么是POSIX?

https://cloud.tencent.com/developer/ask/26856

posted on   中道学友  阅读(1416)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2017-12-14 断开所有的SMB连接的批处理
2010-12-14 如何查看MS SQL中表所占的空间的大小?
2009-12-14 常用英语食品词汇- 谷类食品
2009-12-14 常用英语食品词汇- 熟食类
2009-12-14 Troubleshoot 403错误

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示