在 Unix 系统中, 几个并发的进程专注于不同的任务. 每个进程请求系统资源, 象计算能力, 内存, 网
络连接, 或者一些别的资源. 内核是个大块的可执行文件, 负责处理所有这样的请求.
设备控制
几乎每个系统操作最终都映射到一个物理设备上. 除了处理器, 内存和非常少的别的实体之
外, 全部中的任何设备控制操作都由特定于要寻址的设备相关的代码来进行. 这些代码称为
设备驱动. 内核中必须嵌入系统中出现的每个外设的驱动,
Linux 的众多优良特性之一就是可以在运行时扩展由内核提供的特性的能力. 这意味着你可以在系
统正在运行着的时候增加内核的功能( 也可以去除 ).通过 insmod 程序, 以及通过 rmmod 程序去连接
3 类驱动:字符设备 块设备 网络接口例如, 你可以说 USB 模块, 串口模块, SCSI 模块, 等等. 每个
USB 设备由一个 USB 模块驱动, 与 USB 子系统一起工作, 但是设备自身在系统中表现为一个字符设
备( 比如一个 USB 串口 ), 一个块设备( 一个 USB 内存读卡器 ), 或者一个网络设备( 一个 USB 以太
网接口 ).
不同于大部分的小的和中型的应用程序从头至尾处理一个单个任务, 每个内核模块只注册自己以
便来服务将来的请求, 并且它的初始化函数立刻终止. 换句话说, 模块初始化函数的任务是为以后
调用模块的函数做准备; 好像是模块说, " 我在这里, 这是我能做的."模块的退出函数( 例子里是
hello_exit )就在模块被卸载时调用. 它好像告诉内核, "我不再在那里了, 不要要求我做任何事了."这
种编程的方法类似于事件驱动的编程, 但是虽然不是所有的应用程序都是事件驱动的, 每个内核模
块都是.
一个模块在内核空间运行, 而应用程序在用户空间运行. 这个概念是操作系
统理论的基础.我们常常提到运行模式作为内核空间和用户空间. 这些术语不仅包含存在于这两个模式中不同特
权级别, 还包含有这样的事实, 即每个模式有它自己的内存映射 -- 它自己的地址空间.
Linux 内核代码, 包括驱动代码, 必须是可重入的 -- 它必须能够同时在多个上下文中运行. 数
据结构必须小心设计以保持多个执行线程分开, 并且代码必须小心存取共享数据, 避免数据的破
坏.
尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的.
分享到:
相关推荐
Linux 设备驱动
1. 第一章 设备驱动简介1.1. 驱动程序的角色1.2. 划分内核严立钻监制Linux 设备驱动 Edition 3-Linux设备驱动第三版(中文版)- -
Linux 设备驱动 Edition 3源代码,方便下载!
Linux 设备驱动 Edition 3 - LDD3中文版,学习linux必备之书,pdf格式
Linux+设备驱动+Edition+3+-+LDD3中文版带书签全。清晰
在网上有幸看到了该书的pdf格式文档,但下载后打开发现格式编排很乱,而且有一些文字看不到,故从网上搜了一下该资源重新做成pdf文档,希望对您有所帮助.
Linux-Device-Driver-Edition-3 这是linux驱动设计最经典的教材。是所有linux驱动开发人员必备的教材之一,这个文档是汉化后并且整理成pdf的,十分难得
linux设备驱动第三版,中文非扫描,加例子程序,
This is the web site for the Third Edition of Linux Device Drivers, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. For the moment, only the finished PDF files are available; we do int...
经典的LINUX设备驱动程序教程 第二版 作者简介 Alessandro Rubini 在他获得电子工程师职称后不久,就安装了 Linux 0.99.14 版本。后来,他 在 Pavia 大学获得了计算机科学博士学位。但很快他就离开了大学,因为他...
从(www.deansys.com)下载的网页,自己打包。 中文版的linux驱动编程指导。
Linux 设备驱动 Edition 3
这是linux设备驱动第三版的中文版chm格式
Linux设备驱动经典教材,第三版 中文版。
Linux 设备驱动 Edition3 在网上找到的,希望对大家有帮助
Linux 设备驱动 Edition 3 By Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman 由 quickwhale 翻译的简体中文版 V0.1.0 2006-6-2 作为蓝本, 由 Dean 进行校验修正部分翻译段落。 遵循原版的版权...