探究Linux字符设备:了解哪些常见设备? (linux 字符设备有哪些)

作为一种流行的操作系统,Linux被广泛应用于各种设备和平台下。在Linux中,字符设备是一种与字符流进行交互的设备,不需要缓存,每次读写都是独立的。那么在Linux中,有哪些常见的字符设备呢?下面我们就来一探究竟。

1. tty设备

tty设备是字符设备的最基本形式,在Linux中几乎无处不在。tty的字母原意是teletype,因为在很早的时候,信息是通过打字机打印的,所以称之为电传打字机。

tty设备通常是指终端设备。它是计算机输入输出的一种方式,相当于一个显示器和键盘的组合。常见的tty设备有tty1、tty2、tty3等,在Linux中默认会开启6个。如果需要启动一个新的tty设备,则需要按下Ctrl+Alt+F[1-6],一共可以切换到6个不同的tty。

2. USB设备

随着科技的不断发展,USB设备也逐渐成为了我们生活中必不可少的一部分。在Linux中,USB设备也是通过字符设备进行交互的。

对于Linux来说,USB设备通常被称为USB子系统。USB子系统与其他子系统相似,也有它自己的设备驱动程序和支持库。在Linux中,默认情况下USB子系统是加载的,因此无需安装任何驱动程序即可插入USB设备并开始使用。

3. 网络接口设备

在一个Linux计算机上,网络接口设备可用于处理来自各种网卡(NIC)的输入和输出数据。网络接口设备是一个非常常见的字符设备,并且在Linux的网络栈中扮演着至关重要的角色。

通过网络接口设备,可以将网络包从一个物理网卡传递到另一个物理网卡。对于大多数网络管理员来说,了解如何设置网络接口和如何配置路由是非常重要的,因为这是最基本的网络配置功能。

4. 磁盘设备

磁盘设备是一种非常常见的字符设备。磁盘驱动器是一种能够读取和写入数据的设备,包括硬盘驱动器、光驱、软盘驱动器等。

在Linux中,磁盘设备的命名方式为/dev/sd[字母][数字]。其中字母表示不同的磁盘,数字表示该磁盘的分区。例如,/dev/sda表示之一个磁盘,/dev/sdb1表示第二个磁盘的之一个分区。

在Linux中,字符设备是我们所依赖的很多设备的重要组成部分。通过了解常见的字符设备,我们可以更好地了解计算机系统的工作原理。以上介绍的四种字符设备都是相当常见和有用的,不同的系统可能使用不同的设备,但它们的工作原理都是类似的。对于熟悉Linux的开发人员来说,深入了解字符设备也非常有益处。

相关问题拓展阅读:

LINUX misc设备是什么

杂项设备(misc device)

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

也就是说,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(自动分配主设备号 ),使用inod命令加载模块时会在终端显示分配的主设备号和次设备号,在/dev目录下建立该节点,比如设备leds,如果加载该模块时分配的主设备号和次设备号为253和0,则建立节点:mknod leds c 253 0。使用register_chrdev (LED_MAJOR,DEVICE_NAME,&dev_fops)注册字符设备驱动程序时都要手动建立节点 ,否则在应用程序无法打开该设备。

为不好归类的设备归为一 类。另外不用自己申请主设备号,而且不会随便占用其他主设备号

Linux下裸设备(raw device),字符设备,块设备还有logical device四者之间的关系(比如谁包含谁等)

块设备:按照数据块批量读写数据,备敏比如硬盘。

字符设备:按照数据串行输入输出,比如键盘

裸设备:就是一块硬盘或者一个分区,没培扰有经过格式化的,没有文件系统。

逻辑设备:就是讲小磁盘整合成一个大磁配滚旦盘,然后再进行分区,实际物理存储可能不连续。

linux字符设备和块设备的区别

还是我来告诉你吧!字符设备驱动:一般也可以看做小数据量的模块,主要处理键盘,鼠标,显示器,串口等一些小数据的字节为单位的设备

块设备驱动:主要针对于大数据量的数据传输与接收。比如磁盘、cdrom、软盘、u盘等存储器和类似于存储器的设备。

网络驱动:主要针对于基于网络通信协议的设备。比如网卡、wifi、蓝牙等通信设备。

u设备包含这三块的内容甚至更多,做u驱动开发工资很高的。

想学习这方面的知识,建议看《设备驱动设计与开发》这本书。

关于linux 字符设备有哪些的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 探究Linux字符设备:了解哪些常见设备? (linux 字符设备有哪些)