diff options
authorClaudio Takahasi <>2012-02-29 14:11:17 -0300
committerClaudio Takahasi <>2012-02-29 14:11:17 -0300
commitf88e9a582b3fe03f7943680fa7be6e6db50653f8 (patch)
parentddbf57d7d0fb585de26885b800a90bb1cdca7dba (diff)
bluez: Brief description userspace architecture
1 files changed, 11 insertions, 0 deletions
diff --git a/bluez.tex b/bluez.tex
index 6a85598..2dde5e5 100644
--- a/bluez.tex
+++ b/bluez.tex
@@ -51,6 +51,11 @@ manage adapter, devices and services.
\section{Linux Bluetooth userspace architecture}
+BlueZ userspace is composed by {\em bluetoothd}, libbluetooth, and command
+line tools. {\em bluetoothd} is the daemon responsible for the configuration
+of the Bluetooth modules in the kernel, and for providing user level APIs to
+manage local adapters and control device creation procedure.
BlueZ core provides the abstraction to manage adapters, devices, services
@@ -58,6 +63,12 @@ discovery, and security. Service(Profiles) plugins are implemented on the
top of it. The major entities of the core are: adapter, device, sdp, agent
for authorization and pairing, and GAttrib.
+In BlueZ, create a device means to get from the remote the services
+information, and to pair with it(CreatePairedDevice). BR/EDR and Bluetooth Low
+Energy uses the same API to discover devices and to manage pairing, the user
+does not need to know the adapters capabilities. The abstraction is implemented
+in the kernel and {\em bluetoothd} daemon.
Services plugins are in general device driver(s) for a specific Bluetooth
service. The design is based on the kernel device drivers: when the device
is created, plugins are probed based on the supported UUIDs. It is analogous