Chinaunix首页 | 论坛 | 博客
  • 博客访问: 366667
  • 博文数量: 181
  • 博客积分: 215
  • 博客等级: 民兵
  • 技术积分: 313
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-17 19:39
个人简介

王的男人

文章分类

全部博文(181)

文章存档

2016年(2)

2015年(35)

2014年(17)

2013年(84)

2012年(49)

我的朋友

分类: LINUX

2013-04-01 23:56:58

1、 设备的分类及特点

 

计算机系统的硬件主要由CPU、存储器和外设组成。

随着ICIntegrated circuit)制作工艺的发展,目前芯片的集成度越来越高,往往在CPU内部集成了存储器和外设适配器。

    驱动针对的对象是存储器和外设(包括CPU内部集成的存储器和外设),而不是针对CPU核。

 

1.1 设备分类及特点

Linux将存储器和外设分为3个基本类:

        字符设备:指那些必须以串行顺序依次进行访问的设备。

                  不经过系统的快速缓存。

        块设备  :可以用任意顺序进行访问,一块为单位进行操作。

                  经过系统的快速缓存。

        网络设备:是面向数据包的接收和发送而设计的,并不对应于文件系统的节点。

内核与网络设备的通信与内核和字符设备、块设备的通信方式完全不同。

 

    但是,字符设备和块设备并没有明显的界限,如对于Flash设备,符合块设备的特点,但我们仍可以把它作为一个字符设备来访问。

 

2、 Linux设备驱动与整个软硬件的关系

如图1所示,除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录,通过文件系统的系统调用接口open()write()read()close()等即可访问字符设备和块设备。所有的字符设备和块设备都被统一地呈现给用户。

    块设备比字符设备复杂,在它上面会首先建立一个磁盘/Flash文件系统(定义了文件和目录在存储介质上的组织)。

    应用程序使用Linux系统调用接口编程,但也可以使用C库函数,出于代码的可移植性的目的,推荐使用C库函数。

    图1,如下:

 

 

阅读(837) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~