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



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

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

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

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

在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服务器。

最新更新