2. 设备类型

在 Linux 中,一个核心原则是“一切皆文件”。这一理念延伸到了硬件组件,它们在文件系统中表现为特殊文件。理解这些 Linux 设备 及其对应的文件对于系统管理至关重要。让我们从探索 /dev 目录开始,这是每个 设备文件 的传统位置。

在 /dev 中探索 Linux 设备

您可以列出 /dev 目录中的文件,以查看系统如何表示各种 Linux 设备

$ ls -l /dev
brw-rw----   1 root disk      8,   0 Dec 20 20:13 sda
crw-rw-rw-   1 root root      1,   3 Dec 20 20:13 null
srw-rw-rw-   1 root root           0 Dec 20 20:13 log
prw-r--r--   1 root root           0 Dec 20 20:13 fdata

以下是输出列的从左到右的细分:

  • 权限
  • 所有者
  • 主设备号
  • 次设备号
  • 时间戳
  • 设备名称

识别 Linux 设备类型

ls -l 输出中权限字符串的第一个字符指示了文件类型。对于 设备文件,您会看到以下之一,这有助于识别特定的 Linux 设备类型

  • c - 字符设备
  • b - 块设备
  • p - 管道
  • s - 套接字

字符设备

这些设备一次传输一个字符的数据。许多伪设备(它们没有物理连接的硬件,但提供基本的操作系统功能)被表示为字符设备。一个经典的例子是 /dev/null

块设备

这些设备以大块、固定大小的数据块进行传输。您通常会发现硬盘(/dev/sda)、固态硬盘和其他海量存储组件等存储硬件被表示为块设备,因为它们针对基于块的数据访问进行了优化。

管道设备

命名管道,或 FIFO(先进先出),允许进程间通信。它们的作用类似于字符设备,但将输出引导到另一个进程而不是物理设备。

套接字设备

套接字设备也促进了进程间的通信。与管道不同,它们更加通用,可以支持多个进程之间的通信,甚至跨网络进行通信。

理解设备号

每个 Linux 设备 都由两个数字唯一标识:主设备号次设备号。您可以在 ls 输出中看到它们,用逗号分隔。对于数字为 8, 0 的设备:

主设备号 (8) 标识负责该设备的驱动程序。在这种情况下,8 通常用于 SCSI 磁盘驱动器。次设备号 (0) 告诉驱动程序它是设备的哪个特定实例。在这里,0 代表第一个驱动器(a)。

登录以保存您的学习进度

登录

练习

为了应用您对 Linux 设备 的了解,我们推荐以下动手实验。这些练习将帮助您在现实场景中建立与设备交互和管理的信心。

  1. 管理 Linux 分区和文件系统 - 练习创建和管理磁盘分区和文件系统,它们是 Linux 中基本的块设备。
  2. 探索 Linux 中的硬件设备 - 学习识别和检查各种硬件设备,了解它们如何在 /dev 目录中表示。
  3. 在 Linux 中创建和激活交换文件 - 获得创建和激活交换文件的实践经验,交换文件在功能上充当虚拟内存设备。

测验

在 `ls -l` 命令中,字符设备的符号是什么?(请提供单个小写英文字母作为答案)