linux内核驱动学习--设备驱动程序简介

linux设备驱动–设备驱动程序简介

内核功能划分

根据内核完成任务的不同,可将内核功能分成如下几部分:

  1. 进程管理
    进程管理功能负责创建和销毁进程,并处理它们和外部世界之间的连接(输人输出)。不同进程之间的通信(通过信号、管道或进程间通信原语)是整个系统的基本功能,因此也由内核处理。除此之外,控制进程如何共享CPU的调度器也是进 程管理的一部分。概括来说,内核进程管理活动就是在单个或多个CPU上实现了 多个进程的抽象。
  2. 内存管理
    内存是计算机的主要资源之一,用来管理内存的策略是决定系统性能的一个关键因素。内核在有限的可用资源之上为每个进程都创建了一个虚拟地址空间。内核的不 同部分在和内存管理子系统交互时使用一组函数调用、包括简单的malloc/free函数对以及其他一些复杂的函数。
  3. 文件系统
    Unix在很大程度上依赖于文件系统的概念,Unix中的每个对象几乎都可以当作文 件来看待。内核在没有结构的硬件上构造结构化的文件系统,而文件抽象在整个系 统中广泛使用。另外,Linux支持多种文件系统类型,也就是在物理介质上组织数据的不同方式。例如,磁盘可以格式化为符合Linux标准的ext3文件系统,也可格式化为常用的FAT文件系统或者其他种类。
  4. 设备控制
    几乎每一个系统操作最终都会映射到物理设备上。除了处理器、内存以及其他很有
    限的几个对象外,所有设备控制操作都由与被控制设备相关的代码来完成,这段代
    码就叫做驱动程序。内核必须为系统中的每件外设嵌人相应的驱动程序,这包括硬盘驱动器、键盘和磁带驱动器等。这方面的内核功能将是本书讨论的主题.
  5. 网络功能
    网络功能也必须由操作系统来管理,因为大部分网络操作和具体进程无关:数据包 的传人是异步事件.在某个进程处理这些数据包之前必须收集、标识和分发这些数据包。系统负责在应用程序和网络接口之间传递数据包,并根据网络活动控制程序 的执行。另外,所有的路由和地址解析问题都由内核处理。

结构图如下:
在这里插入图片描述


可装载模块

Linux有一个很好的特性:内核提供的特性可在运行时进行扩展.可在运行时添加到内核中的代码被称为“模块"。


设备和模块的分类

  1. 字符设备
    字符(char)设备是个能够像字节流(类似文件)一样被访问的设备、 由字符设备 驱动程序来实现这种特性。 字符设备驱动程序通常至少要实现open、close、read和write系统调用。
    字符终端(/del/console) 和串口(/dev/ttys0以及类似设备)就是两个字符设备,它们能够很好地说明 “流” 这种抽象概念。字符设备可以通过文件系统节点来访问,比如/dev/ttyl和/dev/lp0等。
  2. 块设备
    和字符设备类似 , 块设备也是通过/dev目录下的文件系统节点来访间。块设备( 例如磁盘)上能够容纳文件系统。 在大多数Unix系统中, 进行1/0操作时块设备每 次只能传输一个或多个完整的块, 而每块包含512字节(或2的更高次幕字节的数据)。Linux可以让应用程序像字符设备一样地读写块设备,允许一次传递任意多字节的数据。因而,块设备和字符设备的区别仅仅在干内核内部管理数据的方式,也 就是内核及驱动程序之间的软件接口, 而这些不同对用户来讲是透明的。
  3. 网络接口
    任何网络事务都经过一个网络接口形成,即一个能够和其他主机交换数据的设备。通常,接口是个硬件设备,但也可能是个纯软件设备,比如回环(loopback)接口。网络接口由内核中的网络子系统驱动,负责发送和接收数据包,但它不需要了解每 项事务如何映射到实际传送的数据包。 许多网络连接(尤其是使用TCP协议的连 接)是面向流的,但网络设备却围绕数据包的传输和接收 而设计,网络驱动程序不需要知道各个连接的相关信息, 它只要处理数据包即可。由于不是面向流的设备, 因此将网络接口映射到文件系统中的节点(比如Idevi ttyl)比较困难。Unix访问网络接口的方法仍然是给它们分配一个唯一的名字(比如eth0),但这个名字在文件系统中不存在对应的节点.

许可证条款

Linux遵循GNU通用公共许可证(GeneralPublic License, GPL)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux常见驱动源码分析(kernel hacker修炼之道)--李万鹏 李万鹏 IBM Linux Technology Center kernel team 驱动资料清单内容如下: Linux设备模型(中)之上层容器.pdf Linux设备模型(上)之底层模型.pdf Linux驱动修炼之道-驱动中一些常见的宏.pdf Linux驱动修炼之道-内存映射.pdf Linux驱动修炼之道-看门狗框架源码分析.pdf Linux驱动修炼之道-触摸屏驱动之s3c2410_ts源码分析.pdf Linux驱动修炼之道-SPI驱动框架源码分析(中).pdf Linux驱动修炼之道-SPI驱动框架源码分析(下).pdf Linux驱动修炼之道-SPI驱动框架源码分析(上).pdf Linux驱动修炼之道-RTC子系统框架与源码分析.pdf Linux驱动修炼之道-platform.pdf Linux驱动修炼之道-LCD背光与gpio控制.pdf Linux驱动修炼之道-INPUT子系统(下).pdf Linux驱动修炼之道-INPUT子系统(上).pdf Linux驱动修炼之道-framebuffer(中).pdf Linux驱动修炼之道-framebuffer(下).pdf Linux驱动修炼之道-framebuffer(上).pdf Linux驱动修炼之道-DMA框架源码分析(下).pdf Linux驱动修炼之道-DMA框架源码分析(上).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(中).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(下).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(上).pdf Linux驱动修炼之道-clock框架.pdf Linux驱动修炼之道-ADC驱动.pdf Linux内核访问外设I O资源的方式.pdf LINUX内核USB子系统学习笔记之初识USB.pdf kernel hacker修炼之道之驱动-流水灯.pdf kernel hacker修炼之道之驱动-混杂设备.pdf kernel hacker修炼之道之驱动-按键.pdf kernel hacker修炼之道之PCI subsystem(五).pdf kernel hacker修炼之道之PCI subsystem(四).pdf kernel hacker修炼之道之PCI subsystem(三).pdf kernel hacker修炼之道之PCI subsystem(六).pdf kernel hacker修炼之道之PCI subsystem(二).pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值