10
votes

Quelle est la chose la plus proche de Windows Com / DCOM dans le monde Linux?

Quelque chose de plus élevé et plus complet que des tuyaux / sockets?


1 commentaires

Merci à tous - c'était à peu près mon sentiment que les choses se trouvaient. J'ai accepté la réponse de @ Markr car il semblait de relever les choses bien.


7 Réponses :


12
votes

pour la communication interprocession, D-Bus est le mécanisme de niveau supérieur standard. GTK et QT ont à la fois des liaisons pour D-bus, la plupart des environnements de bureau (ou du moins Gnome et KDE) exposent divers services via D-bus et de nombreuses applications de bureau peuvent être contrôlées via une interface D-BUS. Le bus système est également utile pour déterminer diverses informations de faible niveau sur le système à l'aide de services système standard.

KDE4 (construit sur Qt4) comprend également une technologie appelée KParts, souvent comparée à la fenêtre de la fenêtre.


8 commentaires

"Pour la communication interprocite, D-Bus est le mécanisme standard." Il est? Les sockets, la mémoire partagée, les files d'attente de messages et les sémaphores sont ce que je dirais si vous lui avez demandé que les mécanismes de communication interprocessé standard de tout environnement de POSIX étaient.


D-Bus est de niveau supérieur à celui des mécanismes élémentaires que vous liste, plus comparables à COM / DCOM et sur Linux (tous les autres hérités de nombreuses autres versions de Unix-D-Bus sont construites sur ce niveau inférieur. des mécanismes bien sûr).


Vous pouvez écrire des contrôleurs de Pigin IM qui fonctionnent via un bus D-bus au lieu d'un plugin porcin. Exécutez DBus-Monitor --Session et vous pouvez voir Pigdin mettant tout dans vos conversations sur le bus D-bus.


J'ai légèrement ajusté cette phrase pour clarifier que j'étais signification de l'infrastructure de niveau supérieur de WRT (comme c'est la question de la question). En outre, D-Bus est de plus en plus populaire avec des outils de niveau inférieur, tels que PolicyKit et Hal.


De plus, en outre, la plupart de chaque application KDE dispose d'une interface D-BUS (certaines interfaces sont assez vastes). La liste des projets qui l'utilisent est incroyablement incomplète.


Non ce n'est pas le cas. "Devenir de plus en plus populaire" n'est pas "standard".


"Devenir de plus en plus populaire" était en ce qui concerne les outils de niveau inférieur. Le mouvement pour remplacer les applications SUID / GUID sur Linux exploite généralement le bus système de D-Bus pour atteindre ces remplaçants. Desktop Linux, d'autre part, avaient déjà une adoption généralisée de D-bus, même devenue en 2009. Il n'a pas remplacé les sockets / tuyaux, mais ce n'est pas censé. Diverses plates-formes spécialisées ont souvent leurs propres mécanismes, mais ceux-ci sont généralement dépendants de la plate-forme et seraient encore plus difficiles à appeler le mécanisme IPC de niveau supérieur de niveau supérieur de «standard». Ne supposez pas que toutes les normes sont de jure.


Dbus est plus comme DDE que com. C'est bien pour ce que ça fait.



2
votes

Il y a la technologie XPCOM de Mozilla, modèle d'objet de composant Cross Platform. Sorte de semblable à com ou à dcom conceptuellement.

ici est une liste des programmes relativement peu nombreux utilisés de la D-bus


0 commentaires

3
votes

Vous pouvez consulter Corba , cela fonctionne également sur Linux et Windows.


0 commentaires

4
votes

Le projet mono saute à l'esprit. Surtout parce que le CLR / .NET est le nouveau contenu, COM, com a été vendu initialement comme des objets compatibles binaires indépendants.

  • http://mono-project.com/

    Je suppose dcom (c'est-à-dire com avec un fil plus long) serait .NET Remoting? Ou peut-être certains services Web avec sérialisement objet. Je crois que Mono soutient les deux.


0 commentaires

9
votes

Oui, il y a beaucoup de choses, mais il n'y en a pas comme "standard" comme com / dcom. Au moins, dans Windows, COM / DCOM est utilisé par des éléments "Windowsish" et d'autres mécanismes RPC sont utilisés par des trucs non "Windowsish".

Linux n'a rien de tel que cela nécessite des choses qui nécessitent des protocoles RPC de niveau supérieur, utilisent généralement tout ce que leur langue fournit, ou une bibliothèque spécifique qui convient le mieux aux besoins d'une application. Des exemples de ce serait RMI dans Java, le module "Pyro" de Python, etc., qui fournira (certaines) parité fonctionnelle avec DCOM.

Corba est un peu lourd, mais certaines personnes l'utilisent apparemment.

Beaucoup d'applications font rouler leurs propres bibliothèques RPC. Ne faites pas cela à moins que vous ne soyez pas obligé, c'est méchant.


3 commentaires

Le Sun RPC est-il la même chose comme com / dcom?


ONC RPC est plus sur le pair avec DCE / RPC ou MSRPC . Son IDL est beaucoup plus simple et il a moins de fonctionnalités. distribué com est basé sur MSRPC pour la communication, mais elle gère de nombreuses choses complexes au-dessus de ce niveau, tel En cas de mise en cache d'objet proxy pour éviter addref et QueryInterface Tours arrondis, Pinging pour la collecte des ordures, la gestion de la mémoire spécifique à une


Linux n'a rien de tel que celui-ci : Je dirais dbus est assez proche: les applications peuvent exposer des méthodes et des événements RPC, vous pouvez intégrer ces méthodes, puis les appeler à distance. Beaucoup d'applications roulent leurs propres bibliothèques RPC. Ne faites pas cela à moins que vous ne soyez pas obligé, c'est méchant Je vois définitivement le point. D'autre part, je dirais que des choses comme Emacs et Gimp ont de jolies bibliothèques RPC. Je suppose que la demande la plus compliquée est la plus compliquée, plus elle mérite son propre mécanisme RPC!



1
votes

DCOM est disponible sur Linux. Ce n'est pas "la façon de faire des choses" de la Linux ", mais hé, si vous voulez" comme DCOM, mais Linux ", utilisez ensuite DCOM sur Linux et avez-vous fait ...


0 commentaires

5
votes
D-Bus
  • D-Bus utilise un "bus" logique sur laquelle des applications connectées peuvent communiquer
  • communication a lieu via un simple modèle d'objet qui supporte à la fois RPC et les mécanismes publish-subscribe
  • D-Bus comprend un mécanisme standard d'introspection pour l'interrogation d'exécution des interfaces de l'objet, les applications connectés au bus peuvent interroger la disponibilité d'objets, appeler des méthodes distantes sur eux, et notification de demande pour les signaux qu'ils émettent
  • avant: GNOME Bonobo , KDE DCOP , CORBA , Sun RPC ... de nos jours, les gens semblent préférer D-Bus ONU
    • modèle composant à base d'interface, ainsi que COM et CORBA
    • tous les UNO-interfaces doit être dérivé d'une interface qui offre l'acquisition, la libération, et une méthode QueryInterface (comparable à COM)
    • la durée de vie des objets ONU-est contrôlé par comptage global de référence. composants
    • communiquent uniquement via leurs interfaces o chacun vit composant dans un Uno environnement d'exécution (URE), il n'y a pas de performance au-dessus pour les composants, qui sont instanciée à l'intérieur de la même URE, par exemple, en langage C ++, un appel à partir du composant A à B est juste un appel virtuel
    • UNO-interfaces sont exprimées en IDL
    • exceptions sont utilisées pour le traitement des erreurs. XPCOM

0 commentaires