linux字符设备是什么

64次阅读
没有评论

共计 1670 个字符,预计需要花费 5 分钟才能阅读完成。

今天丸趣 TV 小编给大家分享一下 linux 字符设备是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

linux 字符设备有:1、鼠标,是计算机的一种外接输入设备,也是计算机显示系统纵横坐标定位的指示器;2、键盘,是用于操作计算机设备运行的一种指令和数据输入装置;3、串行端口终端,使用计算机串行端口连接的终端设备;4、控制终端;5、控制台等。

本教程操作环境:linux5.9.8 系统、Dell G3 电脑。

Linux 系统为了管理方便,将设备分成三种基本类型:

字符设备

块设备

网络设备

它们均以一个文件节点形式显示在文件系统的 /dev 目录下(crw–w—- 1 root tty 4,0 7 月 11 09:11 tty0 其中 c 代表字符设备类型)。

linux 字符设备

字符设备是指设备无需缓冲即可直接进行读写的设备,如鼠标,键盘,串口设备、调制解调器等,它与块设备的区别在于是字符操作的基本单位是字节。

字符设备的分类

字符设备主要包括控制终端设备和串行终端设备,例如控制台和键盘。依据功能和硬件上的差别,字符终端设备有如下分类:

串行端口终端(/dev/ttSn):使用计算机串行端口连接的终端设备,串行设备数据传输方式为同一字符 8 个 bit 单线传输,在命令行输入 echo hello world /dev/ttyS0 可将输入写入到对应设备。

伪终端(/dev/ttyp,/dev/ptyp): 对应底层不存在真实的硬件设备,用于为其他程序提供终端式样的接口,如网络登陆主机时网络服务器和 shell 程序之间的终端接口。

控制终端(/dev/tty):主设备号为 5,进程控制终端,与进程相关联,如登陆 shell 进程使用的就是终端 /dev/tty。

控制台(/dev/ttyn,/dev/consol): 计算机输入输出的显示器,当控制台登陆时,使用的就是 tty1,而 ubuntu 图形界面使用的 tty7。

其他类型:现行的 linux 针对许多不同的设备建有许多其他种类的设备特殊文件,如 ISIDIN 设备的 /dev/ttyIn 设备。

下面为字符设备结构示意图

字符设备的性质及特点

字符设备属于设备文件系统的一种,相当于底层硬件向上层提供的逻辑设备文件,宛如将一个数据端口 (数据寄存器) 与一个文件对接起来,设备驱动程序直接对文件操作,于是便直接对端口进行了读写操作。同样作为文件,字符设备驱动也必须实现文件的基本的操作 open(),close(),write(),read()等,当然终端重定向操作也是支持的。

字符设备文件文件的读写是以单个字节为单位的,不需要设立硬件缓冲区。设备像访问字节流一样被操作系统访问。字节流就像在硬件端口和文件系统搭建起了一个传送管道,字节逐个通过管道传输并呈现给读写双方。这个流特性在驱动程序中是以缓冲队列来实现的。例如: 控制台的结构体中的读写缓冲队列

struct tty_struct {
struct termios termios;
int pgrp;
int stopped;
void (*write)(struct tty_struct * tty);
struct tty_queue read_q; // 读队列
struct tty_queue write_q; // 写队列
struct tty_queue secondary; //tty 辅助队列(存放规格化后的字符)
};

字符设备由字符设备号标识。字符设备号由主设备号和次设备号构成,例如 /dev/ttyS0 的设备号为(4,64); 主设备号标识设备对应驱动程序,内核通过主设备号将设备和驱动程序一一对应起来,次设备号由驱动程序使用,用于驱动程序内部区分设备细节差别使用的代码,内核其他部分不使用它。

以上就是“linux 字符设备是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计1670字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)