欢迎,来自IP地址为:18.189.2.122 的朋友

Linux/Unix 以文件方式管理设备,支持的设备保存在”/dev”目录中。这些设备文件不是实际的文件,而一些特殊的用于表示连接到系统中可以使用的设备的表示性文件。

对于这些文件来说,特别容易搞混淆的就包括”/dev/console”、”/dev/tty”和”/dev/tty0″,本文将探究细微差别还区分以上三个设备文件。

什么是 Linux 系统的 /dev/tty

“tty”是”TeleTYpewriter”的缩写,它最早出现于通过远程输入、远程输出方式连接主机时期。”/dev/tty”是一个表示当前终端进程的特殊文件。如果通过 ssh 会话连接至终端,则”/dev/tty”就表示分配给 ssh 会话的终端进程。

可以使用如下命令来查看当前使用的终端:

# tty
OR
# who am i

输出信息显示当前的 tty 是 pts/0,pts/0指的是伪终端(Pseudo Terminal)的用户侧(slave)进程。伪终端是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。其中master端接近用户显示器、键盘端,slave端则是虚拟终端上的命令行接口。Linux 会通过伪终端驱动程序,将 master 端的用户输入发送给 要 slave 端供程序输入,并将产生的输出返回 master 端用于显示程序执行结果。

什么是 Linux 系统的 /dev/tty[0-N]

/dev/tty[0-N] 是运行于 GUI 环境的虚拟控制台,而其中的数字N则表示 TTY 数值。通常情况下,tty0 是默认虚拟控制台。

例如,登录到可视化环境后,就会以虚拟控制台方式显示信息,可以通过 Crtl+Alt+F1 或其它功能键来切换当前的控制台。tty1至tty63是用户可用的虚拟控制台,它们通过物理的控制台驱动来模拟更多的控制台。

什么是 Linux 系统的 /dev/console

/dev/console 被称为系统控制台,引导和内核消息在引导过程中显示在这个控制台上。 与其他 Linux 设备文件一样,它位于 /dev 目录中。

可以通过如下命令来确认相关信息:

# ls -lah /dev/console

/dev/console 的存在主要是为了将内核的控制台暴露给用户空间。 它在系统启动(和关闭)期间显示消息,还有助于使用 init 1 命令切换到单用户模式。

希望本文可以帮助你找出刚刚介绍的三个设备文件中存在的差异。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注