Εισαγωγή στο D-Bus

λεωφορείο-ιεραρχία-εννοιολογική

Εάν χρησιμοποιείτε το Linux εδώ και αρκετό καιρό, ίσως έχετε αναρωτηθεί τι είναι το D-Bus. Το D-Bus είναι ένα στοιχείο που ενσωματώθηκε πρόσφατα σε διανομές επιτραπέζιου υπολογιστή Linux και αναμένεται να παίξει πολύ σημαντικό ρόλο στον προγραμματισμό Linux.

Τι είναι το D-Bus;

Το D-Bus είναι ένα σύστημα επικοινωνίας μεταξύ εφαρμογών πολύ διαφορετικής προέλευσης. Με αυτό το σύστημα μπορούμε να καλέσουμε ακόμη και ιδιόκτητες εφαρμογές (αν υλοποιούν D-Bus). Δεν παίζει τον ίδιο ρόλο με μια βιβλιοθήκη, επειδή μια βιβλιοθήκη δεν είναι ένα αυτόνομο πρόγραμμα και η βιβλιοθήκη είναι μέρος του εκτελέσιμου αρχείου σας. Η ιδέα του D-Bus είναι εμπνευσμένη από αντικείμενα Windows OLE, COM και ActiveX. Τα αντικείμενα COM των Windows προσφέρουν έναν εύκολο τρόπο κλήσης οποιουδήποτε προγράμματος από άλλο πρόγραμμα, ακόμη και με δυνατότητα οπτικής ενσωμάτωσης του ενός μέσα στο άλλο χωρίς την ανάγκη χρήσης της ίδιας γλώσσας προγραμματισμού. Το D-Bus δεν πάει τόσο μακριά, αλλά προσφέρει την επικοινωνία που έλειπε στο UNIX.

Γιατί είναι σημαντικό το D-Bus;

Το D-Bus είναι σημαντικό δεδομένης της μεγάλης ποικιλίας γλωσσών που μπορούν να τρέξουν σε Linux και της μεγάλης ποικιλίας των βιβλιοθηκών επίσης. Ας πάρουμε ένα πρακτικό παράδειγμα. Θέλω να στείλω μια ειδοποίηση στο σύστημα ειδοποίησης-osd του Ubuntu από την εφαρμογή Node.js. Πρώτα θα πρέπει να δείτε ποια βιβλιοθήκη προσφέρει αυτή τη λειτουργία στο σύστημα, να κάνετε libnotify σε αυτήν την περίπτωση και, στη συνέχεια, θα πρέπει να κάνετε κάποιες δεσμεύσεις για να μπορέσετε να καλέσετε τη βιβλιοθήκη που έχει προγραμματιστεί σε C από JavaScript. Φανταστείτε επίσης ότι θέλουμε να τρέξουμε την εφαρμογή μας με μια επιφάνεια εργασίας που δεν χρησιμοποιεί libnotify για ειδοποιήσεις.

Χρήση D-Bus

Έτσι, αποφασίσαμε ότι θα χρησιμοποιήσουμε το D-Bus για να δημιουργήσουμε την ειδοποίηση της εφαρμογής μας σε JavaScript.

https://gist.github.com/AdrianArroyoCalle/99d2ea6db92e90a54e2c

Υπάρχουν 2 τύποι διαύλων στο D-Bus, ένας D-Bus μοναδικός για το σύστημα και ένας D-Bus για κάθε συνεδρία χρήστη. Στη συνέχεια, στο D-Bus έχουμε υπηρεσίες που είναι «ονόματα παρόχων D-Bus», κάτι σαν εφαρμογές D-Bus. Στη συνέχεια, σε μια δομή που μοιάζει με φάκελο βρίσκονται τα αντικείμενα που μπορεί να έχει αυτή η υπηρεσία ή οι παρουσίες και τέλος η διεπαφή είναι ο τρόπος αλληλεπίδρασης με τα αντικείμενα αυτής της υπηρεσίας. Σε αυτή την περίπτωση είναι πολύ περιττό γιατί ο διακομιστής ειδοποιήσεων είναι πολύ απλός.

Ποιος χρησιμοποιεί το D-Bus;

Περισσότερα προγράμματα από όσα μπορείτε να φανταστείτε χρησιμοποιούν το D-Bus. Μερικές υπηρεσίες D-Bus για να αναφέρουμε απλώς παραδείγματα είναι:

  • com.Skype.API
  • com.canonical.Unity
  • org.freedesktop.PolicyKit1
  • org.gnome.Nautilus
  • org.debian.apt
  • com.ubuntu.upstart

Για να μάθετε όλες τις υπηρεσίες D-Bus που έχετε εγκαταστήσει, μπορείτε να χρησιμοποιήσετε το d-feet

D-Feet


6 σχόλια, αφήστε τα δικά σας

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   neysonv dijo

    ενδιαφέρων. Το έβλεπα τόση ώρα και δεν ήξερα καν τι ήταν

  2.   Γιουκιτέρου dijo

    Δεν ήξερα για το d-feet, έχω προγραμματίσει κάποια πράγματα, ειδικά σενάρια για το XChat (Clementine, Audacious) χρησιμοποιώντας DBus και η αλήθεια είναι ότι το να γνωρίζω αυτό το εργαλείο θα με είχε γλιτώσει από την τρέλα να διαβάζω το εγχειρίδιο MPRIS και τα διαφορετικά Διεπαφές Clementine και Audacious DBus.

  3.   Γαβριήλ dijo

    Είναι πραγματικά πολύ καλό άρθρο, ευχαριστώ

  4.   αμαρτωλός dijo

    κοιτάξτε την άγνοιά μου· τόσα προβλήματα με το dbus σε freebsd, gentoo και debian και δεν ήξερα ποτέ τι ήταν... στην πραγματικότητα δεν ξέρω ακόμα, αλλά η ανάρτησή σας μου έδωσε τουλάχιστον μια σύντομη ιδέα.

  5.   Note dijo

    > Το D-Bus είναι ένα στοιχείο ενσωματωμένο σε διανομές επιτραπέζιου υπολογιστή Linux πριν από λίγο καιρό.

    Πριν από λίγο καιρό;;;;; Το χρησιμοποιώ από το 2005.

    Ένα άλλο πράγμα είναι το kdbus που είναι πρόσφατο. Είναι, απλοποιώντας, την ενσωμάτωση του dbus μέσα στον πυρήνα.

    1.    AdrianArroyoStreet dijo

      Είναι ακόμα λίγος χρόνος περισσότερο από οτιδήποτε άλλο, επειδή το D-Bus απαιτεί από τα υπόλοιπα στοιχεία του συστήματος να αρχίσουν να το χρησιμοποιούν για να είναι πλήρως λειτουργικό.