0

我听说有人说在 Linux 中“所有设备都是文件”。这意味着什么?我对文件的理解是,它是磁盘上写入字节和读取字节的逻辑位置。据我所知,设备只是任何物理硬件......与文件有点无关。有人可以向我解释这个说法吗?

4

2 回答 2

7

Linux每个设备都视为文件。也就是说,您以与与文件交互的方式完全相同的方式以编程方式与设备交互:

  • 您通过路径指定设备,通常在/dev目录下。
  • 您首先“打开”设备,就像打开文件一样,它会为您提供文件描述符。
  • 您可以ioctl对文件描述符执行(输入/输出控制)操作。
  • 您可以通过写入和/或读取文件描述符来发送和/或检索数据。
  • 使用完设备后,您“关闭”设备。
于 2013-11-10T02:59:42.483 回答
2

这意味着设备的实际细节被抽象出来,以便应用程序可以将其视为用于 IO 目的的文件。

例如,串行端口可能以多种不同的方式在硬件中实现,但操作系统隐藏了这一点,以便应用程序可以像读取和写入文件一样从设备读取和写入设备。

于 2013-11-10T02:58:11.210 回答