什么是块设备
❶ 内存是块设备还是字符设备
内存是块设备..字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问。大多数设备为字符设备,以字节为单位,实现file_operations结构体。
❷ 在Linux中什么是块设备
Linux中I/O设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。
❸ linux中什么是块设备和字符设备
答:linux中i/o设备复分为制两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存龋相反,此类设备支持按字节/字符来读写数据。举例来说,键盘...
❹ linux里什么是块设备
所谓块设备是指对其信息的存取以“块”为单位,如通常的光盘、硬磁盘、软磁版盘、磁带等,权块长取512字节或1024字节或4096字节。块设备可以直接通过块设备特别文件来访问。为了提高数据传输效率,块设备驱动程序内部采用块缓冲技术。
盘、带设备既可采用块方式,又可采用字符方式访问,因此这类设备既是块设备又是字符设备。正因为如此,在上节的字符设备开关表中配备了一套用于盘、带的字符驱动程序。在概念上,我们倾向于一台设备以一种类型进行访问,例如对磁带机而言,采用块方式即把磁带机划入块设备类型 。如果对磁带机采用字符方式,尽管可行但存储等量的数据要比块方式占用更多的磁带空间,实际上是很不合算的。
❺ linux字符设备和块设备的区别
还是我来来告诉你吧!字符设备驱动:自一般也可以看做小数据量的模块,主要处理键盘,鼠标,显示器,串口等一些小数据的字节为单位的设备
块设备驱动:主要针对于大数据量的数据传输与接收。比如磁盘、cdrom、软盘、u盘等存储器和类似于存储器的设备。
网络驱动:主要针对于基于网络通信协议的设备。比如网卡、wifi、蓝牙等通信设备。
usb设备包含这三块的内容甚至更多,做usb驱动开发工资很高的。
想学习这方面的知识,建议看《设备驱动设计与开发》这本书。
❻ 块设备文件什么意思
块设备将信息存储在固定大小的块中,每个块都有自己的地址。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。磁盘是最常见的块设备。
❼ 字符设备和块设备的区别
Linux中I/O设备抄分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。
❽ 块设备文件和字符设备文件的本质区别是什么
设备文件分为Block
Device Driver和Character Device Drive两类。Character Device Drive又被称为字符设备或裸设备raw
devices; Block Device Driver通常成为块设备。而Block Device Driver是以固定大小长度来传送转移资料
;Character Device Driver是以不定长度的字元传送资料 。且所连接的Devices也有所不同,Block
Device大致是可以随机存取(Random Access)资料的设备,如硬碟机或光碟机;而Character
Device刚好相反,依循先後顺序存取资料的设备,如印表机 、终端机等皆是。
/dev/dsk对应的为块设备,文件系统的操作用到它,如mount。/dev/rdsk对应的为字符设备(裸设备,rdsk的r即为 raw),fsck
newfs等会涉及到。一般我们的操作系统和各种软件都是以块方式读写硬盘,这里的块是逻辑块,创建文件系统时可以选择,windows里叫簇。可看 newfs or
mkfs的manual。oracle是比较常见的字符方式读写硬盘。
字符设备还是块设备的定义属于操作系统的设备访问层,与实际物理设备的特性无必然联系。设备访问层下面是驱动程序,所以只要驱动程序提供的方式,都可以。也就是说驱动程序支持stream方式,那么就可以用这种方式访问,驱动程序如果还支持block方式,那么你想用哪种方式访问都可以,典型的比如硬盘式的裸设备,两种都支持块设备(block
device):是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或从设备中一次性读出放入到缓冲区,如磁盘和文件系统等字符设备(Character
device):这是一个顺序的数据流设备,对这种设备的读写是按字符进行的,而且这些字符是连续地形成一个数据流。他不具备缓冲区,所以对这种设备的读写是实时的,如终端、磁带机等。
系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备一般的访问方式。
另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备。如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备;反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备。
这两种类型的设备的根本区别在于它们是否可以被随机访问——换句话说就是,能否在访问设备时随意地从一个位置跳转到另一个位置。举个例子,键盘这种设备提供的就是一个数据流,当你敲入“fox”这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由三个字符组成的数据流。如果让键盘驱动程序打乱顺序来读字符串,或读取其他字符,都是没有意义的。所以键盘就是一种典型的字符设备,它提供的就是用户从键盘输入的字符流。对键盘进行读操作会得到一个字符流,首先是“f”,然后是“o”,最后是“x”,最终是文件的结束(EOF)。当没人敲键盘时,字符流就是空的。硬盘设备的情况就不大一样了。硬盘设备的驱动可能要求读取磁盘上任意块的内容,然后又转去读取别的块的内容,而被读取的块在磁盘上位置不一定要连续,所以说硬盘可以被随机访问,而不是以流的方式被访问,显然它是一个块设备。
内核管理块设备要比管理字符设备细致得多,需要考虑的问题和完成的工作相比字符设备来说要复杂许多。这是因为字符设备仅仅需要控制一个位置—当前位置—而块设备访问的位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要有一个专门的提供服务的子系统。不仅仅是因为块设备的复杂性远远高于字符设备,更重要的原因是块设备对执行性能的要求很高;对硬盘每多一分利用都会对整个系统的性能带来提升,其效果要远远比键盘吞吐速度成倍的提高大得多。另外,我们将会看到,块设备的复杂性会为这种优化留下很大的施展空间。
linux驱动程序中字符设备和块设备的三点区别
1.字符设备只能以字节为最小单位访问,而块设备以块为单位访问,例如512字节,1024字节等
2.块设备可以随机访问,但是字符设备不可以
3.字符和块没有访问量大小的限制,块也可以以字节为单位来访问
❾ 操作系统中,什么是块设备A、键盘 B、磁盘 C、显示器 D、打印机。哪一个是块设备
B、磁盘。
块设备是来I/O设备中的一类,是自将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据,例如硬盘,U盘,SD卡等。
I/O设备大致分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。磁盘是最常见的块设备。

(9)什么是块设备扩展阅读
块设备的访问方式
在大多数的UNIX操作系统中,块设备只支持以块为单位的访问方式,如磁盘等KYLIN支持以字符方式来访问块设备,即支持以字符为单位来读写磁盘等块设备。所以在/dev目录中的块设备,如磁盘等,均以字符设备的外观出现。
所以,字符设备和块设备的区别主要体现在KYLIN内核中的管理方式,操作方式和内核/设备驱动接口上。
