我的一个朋友在课堂上问我这个问题,我无法回答。他问道:
因为我们知道内核通过设备驱动程序控制物理硬件。如果所有这些功能都保存在设备控制器本身而不是内核管理它们,那该怎么办?这种情况会带来什么后果?是好是坏?
我在网上搜索了这个问题,但无法获得有关此方案的信息。可能是我没有使用正确的关键字搜索。
您对此的见解将帮助我清除我的概念。
请回答。
感谢。
答案 0 :(得分:0)
您的问题似乎建议通过“保持”“控制(物理设备控制器内部的物理硬件)来消除”设备驱动程序“。这个的前提似乎是:
内核通过设备驱动程序控制物理硬件。
设备驱动程序的描述类似于我对最终用户理解的看法,而不是从开发人员的角度来看。最终用户知道该设备,并且它是采用该抽象的设备驱动程序,并且可以将该设备控制到每个设备端口的特定控制位。
但设备驱动程序负责平凡的内务管理任务,例如:
这些任务是设备驱动程序的组成部分。这些任务无法从内核驱动程序的范围转移到外围设备。
有时设备驱动程序只能尝试管理设备,而不是完全控制它,例如,在数据包泛洪期间使用NIC驱动程序。
无论多少“所有这些功能都保存在设备控制器内部”,您都无法消除设备驱动程序。并且仍然会有从设备驱动程序向外设发出的控制指令/命令。
有问题的硬件设备应该是计算机外围设备设备,而不是自主机器人设备。该设备应设计为与计算机一起运行。处理器和设备之间的任何接口都应该适合于该任务。如果外围设备更加“智能化”,则CPU可以卸载,高级命令接口可以替换低级子操作指令。但只有“一些”功能可以传输到外设,而不是“全部”。