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的时间,基本就是这样了。

BlueZ--内核层+应用层相关推荐

  1. 安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)

    首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层.系统运行库层.应用框架层和应用层,那就先说说这几层. 1.linux内核层: Andr ...

  2. 内核层与应用层通信详解

    做驱动开发的肯定会遇到应用层与内核层的通信的问题,首先说内核层与应用层的通信可以大概分为两个方面,第一是应用层向内核层主动传递消息,第二是内核层主动与应用层通信.下面我们将分开来谈两个方面. 我们先来 ...

  3. Linux内核和应用层程序通信get/setsockopt示例

    最近开发一个realtek网卡配置程序,基于realtek提供的一套配置程序代码开发,分析代码的时候发现用户层和驱动之间传递消息是使用的是setsockopt.getsockopt,这个对我来说比较新 ...

  4. 驱动开发:内核层InlineHook挂钩函数

    在上一章<驱动开发:内核LDE64引擎计算汇编长度>中,LyShark教大家如何通过LDE64引擎实现计算反汇编指令长度,本章将在此基础之上实现内联函数挂钩,内核中的InlineHook函 ...

  5. 驱动通信:通过PIPE管道与内核层通信

    在本人前一篇博文<驱动开发:通过ReadFile与内核层通信>详细介绍了如何使用应用层ReadFile系列函数实现内核通信,本篇将继续延申这个知识点,介绍利用PIPE命名管道实现应用层与内 ...

  6. [转载] 关于Win7 x64下过TP保护的一些思路,内核层过保护,驱动过保护

    首先特别感谢梦老大,本人一直没搞懂异常处理机制,看了他的教程之后终于明白了. 在他的教程里我学到了不少东西. 第一次在论坛发帖,就说说Win7 x64位下怎么过TP保护.如果有讲错的地方,还望指出. ...

  7. 关于Win7 x64下过TP保护(内核层)(转)

    首先特别感谢梦老大,本人一直没搞懂异常处理机制,看了他的教程之后终于明白了. 在他的教程里我学到了不少东西. 第一次在论坛发帖,就说说Win7 x64位下怎么过TP保护.如果有讲错的地方,还望指出. ...

  8. 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )

    文章目录 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) 二.内存管理流程 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) " 堆内存 " ...

  9. 从内核层说清GetMessage , DispatchMessage

    文章目录 要点回顾: 为什么拿到句柄非得要回零环? 消息队列(总共有7个小队列)结构 GetMessage的声明: GetMessage进入内核: GetMessage的功能总结: DispatchM ...

  10. 用户层和内核层异常的处理流程

    文章目录 内核层异常的处理流程 用户层异常和内核层异常 KiDispatchException函数详解 RtlDispatchException函数的执行流程 用户层异常的处理流程 用户异常的处理流程 ...

最新文章

  1. Hash——字符串匹配(求s1在s2中出现的次数)
  2. 小明分享|8ms平台下工程源码分析
  3. Activity-Service-Receiver-Provider
  4. filegee为啥没变动也更新_2020/10/07|02=下一步行动|evernote更新以及后续影响
  5. 阿尔伯塔大学的计算机科学专业好吗,阿尔伯塔大学哪个专业好?三大热门方向成就高薪未来...
  6. 酒店叫醒系统服务器,酒店叫醒服务的流程
  7. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解
  8. Electron-日志与崩溃收集
  9. ActiveMQ入门教程(一) - JMS和ActiveMQ简介
  10. Java StringTokenizer类使用方式
  11. Visual Graph图形控件的高级应用
  12. UniWebView笔记
  13. 数据库课程设计:利用python+MySQL+pyqt5设计一个带UI界面的书店管理系统
  14. jQuery购物车 商品数量加减和小计
  15. 苹果iOS越狱后没有声音的解决办法
  16. Codeforces Round 1133(Div.3)题解
  17. 1335:【例2-4】连通块——dfs、bfs
  18. rtx2060为什么叫智商卡_笑谈PC圈勇夫:为什么说GTX1050是“智商检测卡”
  19. 软件测试的艺术 读书笔记完整版
  20. pandas技巧:用一列的非空值填充另一列对应行的空值

热门文章

  1. jmi,mof,cwm
  2. ProcessDialogKey 方法实现回车自动换行
  3. Appium自动化测试环境搭建
  4. Boyang Tex上海帛扬时装面料有限公司
  5. 网站初学笔记3-HTML实用元素5
  6. 如何把字符串类型转换成整型?
  7. 哀悼日使站点变灰色调的方法
  8. 冲刺第四天 1.4 FRI
  9. MVC之Model转Json
  10. linux下配置tomcat、resin