linux 文件设备,linux文件属性
大家好,感谢邀请,今天来为大家分享一下linux 文件设备的问题,以及和linux文件属性的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
怎样识别Linux中各硬件设备
方法/步骤
1.硬盘每个硬盘表现为一个单独的设备文件。通常只能有2-4个IDE硬盘。这就是/dev/hda,/dev/hdb,/dev/hdc,和/dev/hdd。 SCSI是/dev/sda,/dev/sdb,等等。
2.软驱软驱的名字是复杂的,因此Linux有一个特定的软驱设备类型,能自动检测软驱中软盘的种类。它使用不同的软盘类型试图读取新插入的软盘的第一个扇区,直到找到正确的一个。这自然要求软盘是已经格式化过的。自动设备叫/dev/fd0、/dev/fd1等。
3.scsi设备当一个新的 SCSI主卡被侦测到时, SCSI驱动程序会寻找连接著的设备。请检查系统日志你的设备被正确地侦测到了。新的 SCSI设备会被指定为第一个可用的SCSI设备文件。第一个 SCSI硬盘是/dev/sda,第一个SCSI磁带机是/dev/st0,还有,第一个CD-ROM会是/dev/scd0。
4.网卡Linux的以太型网卡界面通常被称做 eth0、eth1等等。环形卡亦同样地被看待.然而它们被称做 tr0、tr1等等。 ifconfig命令是被用来观看及修改网络界面状态的。Linux的另一特点是网络界面并不会像其他设备一样地被看成是一个在/dev里头的文件。
5.串行设备Linux的串行设备都是被经由/dev/cua*和/dev/ttyS*特殊设备文件来做取用。ttyS*的设备被使用在进来的连接,例如直接地连接终端机。cua*的设备被使用在往外的连接,比如说调制解调器。而每一个实体串口都各有ttyS和cua两个设备文件:要使用哪个适当的设备到你的应用上都由您来决定。
END
注意事项
如果您在/dev内找不到它们时请不要觉得惊讶。当一个以太网卡被侦测到时,它会被指定为第一个可用的接口卡名字,通常为eth0。
Linux设备文件三大结构:inode,file,file_operations
Linux设备文件的创建和管理涉及到三个核心结构:inode、file和file_operations。在驱动程序与应用层交互中,这些结构扮演着关键角色。首先,当创建文件时,会为该文件在文件系统中生成一个inode,它是文件的静态信息存储单元,包含设备号、路径和驱动对象等。inode是VFS四大对象之一,通常在驱动的open()方法中进行初始化和使用,如字符设备文件中,会填充特定的def_chr_fops等操作。
文件结构file则与每个进程的文件描述符表相关联,open()会根据路径填充file结构,包括文件路径、inode引用、f_op(file_operations对象)等。file的f_op成员在第一次open时被驱动程序设置,如chrdev_open()会将cdev.fops分配给file,实现设备特定操作。file的私有数据部分可以隐藏设备的私有信息,支持不同设备的区分和操作的分层设计。
file_operations结构提供了设备文件的底层操作接口,如open、close等。在chrdev_open()函数中,驱动会通过inode的cdev指向,找到对应的设备对象,并将其操作接口绑定到file的f_op上。这样,驱动可以根据设备的不同,实现定制化的操作和功能扩展。
理解这些结构之间的交互对于驱动程序开发者至关重要,通过它们,我们可以实现设备的细粒度管理和定制化操作。想要深入了解Linux内核,可以参考免费资源:ke.qq.com/course/403254...,并加入学习交流群739729163获取更多学习资料和讨论。
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