There are two reasons I wrote this document. The first is that during my research, which involved the heavy use of Bluetooth, I could not find any good documentation on using Bluetooth in Linux or programming with the BlueZ development libraries. BlueZ, like many other excellent open-source software projects, provides a robust and mature development environment, but has virtually no documentation whatsoever. The second reason is that I really needed some material for my master's thesis ;) No silly, this isn't the whole thesis, but it helped give context to the rest of it.
The original thesis was written in Latex, and there may be some residual Latex formatting (e.g. all the citations).