导航:首页 > 器材知识 > 字符设备中为什么要分类

字符设备中为什么要分类

发布时间:2023-05-31 18:42:08

① I/O设备的I/O设备分类

现代计算机系统中配置了大量的外围设备,即I/O设备。依据它们的工作方式的不同,通常进行如下分类:
(1)字符设备(character device),又叫做人机交互设备。用户通过这些设备实现与计算机系统的通信。它们大多是以字符为单位发送和接受数据的,数据通信的速度比较慢。例如,键盘和显示器为一体的字符终端、打印机、扫描仪、包括鼠标等,还有早期的卡片和纸带输入和输出机。含有显卡的图形显示器的速度相对较快,可以用来进行图像处理中的复杂图形的显示。
(2)块设备(block device),又叫外部存储器,用户通过这些设备实现程序和数据的长期保存。与字符设备相比,它们是以块为单位进行传输的,如磁盘、磁带和光盘等。块的常见尺寸为512~32768B之间。
(3)网络通信设备。这类设备主要有网卡、调制解调器等,主要用于与远程设备的通信。这类设备的传输速度比字符设备高,但比外部存储器低。这种分类的方法并不完备,有些设备并没有包括。例如,时钟既不是按块访问,也不是按字符访问,它所做的是按照预先规定好的时间间隔产生中断。但是这种分类足以使操作系统构造出处理I/O设备的软件,使它们独立于具体的设备。

② 什么是字符设备

字符设备是指在输入输出传输过程当中,以字符为单位进行传输的设备,例如键盘打印机等等。

③ linux中的文件有哪些类型,这样分类有什么好处

凭我的记忆有普通猜扰逗文件,设备文件,管道文件穗卖,目录文件,(你可以搜一下),Linux这样分类的好处就是把什么东西都当成是文件一样,比如李告声卡,将声音文件写入声卡,打开声卡文件就可以发生(大概是这样的)。

④ 看到书上介绍unix操作系统文件类型的设备文件,里面说把设备文件分为字符设备文件和块设备文件,这样

在UNIX系统中抄文件分为四袭种:
1普通文件(ordinary file),
分为: (1) 文本文件
(2) 二进制文件
2 目录文件(directory)
3 特殊文件(special file),分为:
(1)块设备文件
(2)字符设备文件
4 符号链接文件
(symbolic links)

其中特殊文件也称设备文件,代表着某种设备,一般放在/dev目录下,如/dev/cd0表示光驱。
特殊文件分为块设备文件和字符设备文件,块设备文件以区块为输入输出单元,如磁盘;
字符设备文件是以字符作为输入输出单元,如串口。符号连接文件包含一指针,这指针会指向文件的所在。
字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。字符特殊文件与外设进行I/o操作时每次只传输一个字符。而对于块设备特殊文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据。

不同的传输方式当然可以实现减少时间开销了!

希望对您有帮助!

⑤ linux中什么是块设备和字符设备

块设来备是I/O设备中的一类,是将信源息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。

字符设备是在I/O传输过程中以字符为单位进行传输的设备。在linux系统中,字符设备以特别文件方式在文件目录树中占据位置并拥有相应的结点。结点中的文件类型指明该文件是字符设备文件。可以使用与普通文件相同的文件操作命令对字符设备文件进行操作。

(5)字符设备中为什么要分类扩展阅读:

在大多数的linux操作系统中,块设备只支持以块为单位的访问方式,如磁盘等。KYLIN支持以字符方式来访问块设备,即支持以字符为单位来读写磁盘等块设备。所以在/dev目录中的块设备,如磁盘等,均以字符设备的外观出现。

当一台字符型设备在硬件上与主机相连之后,必须为这台设备创建字符特别文件。linux操作系统的mknod命令被用来建立设备特别文件。

参考资料来源:

网络——块设备

网络——字符设备

⑥ linux中什么是块设备和字符设备

| 字符设备

字符设备是能够像字节流一样被访问的设备,当对字符设备发出读写请求,相应的IO操作立即发生。Linux系统中很多设备都是字符设备,如字符终端、串口、键盘、鼠标等。在嵌入式Linux开发中,接触最多的就是字符设备以及驱动。

| 块设备

块设备是Linux系统中进行TO操作时必须以块为单位进行访问的设备,块设备能够安装文件系统。块设备驱动会利用一块系统内存作为缓冲区,因此对块设备发出读写访问,并不一定立即产生硬件I/O操作。Linux系统中常见的块设备有如硬盘、软驱等等。

| 网络设备

网络设备既可以是网卡这样的硬件设备,也可以是一个纯软件设备如回环设备。网络设备由Linux的网络子系统驱动,负责数据包的发送和接收,而不是面向流设备,因此在Linux系统文件系统中网络设备没有节点。对网络设备的访问是通过socket调用产生,而不是普通的文件操作如
open/closc和 read/write等。

⑦ unlx/linux操作系统中将设备分为字符设备和块设备进行管理,有什么特点

字符设备是一些串行端口的设备,比如键盘、鼠标等,它的特点是串行读专取,不能够截断输出属(也就是不能随机访问)。比如鼠标,它的移动是滑动而不是跳跃。
块设备一般是存储设备,比如硬盘、软盘等。它的特点是让系统随机访问,比如硬盘,你可以在硬盘的不同块读写,也可以随机访问硬盘的数据。

⑧ c语言变量为什么要分类

丰富的变量分类是高级语言的优势,也是计算机语言进化的标志。最初的计算机语言是没有这么多变量分类的,随着复杂问题处理要求及大型程序的出现,以及硬腔团件余正的内存管理等等方面,逐渐对变量进行分类,使得在编程时变量能够覆盖全部类型,能够处理各种问题时方便了内存的管理。举个例子:全局变量和局部变量的作用域,局部变量能够及时释放提伍毁橘高了内存的使用率;整型变量和字符型变量分别代表了整型的数据和字符型数据变量,在不同编译系统中,不同类型的数据长度也不相同,丰富了变量的应用。

⑨ UNIX系统中设备的划分

第一,字符设备是指在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机等。请注意,以字符为单位并不一定意味着是以字节为单位,因为有的编码规则规定,1个字符占16比特,合2个字节。

在UNIX系统中,字符设备以特别文件方式在文件目录树中占据位置并拥有相应的i结点。i结点中的文件类型指明该文件是字符设备文件。可以使用与普通文件相同的文件操作命令对字符设备文件进行操作,例如打开、关闭、读、写等。

当一台字符型设备在硬件上与主机相连之后,必须为这台设备创建字符特别文件。操作系统的mknod命令被用来建立设备特别文件。例如为一台终端创建名为/dev/tty03的命令如下(设主设备号为2,次设备为13,字符型类型标记c):

mknod /dev/tty03 c 2 13

此后,open, close, read, write等系统调用适用于设备文件/dev/tty03。

设备与驱动程序的通信方式依赖于硬件接口。当设备上的数据传输完成时,硬件通过总线发出中断信号导致系统执行一个中断处理程序。中断处理程序与设备驱动程序协同工作完成数据传输的底层控制。

第二,裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。

1.什么叫做裸设备?

裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。

2.如何辨别裸设备?

在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。

字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。字符特殊文件与外设进行I/o操作时每次只传输一个字符。而对于块设备特殊文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据。裸设备使用字符特殊文件。在/dev 目录下,你可以看到许多这样的文件。

3.使用裸设备的好处

因为使用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。

而且,由于使用的是原始分区,没有采用文件系统的管理方式,对于Unix维护文件系统的开销也都没有了,比如不用再维护I-node,空闲块等,这也能够导致性能的提高。

4.如何决定是否应该使用裸设备?

判断是否使用裸设备要从以下方面进行考虑:首先,数据库系统本身需要已经被比较好的经过了优化。优化是一门很有些技术的话题,很难简单地讲述。其次,使用Unix命令来辨别是否存在磁盘读写瓶颈。比如Unix的vmstat, sar 等命令都可以较好的进行鉴别。如果决定采用裸设备,需要磁盘上还有空闲的分区。否则,就要新添磁盘,或者对原有系统重新规划。

5.什么系统必须使用裸设备?

如果使用了Oracle 并行服务器选项,则必须采用裸设备来存放所有的数据文件,控制文件,重做日志文件。只有把这些文件放到裸设备上,才能保证所有Oracle 实例都可以读取这个数据库的文件。这是由Unix操作系统的特性决定的。

还有一种情况是,如果你想使用异步I/O,那么在有些Unix上也必须采用裸设备。这个需要参考具体Unix的相关文档。

6.能够使用一个磁盘的第一个分区作为裸设备吗?

可以,但是不推荐。在Unix的比较旧的版本是银行,磁盘的第一个分区常常包含这个磁盘的一些信息,以及逻辑卷的一些控制信息。若这些部分被裸设备覆盖的话,磁盘就会变得不可识别,导致系统崩溃。

较新的Unix版本不会发生这样的情况,因为它们采用了更复杂的技术来管理磁盘,逻辑卷的一些信息。

但是,除非很确信不要使用磁盘的第一个分区来作为裸设备。

7.我可以把整个裸设备都作为Oracle的数据文件吗?

不行。必须让数据文件的大小稍微小于该裸设备的实际大小。至少要空出两个oracle块的大小来。

8.裸设备应该属于那个用户?

应该由root来创建裸设备,然后再分配给Oracle用户以供使用。同时还要把它归入Oracle用户所在的那个组里边(通常都是DBA)。

9.在创建数据文件时如何指定裸设备?

和普通文件没有什么太大的区别,一样都是在单引号里边写上裸设备的详细路径就可以了。举一个例子:要在创建一个表空间,使用两个裸设备,每个分别为30M的大小,Oracle块的大小为4K,可以用下面的命令:
CREATE TABLESPACE RAW_TS
DATAFILE '/dev/raw1' size 30712k
DATAFILE '/dev/raw2' size 30712k;

10.Oracle块的大小和裸设备有什么关系吗?

Oracle会必须是裸设备上物理块大小的倍数。

11.如何在裸设备上进行备份?

在裸设备上,不能使用Unix实用程序来进行备份,唯一的办法是使用最基本的Unix命令:DD来进行备份。比如:dd if=/dev/raw1 of=/dev/rmt0 bs=16k。dd的具体语法可以参考unix手册,或者联机帮助。你也可以先用dd把裸设备上的数据文件备份到磁盘上,然后再利用Unix实用程序进一步处理。

12.如果我没有使用Oracle并行服务器选项,我可以在数据库上让一部分数据文件使用文件系统,另一部分使用裸设备吗?

可以。但是这样的话,会使备份过程更加复杂。

13.我应该把联机重做日志文件放到裸设备上吗?

这是一个极好的选择。联机重做日志文件是写操作非常频繁的文件,放到裸设备上非常合适。如果你使用了并行服务器选项,那么联机重做日志文件必须放到裸设备上面。

14.可以把归档日志文件放到裸设备上吗?

不行。归档日志文件必须放到常规的Unix文件系统上面,或者直接放到磁带上面去。

15.我可以在裸设备上边放置多个数据文件吗?

不行。所以你必须在设置裸设备时非常小心。太小的话,会导致空间很快用完,太大的话,空间就白白浪费了。

16.因应该把几个裸设备放到同一个物理磁盘上吗?

这样做不好。因为使用裸设备就是为了提高磁盘读写速度。而把多个裸设备放到同一个物理磁盘上会导致读写竞争,这样对于提高I/O速度是不利的。应该尽量分散裸设备到不同的物理磁盘上,最好是分散到不同的磁盘控制器上。这是最佳选择。

17.需要把所有裸设备都定义成同样的大小吗?

这不是必须得,但是划分成同样的大小对于管理数据库比较有利。

18.为了在Unix上使用裸设备,我需要改变Unix核心参数吗?

不需要。但可以选择减小缓冲区的大小,如果没有别的应用也在同一台Unix机器上运行。因为运用了裸设备以后,不再使用Unix的系统缓冲区。

19.为了提高读写速度,在操作系统级别上,还有什么办法可以采取吗?

使用RAID(廉价冗余磁盘阵列)也是非常有效的办法,尤其实那种读写非常频繁的系统。

20.在考虑了以上所有方面后,还能有什么办法可以提高性能的吗?

这就需要对Oracle 进行优化,并且购买更多的磁盘和磁盘控制器,来分散I/O到不同的磁盘上。
第三,RAW设备(同2,就是指裸设备)

⑩ LINUX misc设备是什么

杂项设备(misc device)
杂项设备也是在嵌入式系统中用得比较多的一种设备册慧驱动。在 Linux 内核的include/linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实悉岩是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10 ,一起归于misc device,其实misc_register就是用主标号10调用register_chrdev()的。

也就是说,misc设备其实也就是特殊的字符设备。

字符设备(char device)

使用register_chrdev(LED_MAJOR,DEVICE_NAME,&dev_fops)注册字符设备驱动程序时,如果有多个设备使用该函数注册驱动程序,LED_MAJOR不能相同州陆答,否则几个设备都无法注册(我已验证)。如果模块使用该方式注册并且 LED_MAJOR为0(自动分配主设备号 ),使用insmod命令加载模块时会在终端显示分配的主设备号和次设备号,在/dev目录下建立该节点,比如设备leds,如果加载该模块时分配的主设备号和次设备号为253和0,则建立节点:mknod leds c 253 0。使用register_chrdev (LED_MAJOR,DEVICE_NAME,&dev_fops)注册字符设备驱动程序时都要手动建立节点 ,否则在应用程序无法打开该设备。

阅读全文

与字符设备中为什么要分类相关的资料

热点内容
轴承没安装好会造成什么问题 浏览:563
油净化装置作用 浏览:703
电动铰车装置设计 浏览:728
06款蒙迪欧仪表盘灯不亮了怎么办 浏览:195
机械师主要做些什么 浏览:380
什么设备是人与计算机连接的接口 浏览:889
昆山五金机电气缸电磁阀工具 浏览:898
怎样调节暖气前后阀门 浏览:784
汽车上的仪器怎么样 浏览:85
什么品牌工具箱好 浏览:204
美容院修复需要哪些仪器 浏览:4
水沸腾的变化实验装置如图 浏览:832
防爆型自动跟踪定位射流灭火装置 浏览:117
液化气一打开阀门有声音怎么回事 浏览:81
东莞精明五金制品 浏览:607
机械的基本结构包括哪些 浏览:547
小车仪表油耗怎么算 浏览:239
人体智能检测装置的局限 浏览:303
小型自动摇摆装置 浏览:494
自动投放装置应用 浏览:156