【问题标题】:Can external hardware devices use System Calls?外部硬件设备可以使用系统调用吗?
【发布时间】:2017-09-11 13:49:12
【问题描述】:

外部硬件设备是否可以使用系统调用并访问操作系统?它让我想起了磁盘键设备的自动运行,但我不确定这是因为操作系统还是设备本身。

【问题讨论】:

  • 自动运行肯定是因为操作系统。 CD 播放器或 USB 硬件向 CPU 发送中断,CPU 运行操作系统驱动程序,驱动程序创建某种“找到新磁盘”消息,然后运行寻找该消息的软件。
  • 在 Linux 案例中,您想查看 udevdbus

标签: linux operating-system kernel hardware system-calls


【解决方案1】:

系统调用需要一个进程。除非有与设备绑定的进程,否则无法进行系统调用。

通常设备通过中断访问操作系统。处理中断的方式类似于调度系统调用的方式。系统调用是由异常触发而不是由中断触发的区别。

【讨论】:

    【解决方案2】:

    我确信有人可以或可能已经建造了一个。但总的来说,这不是它的工作方式。硬件通过中断或轮询或其他方式导致某些软件处理该硬件事件(插入 USB 密钥并启用 USB 驱动程序或驱动程序级别之上的操作系统软件的功能以搜索自动运行文件并运行它们)。

    当您单击鼠标按钮时,它只会向计算机发送一个信号,然后计算机会唤醒一些处理该按钮按下的软件。该软件要么是操作系统的一部分,要么与操作系统交互。

    如果在插入时自动安装驱动器或 cd 或 dvd,首先发送的信号会唤醒该接口的低级软件,然后将其传递/传递给操作系统,然后如果它启用了功能可能会自动安装该驱动器,然后如果它具有功能并且已启用它们,则可能会搜索某些同意的文件,这些文件将允许该设备上的软件由操作系统运行。所有的操作系​​统交互都是由软件完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多