2013-11-10 39 views
0

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

回答

2

Linux 当作是文件。也就是说,你有一个设备正是你与文件进行交互以同样的方式编程互动:

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

很清楚,谢谢 – Kvass

2

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

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