【问题标题】:Is there an equivalent to DBus on OSX?OSX 上是否有等效于 DBus 的功能?
【发布时间】:2011-02-13 00:21:21
【问题描述】:

OSX 上是否有与 Linux DBus 等效的版本?我的意思是,OSX 上是否有默认可用的“消息总线”?

免责声明:这里是 OSX 新手。

【问题讨论】:

    标签: linux macos dbus


    【解决方案1】:

    如果您需要使用 DBus,您可以通过Homebrew 安装它。
    Homebrew 是 OS X 的包管理器,提供了许多库,这些库大多以 Linux 作为主要目标编写。 DBus包可以找到here

    但是,默认情况下不会安装它,如果您打算编写 Cocoa 应用程序,那么可以使用(分布式)通知中心,正如 mipadi 在his post 中解释的那样(您也接受了)。

    如果您需要一个健壮的中间件进行通信,您还可以查看来自ZeroCIceTouch,这是一个用于使用其 Ice 框架提供的服务和功能的 Cocoa 库。 该包包含IceStorm,例如它是一个发布/订阅服务器或IceGrid 服务,可用于构建大规模分布式系统

    【讨论】:

      【解决方案2】:

      可能最接近的模拟是分布式通知(或用于相同进程通信的通知)。它不是一个完美的类比,但它适合大致相同的利基市场。您可以在 Apple 的 Notification Programming Topics 中了解更多信息,尤其是关于 distributed notification center 的部分。

      【讨论】:

      • +1:这个功能至少让我更接近我想要去的地方。谢谢!
      【解决方案3】:

      有 Mach 的 端口,它可能会满足您的需求:http://en.wikipedia.org/wiki/Mach_(kernel)

      【讨论】:

      • hmmm...从快速浏览中可以看出,“Mach Port”实际上只是一个 IPC,没有更高级别的发布/订阅语义...还是我弄错了?
      • @jldupont:是的,Mach 端口只是队列,是 Mac OS X 中 IPC 的最低级别 - 在这些基础上构建了各种其他 IPC 机制。
      • 感谢您的澄清。 +1 为我指出马赫港口方向......不知道那些。
      • @jldupont:您可能想查看Mach messagingkqueuenotify 之类的内容,具体取决于您希望在何种级别上进行 IPC。如果您对这类事情很认真,请获取 Amit Singh 的书。
      【解决方案4】:

      您可以查看DarwinPorts。它应该包括 dBus 库。

      【讨论】:

      • MacPorts 是这方面的正确来源:macports.org 真正的 MacPorts 项目和 DarwinPorts 刮板之间存在着漫长而有争议的历史。
      猜你喜欢
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多