什么二进制标准在linux中共享代码(类似于COM)?

时间:2015-03-21 00:11:03

标签: linux com posix

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

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

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

我在其他地方读过LINUX不认为COM是因为COM基本上使用操作系统作为调节器来获取这些标准化对象。在Linux中不应该有类似的东西吗?如果是的话,它是什么?

1 个答案:

答案 0 :(得分:0)

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

POSIX中基于文件和管道的简单输入/输出比MS-Windows早几十年。并且,只要管道的两端都同意交换数据的格式,使用哪个编译器来创建每个程序并不重要(尽管在Linux上,还有一个很好的例子)因子编译器,所以它没有实际意义。

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

通常,这是Linux上进程互操作的方式:

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

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

重要的是要理解,所有进程都没有实际标准来使用相同的格式来交换消息。我认为,最接近这种标准的是远程过程调用,或RPC,在某些低级协议(如NFS)中使用的标准,但主要是个别应用程序定义和使用为他们量身定制的特殊格式。

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