linux课程设计报告 字符设备驱动,某学院操作系统课程设计报告(字符设备驱动程序)(原创).doc...

某学院操作系统课程设计报告(字符设备驱动程序)(原创)

【目的】

通过本实验的学习,了解Linux操作系统中的设备驱动程序包括哪些组成部分,并能编写简单的字符设备(scull,Simple Character Utility for Loading Localities)的驱动程序以及对所编写设备驱动程序的测试,最终了解Linux操作系统是如何管理设备的。

【准备知识】

一.设备驱动程序的简单介绍

Linux设备驱动程序集成在内核中,

实际上是处理或操作硬件控制器的软件。从

本质上讲,驱动程序是常驻内存的低级硬件

处理程序的共享库,设备驱动程序就是对设

备的抽象处理;也即是说,设备驱动程序是

内核中具有高特权级的、常驻内存的、可共

享的下层硬件处理例程。

设备驱动程序软件封装了如何控制这

些设备的技术细节,并通过特定的接口导

出一个规范的操作集合(见图1);内核使

用规范的设备接口(字符设备接口和块设备

接口)通过文件系统接口把设备操作导出到

用户空间程序中。(由于本实验不涉及网络设备,故在此就不作讨论)

Linux操作系统支持多种设备,这些设备的驱动程序有如下一些特点:

(1)内核代码:设备驱动程序是内核的一部分,如果驱动程序出错,则可能导致系统崩溃。

(2)内核接口:设备驱动程序必须为内核或者其子系统提供一个标准接口。比如,一个终端驱动程序必须为内核提供一个文件I/O接口;一个SCSI设备驱动程序应该为SCSI子系统提供一个SCSI设备接口,同时SCSI子系统也必须为内核提供文件的I/O接口及缓冲区。

(3)内核机制和服务:设备驱动程序使用一些标准的内核服务,如内存分配等。

(4)可装载:大多数的Linux操作系统设备驱动程序都可以在需要时装载进内核,在不需要时从内核中卸载。

(5)可设置:Linux操作系统设备驱动程序可以集成为内核的一部分,并可以根据需要把其中的某一部分集成到内核中,这只需要在系统编译时进行相应的设置即可。

(6)动态性:当系统启动且各个设备驱动程序初始化后,驱动程序将维护其控制的设备。如果该设备驱动程序控制的设备不存在也不影响系统的运行,此时的设备驱动程序只是多占用了一点系统内存罢了。

二.设备驱动程序与外界的接口

每种类型的驱动程序,不管是字符设备还是块设备都为内核提供相同的调用接口,故内核能以相同的方式处理不同的设备。Linux为每种不同类型的设备驱动程序维护相应的数据结构,以便定义统一的接口并实现驱动程序的可装载性和动态性。

Linux设备驱动程序与外界的接口可以分为如下三个部分:

(1)驱动程序与操作系统内核的接口:这是通过数据结构file_operations来完成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值