MeeGo 中間件(middleware) 通信服務 之(一) 連接管理
MeeGo 中間件(middleware) 通信服務 之(一)連接管理
MeeGo通信服務子係統主要向平台提供聲音和數據通信,提供了用於管理無線服務、網絡語音服務、數據通信的API,麵向的技術包括3G、wifi、WiMax以及藍牙。
連接管理(Connman)
ConnMan給運行linux操作係統的設備提供一個守護進程,該進程用於管理網絡連接。ConnMan使係統模塊化,使得係統網絡模塊易於擴展,3G,wifi,WiMax以及藍牙連接等很容易被添加到係統中去。網絡可以通過DHCP進行配置,同時,應用程序也支持域名解析功能,而且還提供了航班模式。
ConnMan比較小巧,占用資源少,可以很方便的被集成。對於一個模塊化係統來說,有線和無線服務可以以插件的形式添加到係統。
上圖中,main Loop相當於一個消息循環,相關用法請參考glib的main loop資料.
下麵貼出來的是connman的部分源代碼
__connman_dbus_init(conn); __connman_storage_init(); __connman_element_init(option_device, option_nodevice); __connman_agent_init(); __connman_tethering_init(); __connman_counter_init(); __connman_ondemand_init(); __connman_manager_init(option_compat); __connman_profile_init(); __connman_config_init(); __connman_resolver_init(); __connman_ipconfig_init(); __connman_rtnl_init(); __connman_udev_init(); __connman_task_init(); __connman_session_init(); __connman_timeserver_init(); __connman_plugin_init(option_plugin, option_noplugin); __connman_element_start(); g_free(option_device); g_free(option_plugin); g_free(option_nodevice); g_free(option_noplugin); memset(&sa, 0, sizeof(sa)); sa.sa_handler = sig_term; sigaction(SIGINT, &sa, NULL); sigaction(SIGTERM, &sa, NULL); g_main_loop_run(main_loop);
ConnMan是基於DBus和Glib庫來實現的.
這些__connman_xxx_init函數是ConnMan的核心,它們創建了一係列的哈希表和鏈表,例如服務server_list, driver_list.
這也就是為什麼ConnMan可以使MeeGo係統模塊化的原因.通過plugin的形式,將模塊加入到係統中,就是通過這些鏈表和哈希表對設備包括設備信息設備驅動進行管理,這也是ConnMan連接管理的作用.
版權申明:
轉載文章請注明原文出處https://blog.csdn.net/feiyinzilgd/archive/2010/09/06/5866436.aspx
最後更新:2017-04-02 06:51:24
上一篇:
深入理解可重入與線程安全
下一篇:
Findstr 命令
JDBC性能優化方案
Condition
【持續更新】上海雲棲大會,阿裏雲都重磅發布了啥?重要消息一文薈萃!
android關於實現EditText中加多行下劃線的的一種方法
linq to xml之增改刪查
Android Studio 中提示 Private field 'mType' is assigned but never accessed 的原因
springboot(二):web綜合開發
oracle與sql server大批量存儲過程可以替換部分
vs2010 com組件中沒有 AxWMPLib與WMPLib
輕鬆使用阿裏雲資源編排,方便你的API管理