【问题标题】:What does "all devices are files" mean?“所有设备都是文件”是什么意思?
【发布时间】:2013-11-10 02:51:24
【问题描述】:

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

【问题讨论】:

    标签: linux file device


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 1970-01-01
        • 1970-01-01
        • 2018-05-25
        相关资源
        最近更新 更多