“所有设备都是文件”是什么意思?

时间:2013-11-10 02:51:24

标签: linux file device

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

2 个答案:

答案 0 :(得分:4)

Linux 将每个设备视为,就好像它是一个文件一样。也就是说,您以与编程方式完全相同的方式与设备进行交互:

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

答案 1 :(得分:2)

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

E.g。串行端口可以通过许多不同的方式在硬件中实现,但操作系统会隐藏它,以便应用程序可以读取和写入设备,就像读取和写入文件一样。