第1讲 设备驱动简介.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 设备驱动简介 以 Linux 为代表的自由操作系统的很多优点之一, 是它们的内部是开放给 所有人看的. 操作系统, 曾经是一个隐藏的神秘的地方, 它的代码只局限于少数 的程序员, 现在已准备好让任何具备必要技能的人来检查, 理解以及修改. Linux 已经帮助使操作系统民主化. Linux 内核保留有大量的复杂的代码, 但是, 那些 想要成为内核 hacker 的人需要一个入口点, 这样他们可以进入代码中, 不会被 代码的复杂性压倒. 通常, 设备驱动提供了这样的门路. 驱动程序在 Linux 内核里扮演着特殊的角色. 它们是截然不同的黑盒子, 使硬件的特殊的一部分响应定义好的内部编程接口. 它们完全隐藏了设备工作 的细节. 用户的活动通过一套标准化的调用来进行, 这些调用与特别的驱动是独 立的; 设备驱动的角色就是将这些调用映射到作用于实际硬件的和设备相关的 操作上. 这个编程接口是这样, 驱动可以与内核的其他部分分开建立, 并在需要 的时候在运行时插入. 这种模块化使得 Linux 驱动易写, 以致于目前有几百 个驱动可用. 编写 Linux 设备驱动有许多理由让人感兴趣. 可用的新硬件出现的速率( 以 及陈旧的速率)就确保了驱动编写者在可见的将来内是忙碌的. 个别人可能需要 了解驱动以便存取一个他们感兴趣的特殊设备. 硬件供应商, 通过为他们的产品 开发 Linux 驱动, 可以给他们的潜在市场增加大量的正在扩张的 Linux 用户基 数. 还有 Linux 系统的开放源码性质意味着如果驱动编写者愿意, 驱动源码能 够快速地散布到几百万用户. 本书指导你如何编写你自己的驱动, 以及如何利用内核相关的部分. 我们采 用一种设备-独立的方法; 编程技术和接口, 在任何可能的时候, 不会捆绑到任 何特定的设备. 每一个驱动都是不同的; 作为一个驱动编写者, 你需要深入理解 你的特定设备. 但是大部分的原则和基本技术对所有驱动都是一样的. 本书无法 教你关于你的设备的东西, 但是它给予你所需要的使你的设备运行起来的背景 知识的指导. 在你学习编写驱动时, 你通常会发现大量有关 Linux 内核的东西. 这也许 会帮助你理解你的机器是如何工作的, 以及为什么事情不是如你所愿的快, 或者 不是如你所要的进行. 我们会逐步介绍新概念, 由非常简单的驱动开始并建立它 们; 每一个新概念都伴有例子代码, 这样的代码不需要特别的硬件来测试. 本章不会真正进入编写代码. 但是, 我们介绍一些 Linux 内核的背景概念, 这样在以后我们动手编程时, 你会感到乐于知道这些. 1.1 驱动程序的角色 作为一个程序员, 你能够对你的驱动作出你自己的选择, 并且在所需的编程 时间和结果的灵活性之间, 选择一个可接受的平衡. 尽管说一个驱动是灵活的, 听起来有些奇怪, 但是我们喜欢这个字眼, 因为它强调了一个驱动程序的角色是 提供机制, 而不是策略. 机制和策略的区分是其中一个在 Unix 设计背后的最好观念. 大部分的编 程问题其实可以划分为 2 部分: 提供什么能力(机制) 和 如何使用这些能力 (策略). 如果这两方面由程序的不同

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档