Share to: share facebook share twitter share wa share telegram print page

D-Bus

D-Bus
開發者紅帽公司及社群
当前版本1.14.0[1](2022年2月28日,​2年前​(2022-02-28
预览版本1.13.22[2](2022年2月23日,​2年前​(2022-02-23
源代码库 編輯維基數據鏈接
编程语言C
操作系统跨平台
类型
许可协议GNU通用公共许可证第二版或更新,或是AFL 2.1[3]
网站www.freedesktop.org/wiki/Software/dbus

D-Bus是一個行程間通訊远程过程调用機制,可以讓多個不同的计算机程序(即行程)在同一臺電腦上同時進行通訊[4]。D-Bus作為freedesktop.org專案的一部份,其設計目的是使Linux桌面环境(如GNOMEKDE等)提供的服務標準化。

freedesktop.org專案同時也開發了一個稱為libdbus的自由及开放源代码软件函式庫,作為規範的參考實作。這個函式庫常與D-Bus本身混淆。也存在著其他的D-Bus實作,像是GDBus (GNOME)[5],QtDBus (Qt/KDE)[6],dbus-java[7]以及sd-bus(systemd的一部份)[8]

概觀

沒有D-Bus時程序間的通訊
沒有D-Bus時程序間的通訊
使用D-Bus時程序間的通訊
使用D-Bus時程序間的通訊
沒有D-Bus時,如果大量的程序需要彼此進行通訊,其通訊網路將會非常復雜及龐大(因爲大部分程序使用一對一通訊)。使用D-Bus則可以簡化通訊網路。

D-Bus可用於同一個桌面会话中不同桌面应用软件間的通訊,能整合桌面会话,也解決了行程的生命週期的問題。它也允許桌面会话與操作系统間的通訊,這通常包括了内核與任何的系統守护进程或一般行程間的通訊。

當大量的程序進行通訊時,由於程序跟程序之間必須建立起一對一的通訊,則整體的通訊網路將會非常復雜,而通訊效率也會因此低下不可靠。D-Bus提供了一個軟體匯流韃靼語Software bus抽象層,能夠匯整所有的訊息到一個虛擬的通訊頻道[4]。連接到D-Bus的程序無法也無需知道D-Bus是如何實做,但是只要遵從D-Bus的標準,就能保證所有連接到D-Bus的程序能進行彼此間的交流。換句話說,D-Bus是一個訊息匯流排英语Message-oriented middleware系統,即行程間通訊的媒介,讓應用程式間可以通訊並交換訊息。因此,D-Bus为應用程式增加新的功能,簡化已有功能,包含資訊分享、模組化及權限分離英语Privilege separation。例如透過藍牙Skype所接收到的通話可以傳播到任何目前執行中的音樂播放器,並可使其靜音或暫停播放,直到通話結束[9]

大多數的系統會實作一個具較高權限的系統頻道,連同給每一個已登入的使用者的專用頻道,這就可以讓D-Bus中可用的登錄資訊受到限制。因此,D-Bus服務同時包含了系統守護行程(給像是「新增硬體裝置」或是「印表機佇列變更」等事件使用)以及一個給每個使用者的登入会话(給这个使用者啟動的行程間的一般通訊使用)使用的獨有守护进程。應用程式透過Unix域套接字與守護行程通訊。訊息匯流排是建基於通用的一對一訊息傳遞框架,這讓任意兩個程式間可以不必透過訊息匯流排守護行程而直接通訊[10]

內部

dbus-daemon在現代的Linux圖形化桌面環境中扮演相當重要的角色。上面同時也有出現的Binder則是在Android上的等價軟體。

D-Bus有三個抽象層[9]

  • libdbus —— 讓兩個應用程式可以互相連結並交換訊息的函式庫
  • dbus-daemon —— 訊息匯流排的可執行檔,建基於libdbus,可連結到多個應用程式。這個守護行程可以將訊息按特定路徑轉送給零個或更多個應用程式,從而實作发布/订阅模式。
  • 基於特定應用程式框架的封裝函式庫

接收到訊息的D-Bus連線會被轉送到一個特定的物件,而非行程。因此,客戶端只知道它們是與物件互動,但並不知道另一側是否真的有物件。

D-Bus為每個物件定義了一個名稱,其看起來像是POSIX檔案系統路徑,但實際上並不是,例如/org/kde/kspread/sheets/3/cells/4/5。D-Bus物件的名稱通常會使用命名空间以協助獨立開發程式碼模組[11]。命名空間一般會以開發者的保留域名組件作為前綴(例如/org/kde)。

採用

KDE第二版與第三版使用的DCOP英语DCOP系統对D-Bus有深刻影响,后者在KDE 4中取代了前者。D-Bus的實作支援大多數的POSIX作業系統,也有一個Windows的移植。它也在Qt 4、GNOMEXfce中使用。在GNOME中,它已逐漸取代了早期的Bonobo英语Bonobo (component model)機制。

D-Bus最初用于桌面環境,后来使用範圍逐漸扩展,包含的系統服務越來越多。例如NetworkManager網路守護行程、BlueZ藍牙堆疊及PulseAudio音訊伺服器都使用D-Bus來提供其部份或全部的服務,systemd也正促使傳統的系統守護行程(如logind)轉換到D-Bus服務。[來源請求]

它也用于AllJoyn協定在家庭自動化中的導線協定英语Wire protocol,為AllJoyn加入了探索、工作階段管理、安全、標頭壓縮、嵌入式裝置支援[12]

實作

libdbus
雖然已經有多個D-Bus的實作,但其中使用最廣泛的參考實作是libdbus,開發者就是設計規範的freedesktop.org專案。不过libdbus是一個低階的實作,並不會直接被應用程式開發者所使用,但是可作為其他D-Bus實作(像是包含在桌面環境的標準函式庫中或是在编程语言綁紮中的實作)的參考指南。freedesktop.org專案自身建議應用程式的作者「使用較高階的綁紮或是實作」來替代[13]
因為libdbus是最常被使用的D-Bus實作,術語"D-Bus"與"libdbus"經常互換使用,導致了混亂。
GDBus
GDBus[5]是一個基於包含在GLib中的GIO串流英语GIO (software)的D-Bus實作,其致力於讓GTK+GNOME使用。GDBus並不是libdbus的封裝,而是一個完整且獨立的D-Bus規範與協定的重新實作[14]
QtDBus
QtDBus[6]是一個自4.2版開始,包含於Qt函式庫的D-Bus實作。這個組件也被KDE的應用程式、函式庫及組件用於存取在系統中所提供的D-Bus服務。
sd-bus
2013年時,systemd專案重寫了libdbus,並努力簡化程式碼[15],它也使得D-Bus的整體效能有所提升。在先前的測試中,BMW發現systemd的D-Bus函式庫效能增長了360%[16]。 而到了221版本的systemd,sd-bus的应用程序接口(英語:API)已被宣告為穩定[17]
kdbus
另外還有一個積極開發中的專案,稱為kdbus,其致力於重新實作D-Bus為核心中介的點對點行程間通訊機制。除了效能的提升,kdbus也受益於已經存在的Linux内核特性,像是命名空間、審核機制[18][19]、核心傳遞的安全特性、終止競爭條件等,並讓D-Bus可以在開機與關機時使用(此時需要systemd)[20]。但kdbus在Linux核心的特性中造成了不尋常的爭議[21],是以截至2015年6月 (2015-06)都尚未被合併[22]
語言綁紮
已經有多個程式語言的D-Bus綁紮被開發出來[23],像是 JavaC♯Ruby以及Python等的綁紮均已存在。

參見

參考資料

  1. ^ Simon McVittie. Announcing dbus 1.14.0 (new stable branch). 2022-02-28 [2022-02-28]. (原始内容存档于2022-03-01). 
  2. ^ Simon McVittie. Announcing dbus 1.13.22 (1.14.0 release candidate). 2022-02-23 [2022-02-23]. (原始内容存档于2022-02-28). 
  3. ^ havoc. GPL + AFL. Havoc's Blog. 2007-07-17 [2015-08-27]. (原始内容存档于2015-09-07). 
  4. ^ 4.0 4.1 Cocagne, Tom. DBus Overview. pythonhosted.org. [2015-05-23]. (原始内容存档于2015-06-08). 
  5. ^ 5.0 5.1 gdbus. GNOME developer. GNOME project. [2015-01-04]. (原始内容存档于2015-01-05). 
  6. ^ 6.0 6.1 QtDBus module. Qt專案. Qt專案. [2015-06-01]. (原始内容存档于2015-05-06). 
  7. ^ DBus-Java Documentation. FreeDesktop.org. [2015-01-04]. (原始内容存档于2014-12-23). 
  8. ^ The new sd-bus API of systemd. 2015-06-19 [2015-06-20]. (原始内容存档于2015-06-22). 
  9. ^ 9.0 9.1 Robert Love. Get on the D-BUS. Linux Journal. 2005-01-05 [2014-10-14]. (原始内容存档于2014-10-20). 
  10. ^ dbus: What is D-Bus?. freedesktop.org. 2014-01-20 [2014-10-14]. (原始内容存档于2014-10-18). 
  11. ^ D-Bus Tutorial. [2015-08-28]. (原始内容存档于2015-08-28). 
  12. ^ Difference from D-Bus?. Allseen Alliance. 2013-12-11 [2015-08-27]. (原始内容存档于2015-07-21). 
  13. ^ What is D-Bus?. FreeDesktop.org. [2015-01-05]. (原始内容存档于2015-01-05). 
  14. ^ Migrating to GDBus. GNOME Developer. [2015-06-16]. (原始内容存档于2015-09-06). 
  15. ^ Poettering, Lennart. libsystemd-bus + kdbus plans. systemd-devel mailing list. [2015-04-24]. (原始内容存档于2019-06-24). 
  16. ^ ALS: Linux inter-process communication and kdbus. LWN.net. 2013-05-30 [2013-11-13]. (原始内容存档于2013-11-13). 
  17. ^ [systemd-devel] [ANNOUNCE] systemd v221. freedesktop.org. 2015-06-19 [2015-06-20]. (原始内容存档于2015-06-20). 
  18. ^ Jake Edge. ALS: Linux interprocess communication and kdbus. LWN.net. 2013-05-30 [2014-04-11]. (原始内容存档于2014-04-09). 
  19. ^ Jonathan Corbet. The unveiling of kdbus. LWN.net. 2014-01-13 [2014-04-11]. (原始内容存档于2014-04-09). 
  20. ^ Greg Kroah-Hartman. [GIT PULL] kdbus for 4.1-rc1. 2015-04-13 [2015-08-28]. (原始内容存档于2015-07-01). 
  21. ^ Corbet, Jonathan. The kdbuswreck. LWN.Net. [2015-06-29]. (原始内容存档于2015-06-24). 
  22. ^ Michael Larabel. It Doesn't Look Like KDBUS Will Make It For Linux 4.1. Phoronix. 2015-04-26 [2015-08-28]. (原始内容存档于2015-09-05). 
  23. ^ D-Bus Bindings. FreeDesktop.org. [2015-01-05]. (原始内容存档于2014-12-24). 

外部連結

Read other articles:

Dutch football club This article uses bare URLs, which are uninformative and vulnerable to link rot. Please consider converting them to full citations to ensure the article remains verifiable and maintains a consistent citation style. Several templates and tools are available to assist in formatting, such as reFill (documentation) and Citation bot (documentation). (September 2022) (Learn how and when to remove this template message) Football clubLRC LeerdamFull nameLeerdamse Racing Club uit L...

 

Den här artikeln behöver källhänvisningar för att kunna verifieras. (2016-12) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. Butters StotchSouth Park-rollfigurFörsta framträdandeCartman Gets an Anal Probe (Som statist), Two Guys Naked in a Hot Tub (som en huvudkaraktär)RöstskådespelareMatt StoneAnknytningYrkeFjärdeklassareReligionRomersk-...

 

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (أكتوبر 2023) هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق

محاضرات فاينمان في الفيزياء (بالإنجليزية: The Feynman Lectures on Physics)‏  محاضرات فاينمان في الفيزياء بما في ذلك نصائح فاينمان في الفيزياء: الطبعة النهائية والموسعة (الطبعة الثانية، 2005) معلومات الكتاب المؤلف ريتشارد فاينمان، روبرت لايتون وماثيو ساندز البلد الولايات المتحدة اللغة...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Mei 2016. Daitsuiseki (大追跡code: ja is deprecated ) adalah serial drama televisi komedi-laga dari Jepang yang ditayangkan di jaringan televisi Nippon Television dari 4 April hingga 26 September 1978. Serial drama ini dibintangi Yuzo Kayama, Masaya Oki, Tatsuya ...

 

WCIT 2019 WISTA 世界資訊科技與服務聯盟(World Information Technology and Services Alliance , WITSA)是一個資訊及通訊科技國際組織,成立於1978年,會員係來自全球五大洲 84 個國家的ICT同業團體, 為全球最大的ICT服務業組織,宗旨為推動資訊科技業應用與發展, 致力推動ICT產業自由化發展並破除各國貿易障礙,會員佔了全世界資訊科技與服務市場的90%以上。該組織通常每兩年舉辦一次世界�...

Volcanic island and seamount chain on the Nazca Plate Map of the volcanic arcs in the Andes and subducted structures affecting volcanism The Juan Fernández Ridge is a volcanic island and seamount chain on the Nazca Plate. It runs in a west–east direction from the Juan Fernández hotspot to the Peru–Chile Trench at a latitude of 33° S near Valparaíso. The Juan Fernández Islands are the only seamounts that reach the surface. Subduction of the ridge beneath South America is thought to ha...

 

American tennis player For the Australian geologist, see Bob Bryan (geologist). For other people, see Robert Bryan. See also: Bryan brothers Bob BryanBryan at the 2015 French OpenFull nameRobert Charles BryanCountry (sports) United StatesResidenceSunny Isles Beach, Florida, U.S.Born (1978-04-29) April 29, 1978 (age 45)[1]Camarillo, California, U.S.Height1.93 m (6 ft 4 in)Turned pro1998Retired2020PlaysLeft-handed (one-handed backhand)CollegeStanf...

 

American basketball player (born 1988) For other people named Stephen Curry, see Stephen Curry (disambiguation). Stephen CurryCurry in 2023No. 30 – Golden State WarriorsPositionPoint guardLeagueNBAPersonal informationBorn (1988-03-14) March 14, 1988 (age 35)Akron, Ohio, U.S.Listed height6 ft 2 in (1.88 m)Listed weight185 lb (84 kg)Career informationHigh schoolCharlotte Christian(Charlotte, North Carolina)CollegeDavidson (2006–2009)NBA draft2009: 1st r...

محتوى هذه المقالة في طور الترجمة من مقالة «List of Mesopotamian deities» في ويكيبيديا الإنجليزية. رجاءً لا تحرر هذه الصفحة في أثناء وجود هذه الرسالة في رأسها، لكي لا يحدث أي تضارب في التحرير. ختم أسطواني أكدي يعود لحوالي سنة 2300 ق. م، وتصور الآلهة إنانا وأوتو وإنكي وإسيمود.[1] آلهة الع�...

 

List of characters in The Witcher series This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (May 2011) (Learn how and when to remove this template message) This list is incomplete; you can help by adding missing items. (December 2022) The fictional universe of The Witcher Saga was created by Polish writer Andrzej Sapkowski. The following is a list of notable char...

 

Abdullah Al-Zoriعبد الله محمد الزوري الدوسري Informações pessoais Nome completo Abdullah Mohammed Al-Zoari Al-Dossary Data de nascimento 13 de agosto de 1987 (36 anos) Local de nascimento Riade, Arábia Saudita Altura 1,78 m Informações profissionais Clube atual Al-Hilal Número 4 Posição Lateral-esquerdo Clubes de juventude Al-Nahda Clubes profissionais Anos Clubes Jogos e gol(o)s 2007– Al-Hilal 0146 00(11) Seleção nacional 2009–  Arábia Sa...

Icy moons are a class of natural satellites with surfaces composed mostly of ice. An icy moon may harbor an ocean underneath the surface, and possibly include a rocky core of silicate or metallic rocks. It is thought that they may be composed of ice II or other polymorph of water ice.[1] The prime example of this class of object is Europa. Icy moons warmed by tides may be the most common type of object to have liquid water,[citation needed] and thus the type of object to possi...

 

قرية المنقاش  - قرية -  تقسيم إداري البلد  اليمن المحافظة محافظة أبين المديرية مديرية رصد العزلة عزلة القارة السكان التعداد السكاني 2004 السكان 48   • الذكور 23   • الإناث 25   • عدد الأسر 6   • عدد المساكن 4 معلومات أخرى التوقيت توقيت اليمن (+3 غرينيتش) تعديل �...

 

Japanese politician Natsuo Yamaguchi山口 那津男President of KomeitoIncumbentAssumed office 8 September 2009Preceded byAkihiro OtaMember of the House of CouncillorsIncumbentAssumed office 29 July 2001ConstituencyTokyoMember of the House of RepresentativesIn office18 February 1990 – 20 October 1996ConstituencyTokyo 10th district Personal detailsBorn (1952-07-12) 12 July 1952 (age 71)Nakaminato, Ibaraki, JapanPolitical partyKomeitoOther politicalaffiliationsNew Front...

Kementerian Urusan Luar Negeri USSRМинистерство иностранных дел СССРSeluruh segel kementerian Uni Soviet memakai lambang SovietInformasi lembagaDibentuk16 July 1923Dibubarkan15 November 1991Lembaga penggantiKementerian Urusan Luar Negeri Federasi Rusia (1992)Wilayah hukumUni Republik Sosialis SovietKantor pusatMoskwa, SFSR Rusia, Uni Soviet Kementerian Urusan Luar Negeri Uni Republik Sosialis Soviet (bahasa Rusia: Министерство иностранны...

 

Dark AscensionTeaser posterSutradara Gene Fallaize Produser Gene Fallaize Tony Cook Scott Spiegel (executive) Ditulis oleh Gene Fallaize Tony Cook SkenarioGene FallaizeTony CookCeritaMarcus AkoTony CookPemeranBruce CampbellTara ReidSean YoungPaul BlackthorneBrian BlessedJillian MurrayMackenzie CrookPenata musikJoseph BennieSinematograferGeoff BoylePenyuntingDamian KnightPerusahaanproduksiCupsogue PicturesTanggal rilis Desember 2017 (2017-12) Durasi112 minutesNegara Britania Raya Am...

 

Private, day, college-prep school in Shaker Heights and Hunting Valley, Ohio, United StatesUniversity SchoolLocationShaker Heights and Hunting Valley, OhioUnited StatesCoordinates41°29′10″N 81°25′42″W / 41.48611°N 81.42833°W / 41.48611; -81.42833 (Upper School Campus)41°28′56″N 81°31′57″W / 41.48222°N 81.53250°W / 41.48222; -81.53250 (Lower School Campus)InformationTypePrivate, Day, college-prepMottoResponsibility, Loyalt...

Opera sabun (bahasa Inggris: soap opera) adalah genre serial drama televisi dan radio yang dicirikan dengan ceritanya yang berbelit-belit dan sentimental.[1] Program pertama yang biasanya dianggap sebagai opera sabun oleh peneliti genre ini adalah Painted Dreams,[2][3] yang pertama disiarkan di radio WGN, Chicago, pada 20 Oktober 1930.[3] Istilah opera sabun sendiri berasal dari bagaimana program drama radio awalnya disponsori oleh perusahaan sabun.[4] ...

 

2009 studio album by Jill JohnsonMusic Row IIStudio album by Jill JohnsonReleased28 October 2009GenreCountry, PopLength48:04LabelLionheart RecordsJill Johnson chronology Baby Blue Paper(2008) Music Row II(2009) The Well-Known And Some Other Favourite Stories(2010) Music Row II is the second cover album by Jill Johnson, recorded in Nashville and released on 28 October 2009, two years after Music Row. Track listing No.TitleWriter(s)Length1.Love Is a Rose (Linda Ronstadt cover)Neil Young...

 
Kembali kehalaman sebelumnya