㈠ linux中普通文件和块设备文件的区别
1,概述
一直都搞不明白普通文件跟块文件的区别,总觉得一个普通的文件是存放在磁盘块上,那它既属于普通文件又属于块设备文件。刚好下午睡了一个大头觉,比较清醒,集中学习了下普通文件和块设备文件的区别和联系。
本文从基本概念,寻址空间,内核读写几个方面介绍普通文件和块设备文件的辩证统一。
2,基本概念
普通文件(Regular File)。指普通意义上的文件,如数据文件、可执行文件等。
设备文件(Device File)。类unix操作系统都是基于文件概念的,文件是由字节序列而构成的信息载体。根据这一点,可以把IO设备当作设备文件这种所谓的特殊文件来处理;因此,与磁盘上的普通文件进行交互所用的同一系统调用可直接用于IO设备。根据设备驱动程序的基本特征,设备文件可以分为两种:块和字符。这两种硬件设备之间的差异并不容易划分,但我们至少可以假定以下的差异:[1]
· 块设备的数据可以随机地被访问,而且从人类用户的观点看,传送任何数据块所需的时间都是较少而且是大致相同的。块设备的典型例子是硬盘、软盘[1]。块设备一般情况下是带缓冲区的。
· 字符设备的数据或者不可以随机访问,或者可以被随机访问,但是访问随机数据所需的时间很大程度上依赖于数据在设备内的位置[1]。
3, 寻址空间的区别
块设备文件是块设备的物理寻址空间;普通文件是块设备的虚拟寻址空间。普通文件比块设备文件多一层文件系统的地址转换机构。
㈡ linux 设备的含义
inux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。每个设备在 /dev 目录下都有一个对应的文件(节点)。
常见设备及相应/dev/下的文件名:
/dev/usb/hiddev0 | /dev/usb/hiddev1 --- USB 字符设备(鼠标/键盘/游戏杆/手写版等人操作计算机的设备)
/dev/uba | /dev/ubb --- USB 块设备(U盘之类)
/dev/sda | /dev/sdb --- 第n个 SCSI 磁盘(整个磁盘)
/dev/hda | /dev/hdb --- 第n个 IDE 磁盘(整个磁盘)
/dev/sdc1 | /dev/sdc2 --- 第3个 SCSI 磁盘的第n个 分区 Linux/i386来说,分区1-4是主分区,5-15是逻辑分区。
/dev/scd0 | /dev/scd1 --- 第n个 SCSI CD-ROM
/dev/tty0 | /dev/tty1 --- 当前虚拟控制台、第n个虚拟控制台 TTY(终端)设备
Linux系统Mount点:mount的时候,mount的目标文件夹/media/cdrom要手动创建
mount /dev/cdrom /media/cdrom
㈢ Linux的设备和设备号是指什么可否简单的解释一下
Linux中I/O设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的版功能进行了权分类。
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。
㈣ Linux下裸设备(raw device),字符设备,块设备还有logical device四者之间的关系(比如谁包含谁等)
块设备:按照数据块批量读写数据,备敏比如硬盘。
字符设备:按照数据串行输入输出,比如键盘
裸设备:就是一块硬盘或者一个分区,没培扰有经过格式化的,没有文件系统。
逻辑设备:就是讲小磁盘整合成一个大磁配滚旦盘,然后再进行分区,实际物理存储可能不连续。
㈤ Linux┊字符设备和块设备的区别
字陆肆符设备和块设备的区掘悉贺别在于前者只能被顺序读写,后者可以随机访问。大多数设备为字符设备判派,以字节为单位,实现file_operations结构体。而如磁盘为块设备,以块为单位接受输入和返回输出。实现block_device_operations结构体.