אם היית בלינוקס זמן מה, אולי תהית מה זה D-Bus. D-Bus הוא רכיב ששולב לאחרונה בהפצות שולחן העבודה של לינוקס, שצפוי למלא תפקיד חשוב מאוד עבור תכנות לינוקס.
מהו D-Bus?
D-Bus היא מערכת תקשורת בין יישומים ממוצא מגוון מאוד. במערכת זו אנו יכולים אפילו להתקשר ליישומים קנייניים (אם הם מיישמים D-Bus). זה לא ממלא את אותו תפקיד כמו ספריה מכיוון שספריה אינה תוכנית עצמאית והספריה היא חלק מההפעלה שלך. הרעיון של D-Bus נכתב בהשראת אובייקטים של Windows OLE, COM ו- ActiveX. אובייקטים של Windows COM מציעים דרך פשוטה להתקשר לכל תוכנית מתוכנית אחרת, אפילו להיות מסוגלים להטמיע חזותית אחד בתוך השני מבלי להשתמש באותה שפת תכנות. D-Bus לא מגיע כל כך רחוק אבל מציע את התקשורת שחסרה ליוניקס.
מדוע D-Bus חשוב?
D-Bus חשוב בהתחשב במגוון הגדול של השפות שיכולות לעבוד בלינוקס והגיוון הגדול גם בספריות. ניקח דוגמא מעשית. אני רוצה לשלוח התראה למערכת ההודעה-osd של אובונטו מהיישום שלי ב- Node.js. ראשית יהיה עליכם לראות איזו ספרייה מציעה פונקציונליות זו במערכת, להודיע על כך במקרה זה, ואז עליכם לעשות כמה כריכות בכדי שתוכלו להתקשר לספרייה שתוכנתה ב- 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. התחל
כדי לברר את כל שירותי D-Bus שהתקנתם תוכלו להשתמש ב- d-feet
מעניין. כל כך הרבה צפייה בזה, ואני אפילו לא ידעתי מה זה
העניין של d-feet אם לא הייתי יודע את זה, תכננתי כמה דברים, במיוחד סקריפטים ל- XChat (קלמנטין, Audacious) באמצעות DBus והאמת, לאחר שידעתי שהכלי הזה היה חוסך לי את הטירוף שבקריאת מדריך MPRIS ואת ממשקי DBus שונים של קלמנטיין ו Audacious.
זה באמת מאמר טוב מאוד, תודה
תסתכל על הבורות שלי, כל כך הרבה בעיות עם dbus ב- freebsd, gentoo ו- debian ומעולם לא ידעתי מה זה ... למעשה אני עדיין לא יודע אבל ההודעה שלך נתנה לי רעיון גס לפחות.
> D-Bus הוא רכיב מובנה לא מזמן להפצות שולחן עבודה בלינוקס.
לא מזמן ????? אני משתמש בו מאז 2005.
דבר נוסף הוא kdbus שהוא לאחרונה. זהו, לפשט, את שילוב ה- dbus בתוך הליבה.
זה עדיין זמן קצר יותר מכלום מכיוון ש- D-Bus דורש ששאר רכיבי המערכת יתחילו להשתמש בו בכדי להיות פונקציונליים לחלוטין.