linux字符设备?linux字符设备驱动框架
大家好,关于linux字符设备很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于linux字符设备驱动框架的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
简述LINUX驱动中字符设备和块设备的区别
在Linux驱动中,字符设备和块设备是两种不同的设备类型,它们的区别主要在于数据传输的方式和设备访问的方式。
字符设备
字符设备是一种按字符为单位进行数据传输的设备,例如串口、键盘、鼠标等。它们通常以流的形式传输数据,每次读写操作都只能读写一个字符。字符设备的访问方式是随机访问,即可以在任何位置读写数据。在Linux中,字符设备通常使用文件系统的方式进行访问,即将字符设备映射为文件,然后通过文件操作函数进行访问。
块设备
块设备是一种按块为单位进行数据传输的设备,例如硬盘、U盘等。它们通常以块的形式传输数据,每次读写操作可以读写多个块。块设备的访问方式是顺序访问,即必须按照块的顺序进行读写操作。在Linux中,块设备通常使用块设备驱动程序进行访问,驱动程序将块设备映射为块设备文件,然后通过块设备操作函数进行访问。
总的来说,字符设备和块设备的主要区别在于数据传输的方式和设备访问的方式。字符设备以字符为单位进行数据传输,支持随机访问;块设备以块为单位进行数据传输,支持顺序访问。在Linux驱动中,字符设备和块设备通常使用不同的驱动程序进行访问。
Linux文件(目录)命名规则
在介绍了Linux系统中的目录结构之后,读者一定想知道如何命名文件或目录。
我们知道,在Linux系统中,一切都是文件。既然是文件,就必须有文件名。与其他系统相比,Linux操作系统对文件或目录命名的要求相对宽松。
Linux系统中,文件和目录的命名规则如下:
除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,使用某些特殊字符并不是明智之举。例如,在命名时应避免使用、、?、*和非打印字符等。如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名括起来
目录名或文件名的长度不能超过 255个字符。
目录名或文件名是区分大小写的。如 DOG、dog、Dog和 DOg,是互不相同的目录名或文件名,但使用字符大小写来区分不同的文件或目录,也是不明智的。
与 Windows操作系统不同,文件的扩展名对 Linux操作系统没有特殊的含义,换句话说,Linux系统并不以文件的扩展名开分区文件类型。例如,dog.exe只是一个文件,其扩展名.exe并不代表此文件就一定是可执行文件。
需要注意的是,在 Linux系统中,硬件设备也是文件,也有各自的文件名称。Linux系统内核中的 udev设备管理器会自动对硬件设备的名称进行规范,目的是让用户通过设备文件的名称,就可以大致猜测处设备的属性以及相关信息。
udev设备管理器会一直以进程的形式运行,并侦听系统内核发出的信号来管理位于/dev目录下的设备文件。
罗列出了Linux系统中常见硬件设备的文件名。
Linux硬件设备文件名称
硬件设备文件名称/dev/hd[a-d],现在的 IDE设备已经很少见了,因此一般的硬盘设备会以/dev/sd开头。
SCSI/SATA/U盘
软驱/dev/fd[0-1]
打印机/dev/lp[0-15]
光驱/dev/cdrom
鼠标/dev/mouse
磁带机/dev/st0或/dev/ht0
linux中什么是块设备和字符设备
块设备是I/O设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。
字符设备是在I/O传输过程中以字符为单位进行传输的设备。在linux系统中,字符设备以特别文件方式在文件目录树中占据位置并拥有相应的结点。结点中的文件类型指明该文件是字符设备文件。可以使用与普通文件相同的文件操作命令对字符设备文件进行操作。
扩展资料:
在大多数的linux操作系统中,块设备只支持以块为单位的访问方式,如磁盘等。KYLIN支持以字符方式来访问块设备,即支持以字符为单位来读写磁盘等块设备。所以在/dev目录中的块设备,如磁盘等,均以字符设备的外观出现。
当一台字符型设备在硬件上与主机相连之后,必须为这台设备创建字符特别文件。linux操作系统的mknod命令被用来建立设备特别文件。
参考资料来源:
百度百科——块设备
百度百科——字符设备