0

我的一个朋友在课堂上问我这个问题,我无法回答。他问:

因为我们知道内核通过设备驱动程序控制物理硬件。如果所有这些功能都保存在设备控制器本身而不是由内核管理它们会怎样。这种情况会产生什么后果?是好是坏?

我在网上搜索了这个问题,但无法获得有关这种情况的信息。可能是我没有在正确的关键字中搜索。

你对此的洞察力将帮助我理清我的概念。

请回答。

谢谢。

4

1 回答 1

0

您的问题似乎建议通过“保持” “控制(的)物理硬件......在设备控制器内部”来消除“设备驱动程序”。这样做的前提似乎是:

内核通过设备驱动程序控制物理硬件。

对设备驱动程序的描述类似于我对最终用户的理解,而不是从开发人员的角度来看。最终用户知道设备,并且设备驱动程序采用该抽象并可以控制该设备到每个设备端口的特定控制位。

但是设备驱动程序负责日常的内务处理任务,例如:

  • 维护设备状态和可用性;
  • 配置设备以进行操作;
  • 管理数据流,建立/拆除数据传输,在用户空间和内核空间之间复制数据;
  • 处理中断和异常。

这些任务是设备驱动程序不可或缺的。这些任务不能从内核驱动程序的范围转移到外围设备。

有时设备驱动程序只能尝试管理设备,而不是完全控制它,例如,在数据包泛滥期间的 NIC 驱动程序。

无论有多少“所有这些功能都保存在设备控制器本身内部”,您根本不可能消除设备驱动程序。并且仍然会从设备驱动程序向外围设备发出控制指令/命令。

所讨论的硬件设备应该是计算机外围设备,而不是自主机器人设备。该设备应设计为计算机一起操作。处理器和设备之间的任何接口都应该适合该任务。如果外围设备做得更“智能”,那么也许 CPU 可以减轻负担,一个高级命令接口可以代替低级子操作指令。但是只有“一些”功能可以转移到外设,而不是“全部”。

于 2012-11-06T21:20:40.150 回答