在 linux(类似于 COM)中共享代码有哪些二进制标准?

what binary standards are there for sharing code in linux (similar to COM)?

所以我在这里看完了一篇文章:

https://msdn.microsoft.com/en-us/library/ms809983.aspx

关于我们为什么拥有 COM 以及它如何让我们共享代码而不用担心编译器的名称重整或 unicode/ascii 问题或以独立于语言的方式进行内存管理。

我在别处读到 LINUX 不应该使用 COM,因为 COM 基本上使用 OS 作为获取这些标准化对象的调节器。 Linux 中不应该有类似的东西吗?如果是,那是什么?

在 Linux 上,您可以 运行 任何在标准输入上接受其输入的程序,并通过管道将其连接到在其标准输出上生成其结果的任何其他程序。

POSIX 中的简单、基于文件和管道的 input/output 比 MS-Windows 早几十年。而且,只要管道双方就交换数据的格式达成一致,使用哪个编译器来创建每个程序都无关紧要(尽管在 Linux 上有一个相当不错的 de-factor 编译器,所以这是一个有争议的问题)。

并且通过使用套接字对,管道变为双向,因此两个进程可以相互交换数据。

这通常是进程在 Linux:

上的互操作方式

1) 将两个进程连接在一起的管道或网络套接字

2) 为两个进程之间交换的数据格式商定的既定标准。

重要的是要了解,对于所有进程使用完全相同的格式来交换消息并没有实用的标准。我想,最接近此类标准的是远程过程调用或 RPC,它是一些低级协议(如 NFS)中使用的标准,但大多数情况下,各个应用程序定义和使用定制的特定格式为了他们。

例如,X Window系统协议:http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html -- 这是X服务器和X客户端之间通信协议的格式定义。为使用此协议而编写的应用程序(实际上,它们通常会使用中间库或工具包)可以建立连接并通过网络连接或本地管道使用任何使用相同协议的 X 服务器。