bluez
1.kernel層實現:
bluetooth協議棧有多層結構,最底層的硬體協議在硬體中就已經實現了。軟體級別的協議實現,從hci這一層開始實現。 bluez對各層協議的實現是依託於socket的。bluez首先建立了乙個新的socket中的協議--pf_bluetooth (af_bluetooth=31). (也就是說,socket()的第乙個引數:domain必須是:pf_bluetooth )。這也意味著,位址型別需要使用bluetooth所定義的。其實很簡單,就是在net_families(網路協議列表)中新增了pf_bluetooth這一項。如果對linux kernel有了解的話,就知道這個註冊動作一定在bluetooth init部分作的。同樣,各個協議層(如:hci,l2cap,hid等)都將自己的行為規範新增到pf_bluetooth協議中。
2.應用程式層實現:
雖然kernel層已經將bluetooth協議棧完全實現了,但如果要使用起來,還是非常不方便的。畢竟應用程式與kernel最方便的交流通道就是ioctl().這非常不直觀。於是,bluez又提供了一套api,這個api幫助開發者方便的與kernel層協議打交道。當然,這些api底層的實現其就是是ioctl.bluez的時間,基本就是這樣了。
003 Windows驅動之應用層與核心層通訊
我們在進行win32開發的時候,肯定都接觸過windows的訊息機制,訊息會被封裝成乙個結構體 msg。我們做驅動開發的時候,訊息被封裝成了另外乙個結構體,也就是irp i o request package 我們用windbg工具檢視一下irp結構體 kd dt irp nt irp 0x000 ...
Windows核心層與應用層進行同步通訊
我們可以利用event事件核心物件進行同步。通過建立命名的事件核心物件 名稱前會預設加 local process1 handle hevent createevent null,false,false,text eventname setevent hevent process2 handle h...
核心層API分類
核心層api按其用途分為以下幾類 i o管理器類,此類函式以io打頭,這些函式用來和i o管理器打交道的。程序結構模組相關函式,此類函式以ps打頭。建立並管理核心模式的執行緒。executive執行支援函式,這類函式以ex打頭。提供堆管理和同步服務。物件管理類函式,提供各種資料物件管理功能,此類函式...