㈠ linux 查看gpio 被哪个驱动占用
linux系统中的设备驱动是否安装好一般检查几个方面: 1、系统日志。嵌入式系统多内是直容接dmesg一下,看有没有设备关键字相关的出错信息(通用系统可检查/var/log/messages文件)。 2、已加载的模块。检查模块加载列表中有没有相关设备的模块。
㈡ linux机器重启后机器变成裸机了
热门频道
首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
打开APP
linux恢复成裸设备,Linux下的裸设备研究(转) ---rawdevices 转载
2021-05-07 16:15:51
此号已死
码龄2年
关注
Linux平台下,缺省没有提供对磁盘设备的字符访问方式,必须通过配置rawdevices服务,把块设备绑定到裸设备上才行,具体方法有3种。这3种方法创建裸设备的方式完全一样,区别在于对Oracle用户权限处理方法的不同。RHEL5推荐使用第3种方法
第一种方法:# vim /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2
#/etc/init.d/rawsdevices start
#chkconfig --level 235 rawdevices on 成功开启裸设备的标志为 # /etc/init.d/rawdevices status
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
为裸设备赋予权限# chown oracle:oinstall /dev/raw/raw1
/dev/raw/raw2
# ll /dev/raw/raw*
crw-rw---- 1 oracle oinstall 162, 1 Jan 22 14:09
/dev/raw/raw1
crw-rw---- 1 oracle oinstall 162, 2 Jan 22 14:12
/dev/raw/raw2 配置成功。
这
种方法的问题在于,虽然创建了裸设备,但是这些裸设备是在rawdevices服务启动时创建的,而rawdevices是以root用户身份运行的。因
此这些裸设备缺省的owner是root:root。所以每次服务重启后都要重新修改这些设备的owner为oracle:oinstall.
第二种方法:
为了解决上述的问题,可以采用第二种方法。即用mknod提前创建出一个字符方式访问的文件,然后在文件绑定到块设备上,并把该文件的owner设置为oracle,因为这个文件是手工创建的,所以这个文件的owner不会被修改# mknod /oradata c 162 1
# chown oracle:oinstall /oradata
# vim /etc/sysconfig/rawdevices
/oradata /dev/sdd2 #/etc/init.d/rawsdevices
start
#chkconfig --level 235 rawdevices on 第三种方法:
使用udev管理设备的权限#vim
/etc/udev/rules.d/50-udev.rules KERNEL=="raw[0-9]*",MODE="0660",GROUP="oinstall",OWNER="oracle",NAME="raw/%k"
# vim /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2
#/etc/init.d/rawsdevices start
#chkconfig --level 235 rawdevices on 参考至:《大话Oracle RAC》张晓明著
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:[email protected]
相关资源:Linux裸设备相关命令_设备退出,怎样添加上-Linux文档类资源-CSDN...
文章知识点与官方知识档案匹配
CS入门技能树Linux入门初识Linux
26057 人正在系统学习中
打开CSDN APP,看更多技术内容
...及 还原至裸设备状态_胖胖胖胖胖虎的博客_linux磁盘...
Linux添加磁盘、挂载 及 还原至裸设备状态 磁盘划分区 [hadoop@hadoop03 ~]$sudofdisk-l Disk /dev/sda:42.9GB,42949672960bytes,83886080sectors Units=sectors of1*512=512bytes Sector size(logical/physical):512bytes /512bytes I...
继续访问
linux系统制作裸设备,在unix下和linux下创建裸设备总结_爱卡汽车的博 ...
4.链接裸磁盘: #ln -s /dev/raw/raw1 /oracle/oradata/dgdemo/temp.dbf 5.创建oracle的数据文件: create tablespace temp datafile '/oracle/oradata/dgdemo/temp.dbf' size 1000M reuse; 备注:如果使用LVM来创建LV类型的裸设...
继续访问
oracle 备份 裸设备,玩转裸设备的备份恢复
近期在linux下测试了数据的备份和恢复:1、裸设备的创建:在/etc/sysconfig/rawdevices 下添加如下:/dev/raw/raw1 /dev/sdb1 (100M)/dev/raw/raw2 /dev/sdb2 (120M)/dev/raw/raw3 /dev/sdb3 (130M)/dev/raw/raw4 /dev/sdb4 (150M)/dev/...
继续访问
SUSE Linux 10 配置裸设备(raw devices)
裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲,是不被操作系统直接管理的设备。由于跨过操作系统管理,使得I/O效率更高。在基于SUSE Linux 10上安装Oracle 10g RAC的话,由于Oracle 10g 不支持将ocr与votingdisk 存放在ASM 磁盘中,因此,
继续访问
linux asm 裸设备,ASM+裸设备_铝单车上的镁男子的博客
通过gui程序安装数据库软件,然后在dbca创建数据库,数据文件放在asm磁盘上即可。 来自“ ITPUB博客 ” ,链接:http://blog.itpub.net/22123669/viewspace-678501/,如需转载,请注明出处,否则将追究法律责任。
继续访问
linux raw设备格式化,SUSE Linux 10配置裸设备(raw devices)_owl-ler...
SUSE Linux 10配置裸设备(raw devices) 裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲,是不被操作系统直接管理的设备...
继续访问
linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...
11.3GPIO驱动程序实例11.3.1GPIO工作原理FS2410开发板的S3C2410处理器具有117个多功能通用I/O(GPIO)端口管脚,包括GPIO8个端口组,分别为GPA(23个输出端口)、GPB(11个输入/输出端口)、GPC(16个输入/输出端口)、GPD(16个输入/输出端口)、GPE(16个输入/输出端口)、GPF(8个输入/输出端口)、GPH(11个输入/输出端口)...
继续访问
linux内存给hdd当缓存,linux块设备加速缓存之bcache [转]
转载请注明出处:http://blog.csdn.net/liumangxiongbcache是linux内核块层cache。它使用类似SSD来作为HDD硬盘的cache,从而起到加速作用。HDD硬盘便宜并且空间更大,SSD速度快但更贵。如果能两者兼得,岂不快哉?bcache能做到。bcache使用SSD作为其他块设备cache。类似ZFS的L2Arc,但bcache还增加了写回策略,并且是与文件...
继续访问
linux裸设备详解,Linux裸设备管理详解_无敌道道的博客
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。 字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。
继续访问
linux创建裸磁盘,Linux上如何创建裸设备_一颗大球糖bobo的博客-CSDN博 ...
其中最关键的就是共享设备了,在一个独立硬盘上创建裸设备,作为OCR和Voting DISK甚至ASM的磁盘,下面就介绍一下,在Linux下面如何创建裸设备,也就是create raw device. 大致这么几个步骤: 1. Check iscsi has been autoenable;...
继续访问
主线剧情02-ARM-Linux基础学习记录
对 Linux 的系统概念、Linux 文件系统、常用命令、Vim 使用、GCC、Make 与 Makefile 及其模板、ubuntu 包管理、换源等等等做一个大总结,对 ARM Linux 的编译工具链、应用、系统编译的流程做简单介绍,最后对 PC 与 嵌入式板 传输文件的方式做一个汇总。
继续访问
linux 块设备驱动实例,linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)...
块设备驱动的模型还是基本基于字符设备驱动的,可以简单理解为块设备仅仅增加了操作缓冲区,对用户请求顺序进行队列重拍等等。字符设备驱动的相关分析可以查看本博客相关的博文。按照本博客的行文习惯,在具体分析块设备驱动代码之前,我们会从整体上了解一下研究对象的特征,以及用户空间的使用方法。下面我们就自己写一个小工具(可以读取Rom中任意一个物理扇区的内容)来分析一下高通的分区信息。在用户空间看到的块设备当然...
继续访问
linux asm 裸设备,为ASM生成裸设备_weixin_39980711的博客
在oracle推荐的存储机制中,ASM性能是比较好的,为了使用ASM存储,先需要为共享磁盘或者共享磁盘的分区生成裸设备,以下为裸设备生成相关记录。linux环境为linux AS 5.4。 1、裸设备,可以用共享磁盘或者共享磁盘中的分区来生成,这个相差不是很...
继续访问
linux创建裸磁盘,linux 使用裸设备创建表空间_射命丸咲的博客
TNS for Linux: Version 11.2.0.1.0 - Proction NLSRTL Version 11.2.0.1.0 - Proction 查看磁盘 [root@node1 ~]# fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders ...
继续访问
最新发布 linux设备模型:设备及设备节点创建过程分析
本篇分析设备的初始化及注册过程,包括设备与驱动绑定,设备与电源管理之间的联系、中断域的储存及物理设备之间的关系等等。这一篇内容较多,结合kobject、kset、class、bus等众多概念,也是从理论阶段转换为实际使用阶段的重要过程。 设备初始化阶段,创建kset容器结构对象devices_kset,用于设备的uevent(用户事件通知)操作。dev_kobj表示设备根对象,在它的基础上扩展(延伸)sysfs_dev_block_kobj("block") 块设备根对象和sysfs_dev_ch
继续访问
热门推荐 linux查看新增串口、USB设备,Minicom + Usb转串口
linux查看新增串口、USB设备,Minicom + Usb转串口注意:虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect(Disconnect from Host)",这样才能被ubuntu系统识别。查看新增串口、USB设备1) 显示已经加载到内核中的模块的状态...
继续访问
Linux配置裸设备_黄宝康的博客
Linux配置裸设备 在配置Oracle10g RAC中,会遇到裸设备的配置,高版本的RAC,从11g开始,已经不支持了,在这里只是学习记录下。 裸设备是指通过字符方式访问的设备,这种设备在读写数据时不需要缓冲区,在Linux环境下默认不提供裸设备服务,...
继续访问
转 Linux块设备加速缓存bcache和dm-cache 使用SSD来加速服务器
转 Linux块设备加速缓存bcache和dm-cache 使用SSD来加速服务器
继续访问
【vbox】Linux安装Virtual Box虚拟机实践记录--编辑中
一、安装 1.进入virtualbox官网 https://www.virtualbox.org/ 2.点击download 方法一: 3.点击Linux distributions 4.向下翻至如图,并且进入同种框选页面 5.在/etc/yum.repos.d/目录下新建virtualbox.repo并写入如下内容 [virtualbox] name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - V.
继续访问
linux文件系统-文件的写与读
只有打开可文件以后,或者建立起进程与文件之间的连接之后,才能对文件进行读写。文件的读写主要是通过系统调用read和write来完成的,对于读写的进程,目标文件由一个打开文件号代表。 为了提高效率,稍微复杂一点的操作系统对文件的读写都是带缓冲的,linux也不例外。像vfs一样,linux文件系统的缓冲机制也是它的一大特色。所谓缓冲,是指系统为最近的读写过的文件内容在内核中保留一份副本,以便当再次需要已经缓冲存储在副本的内容时不必再临时从设备上读入,而需要写的时候则可以先写到副本中,待系统较为空闲时再从副本
继续访问
DAVINCI DM365-DM368开发攻略——linux-2.6.32的移植
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zjbintsystem.blog.51cto.com/964211/768652 2012年的春节就这样过了,假期期间,在接到的大项目没有进展的情况下(团队的人都回家过年了),利用这三天深圳最冷的时间(5°C):1月25~27号,赶紧完成这篇文章的稿子,毕竟很长时间
继续访问
Linux-常用命令
3.1 概述 很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。 Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux。 Linux 提供了
继续访问
linux设备模型:bus概念及pci_bus分析
bus(总线)是一种特殊的抽象框架,与class有着本质上的不同,class感觉上只是把一些核心组件聚集在一起,它主要为访问组件提供便利(如提供组件地址),而bus则是实实在在的功能性框架,它即可负责管理、维护驱动与设备之间的关系,也可作为主桥设备与硬件之间的访问通道等等。 如pci总线,当pci硬件设备插入卡槽后,首先通过pci_bus_type(pci总线操作结构) 中的 pm(电源操作结构)操作相关函数唤醒设备,然后通过pci_bus_match函数查找硬件设备是否被注册到驱动(通过pc
继续访问
Linux入职基础-3.1_了解proc目录文件(设备管理)
了解proc目录文件(设备管理)/proc 文件系统是一种内核和内核模块用来向进程(process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取有关进程的有用信息,在运行时访问内核内部数据结构、改变内核设置的机制。/proc 由内核控制,没有承载 /proc 的设备,它只存在内存当中,而不占用外存空间,对 /proc 进行一次 'ls -l' ...
继续访问
linux文件系统-文件系统的安装与拆卸
在一块设备上按一定的格式建立起文件系统的时候,或者系统引导之初,设备上的文件和节点都还是不可访问的。也就是说,还不能按一定的路径名访问其中特定的节点或文件(虽然设备是可访问的)。只有把它安装到计算机系统的文件系统中的某个节点上,才能使设备上的文件和节点成为可访问的。经过安装以后,设备上的文件系统就成为整个文件系统的一部分,或者说一个子系统。一般而言,文件系统的结构就好像一棵倒立的树,不过由于可能存在着的节点间的链接和符号链接不并不一定是严格的图论意义上的一棵树。最初,整个系统只有一个节点,那就是整个文件系统
继续访问
linux文件系统-访问权限与文件安全性
Unix操作系统从一开始就在其文件系统中引入了文件、访问权限等概念,并在此基础上实现了有利于提高文件安全性的机制。从那以后这些概念和机制就一直被继承下来并进一步得到改进和完善。即使在经过了很多年后的今天,而且在计算机系统的安全性已经成为一个突出问题的情况下,这一套机制仍然不失其先进性。尽管还存在一些缺点和需要进一步改进的地方,从总体上说还是瑕不掩瑜。与当今正在广泛使用的其他操作系统相比,可以说Unix的安全性总的来说至少不会差于这些系统;如果考虑到近年来在Unix及linux中已经作出的改进以及不难作出的进
继续访问
[转]Linux块设备加速缓存bcache和dm-cache:使用SSD来加速服务器
dm-cache 与 bcache在 LSFMM 2013 峰会上,Mike Snitzer, Kent Overstreet, Alasdair Kergon, 和 Darrick Wong 共同主持了一个讨论,内容是关于两个彼此独立的块设备层缓存方案 —— dm-cache 和 bcache。 Snitzer 首先介绍了 3.9 kernel 引入的 dm-cache。这个方案使用率内核中的
继续访问
计算机操作系统实验代码(6个实验)
计算机操作系统实验代码,包括先来先服务FCFS和短作业优先SJF进程调度算法、时间片轮转RR进程调度算法、预防进程死锁的银行家算法、动态分区分配算法、虚拟内存页面置换算法、磁盘调度算法
linux将磁盘还原为裸设备
linux恢复成裸设备
写评论
评论
收藏
点赞
踩
分享
㈢ 嵌入式Linux中如何实现应用程序与驱动程序函数接口问题,以GPIO为例
嵌入式来Linux中如何实现应用程序自与驱动程序函数接口问题,以GPIO为例
驱动中的函数定义:
static int sbc2440_leds_ioctl(
struct inode *inode,
struct file *file,
unsigned int cmd,
unsigned long arg)
{
switch(cmd) {
case 0:
case 1:
if (arg > 4) {
return -EINVAL;
}
s3c2410_gpio_setpin(led_table[arg], !cmd);
return 0;
default:
return -EINVAL;
}
}
应用程序中的函数定义:
ioctl(fd, on, led_no);
不明白的地方是函数名都不一样,应用程序中的ioctl函数是如何将参数传递到驱动程序sbc2440_leds_ioctl中的?
xicain
㈣ 嵌入式linux中编写驱动程序的时候用到的头文件问题
#include <linux/mole.h> 模块头文件
#include <linux/kernel.h> 驱动要写入内核,与内核相关的头文件
#include <linux/fs.h> 文件系统头文件
#include <linux/init.h> 初始化头文件
#include <linux/delay.h> 延时头文件
#include <asm/irq.h> 与处理器相关的中断
#include <linux/interrupt.h> 操作系统中断
#include <asm/uaccess.h> 与处理器相关的入口
//#include <asm/arch/regs-gpio.h> 与处理器相关的IO口操作
#include <mach/regs-gpio.h> 同上
//#include <asm/hardware.h> 与处理器相关的硬件
#include <mach/hardware.h> 同上
#include <linux/device.h> 设备驱动文件
#include <linux/poll.h> 轮询文件
#include <linux/gpio.h> 操作系统相关的IO口文件
#include <stdio.h> 标准输入输出
#include <stdlib.h> 标准库
#include <unistd.h>
#include <sys/ioctl.h> IO控制
以下6个是提供的函数中所需的头文件
具体我也不详
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>
㈤ 2020年浙江省高校计算机三级嵌入式与单片机技术考试大纲
2020年浙江省高校计算机三级嵌入式与单片机技术考试大纲
考试目标
嵌入式系统是在整机中控制其他设备的计算机系统,包括嵌入式硬件和嵌入式软件,后者又包括了基础软件(如操作系统)和应用软件。单片机是嵌入式系统的硬件部分,单片机原理是关于如何使用单片机、如何在单片机上编程的知识。通过单片机原理与嵌入式系统的学生,学生应能掌握贯穿嵌入式系统开发所需的完整技能,具有在常见的8位或32位单片机上开发软硬件小系统的能力,理解嵌入式操作系统基本原理,掌握在裸机、实时操作系统和嵌入式Linux上设计嵌入式系统并开发应用软件的能力。
基本要求
1、较好掌握嵌入式系统的基本概念,了解嵌入式系统设计的一般原则;
2、基本掌握单片机的基本结构与工作原理 ,了解常见单片机指令集;
3、较好掌握用C语言开发单片机程序的方法,掌握常见片上外设的工作原理和编程;
4、基本掌握常见单片机软件模型,了解引导装载程序;
5、基本掌握嵌入式实时操作系统的基本概念,了解常见嵌入式操作系统;
6、基本掌握嵌入式Linux设备驱动程序开发,了解嵌入式文件系统。
考试内容
一、嵌入式系统基本概念与设计原则
1、嵌入式系统的定义
2、嵌入式系统开发的基本原则
(1)并行和响应式的行为
(2)软硬件协同开发的方法
(3)通用件的作用
二、单片机基本概念
1、单片机的定义,单片机与微处理器的区别
2、常见单片机体系
a)MCS-51、AVR、DSP、ARM
b)选择单片机具体型号的原则
3、单片机指令集
a)MCS-51指令集
b)Cortex-M指令集
三、单片机程序设计
1、用C语言开发单片机程序的基本手段
(1)如何访问寄存器,如何使用位段,如何做位操作
(2)函数调用的二进制接口
(3)如何做中断响应程序
(4)理解上电启动代码
2、程序的交叉编译、链接,下载程序和联机调试的方法
3、基本片上外设的使用
(1)GPIO
(2)定时器
(3)ADC
(4)UART和SPI、I2C
4、单片机软件模型
(1)轮询
(2)前后台
(3)中断驱动
(4)动态队列
四、嵌入式操作系统
1、引导装载程序
(1)什么是引导装载程序
(2)嵌入式Linux引导装载程序的基本模型
2、实时操作系统的基本概念
(1)实时的概念
(2)抢占式调度的实现
(3)任务间同步与通信的手段
3、uC/OS II操作系统基本常识
4、嵌入式Linux操作系统基本常识
(1)嵌入式Linux与uCLinux的主要区别
(2)嵌入式Linux在嵌入式设备中的加载方式
5、嵌入式Linux驱动程序开发
(1)Linux下访问GPIO的三种方法
(2)Linux驱动程序的基本知识
(3)内核模块的加载
6、嵌入式文件系统
(1)Nor与Nand两种flash的区别
(2)Flash文件系统的关键问题:按块擦写、损耗均衡
(3)日志文件系统
以上就是小编整理的2020年浙江省高校计算机三级嵌入式与单片机技术考试大纲,准备参加二级考试的同学们都来了解一下吧。想要及时了解考试动态的小伙伴可“ 免费预约短信提醒”届时环球青藤会及时为大家推送全国计算机等级考试相关信息提醒。环球青藤友情提示:对于想要参加计算机二级考试的小伙伴们,环球青藤特地为您准备了计算机二级考试资料,如有需要请点击文章下方“免费下载>>>计算机二级考试资料”下载学习。
㈥ 嵌入式linux设备驱动,无法打开设备文件
1. ls /dev/* 看看有没有你的LED节点
2.cat /proc/devices 看看有没有相关LED驱动信息。
===============================
static const struct file_operations fops_led =
{
.owner = THIS_MODULE,
//.open = open_led,
.unlocked_ioctl = unlocked_ioctl_led,
};
都屏蔽了open函数,内怎么打开容?
㈦ 求嵌入式linux开发详细流程(步骤)
建立以Linux系统为基抄础的开发袭环境;
配置开发主机(MINICOM调试嵌入式开发板、NFS网络文件系统,防火墙);
建立引导装载程序BOOTLOADER(公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等);
下载别人已经移植好的Linux操作系统(如μCLinux、ARM-Linux、PPC-Linux等);
建立根文件系统(包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等);
建立应用程序的Flash磁盘分区,一般使用JFFS2或YAFFS文件系统;
开发应用程序,应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中;
烧写内核、根文件系统、应用程序、发布产品。
㈧ 嵌入式gpio口驱动怎么写
Linux
提供了一种全新的
“模块”
机制
,
可根据需要在不必对内核进行重新版编译的情况下;权
将可加载模块动态地插入运行中的内核
,
成为内核的一个有机组成部分;也可以动态地卸载
已加载的模块。
Linux
下设备驱动程序的编写要点是为相应的设备编写完成相应功能的基本函数
,
然向
虚拟文件系统
(VFS)
注册。
当应用程序需要对设备进行操作时
,
可以访问该设备对应的文件节
点
,
利用
VFS
调用该设备的相关处理函数即可。
驱动程序是指一组子程序,它屏蔽了底层硬件处理细节
,
同时向上层软件提供与硬件无
关的接口,在
Linux
内核中占据极其重要的地位
,
是用来完成对物理设备控制操作的功能模
块,设备驱动程序控制操作系统和硬件设备访问的交互操作。