zoukankan      html  css  js  c++  java
  • Android深度探索第一章读后感

    读了第一章后发现学习Linux驱动编程一定要了解Linux驱动只与Linux内核有关,与用户使用的Linux系统(Ubuntu Linux、Fedora Linux、Android等)无关,也就是说,不管是哪个Linux系统,只要使用了同样的Linux内核,驱动就可以通用。唯一可以判断Linux内核是否相同的方法就是Linux内核版本号。那么怎么判断两个Linux系统是否具有相同的内核呢?书中写到:只有组成内核版本号的五部分(主版本号、次版本号、修订版本号、微调版本号、为特定的Linux系统特别调校的描述)完全相同,才能说明两个Linux系统的内核是相同的。那么学习Android驱动开发就可以看作是学习Linux驱动开发,只不过Android比Linux多了一个HAL(硬件抽象层),这是Android特有的。一般的Android驱动都会有对应的HAL,不过HAL也不是必须的,通过NDK(原生软件开发工具包)也可以直接访问Linux驱动。但书中说Google建议最好为Linux驱动编写对应的HAL程序库.

    注:HAL的作用是将操作系统的其余部分表示为抽象的硬件设备,特别是去除了真正硬件所富含的瑕疵和特质。这些设备表现为操作系统的其它部分和设备可以使用的独立于机器的服务的形式。通过使用HAL服务和间接硬件寻址,当移植到新的硬件上时,驱动程序和核心只需做很少的改动。移植HAL本身是直接的,因为所有的机器相关代码都集中在一个地方,并且移植的目标是充分定义的,即实现所有的HAL服务。

  • 相关阅读:
    IE11 Promise对象未定义错误--解决方法
    HTML中 li 标签的value属性兼容问题
    Oracle--树形自关联表查询SQL
    SVNTortoise--Branche和Merge操作
    console--API
    前端自动分环境打包(vue和ant design)
    typeScript入门(四)泛型
    typeScript入门(三)接口
    typeScript入门(二)函数与类
    typeScript入门(一)构建环境和数据类型
  • 原文地址:https://www.cnblogs.com/maoyuan/p/5439644.html
Copyright © 2011-2022 走看看