首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果macOS和Linux之间存在二进制不兼容,那么遵守POSIX有什么意义呢?

如果macOS和Linux之间存在二进制不兼容,那么遵守POSIX有什么意义呢?
EN

Unix & Linux用户
提问于 2022-08-30 15:37:37
回答 1查看 184关注 0票数 -1

开发POSIX是为了使我们能够与Unix的变体具有软件兼容性(可移植性):

可移植操作系统接口( POSIX )是IEEE为维护操作系统之间的兼容性而指定的一系列标准。1 POSIX定义了系统级和用户级应用程序编程接口(API),以及命令行外壳和实用程序接口,以实现与Unix和其他操作系统的变种的软件兼容性(可移植性)。1 POSIX也是IEEE的商标。1POSIX将用于应用程序和系统开发人员。

macOS和Linux都是POSIX-符合。因此,据推测,为macOS编写的应用程序应该在Linux上运行。

但是根据这个问题的说法,macOS和Linux之间存在二进制不兼容。根据所选的最佳答案,这是因为您需要链接适当的库,但遭到一位评论者的反对,称真正的问题是不兼容的系统调用。

那么,如果macOS和Linux之间存在二进制不兼容,那么遵守POSIX有什么意义呢?这使POSIX毫无用处,不是吗?

EN

回答 1

Unix & Linux用户

发布于 2022-08-30 16:22:34

关键是在你的报价的这一部分:

POSIX同时定义了系统级和用户级应用程序编程接口(API)。

应用程序编程接口定义了在对应用程序进行编程时所依赖的接口。这意味着您可以按照POSIX编写程序,并且可以在任何符合POSIX的系统上构建它(如果您只使用了POSIX特性)。

POSIX本身与应用程序二进制接口无关,在运行给定的二进制文件时,这才是重要的。

因此,您可以将源代码带到一个只使用POSIX API的程序中,并在macOS和POSIX兼容的Linux系统上构建它,并运行生成的二进制文件。您不能接受一个macOS二进制文件并在Linux上运行它,至少没有一些翻译程序(比如Windows程序)。

最重要的是,许多程序使用的比POSIX API还多,所以您必须确保它们所需要的其他所有东西也可以在目标系统上使用(这就是库的来源)。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/715494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档