为什么应用程序不能直接访问硬件设备?为什么我们需要切换到内核空间才能执行此操作?

问题描述 投票:0回答:1

我想知道为什么当我们要访问硬件设备时为什么需要切换到内核空间。我了解有时候,对于某些特定的操作(例如内存分配),我们需要进行系统调用才能从用户空间切换到内核空间,因为操作系统需要组织一切,并在进程之间以及它们如何使用内存和其他内存之间进行区分。 。但是为什么我们不能直接访问硬件设备?

linux kernel system-calls hardware userspace
1个回答
0
投票
可以选择提供从用户进程到设备寄存器,设备内存或两者的访问。常见的方法是与mmap()请求连接的特定于设备的服务。考虑帧缓冲器的板载内存,以及用户进程能够直接读写该空间的效率。通常,对于设备而言,尤其是出于安全考虑,提供直接访问的驱动程序通常会设置具有足够凭据的进程限制。 / dev中的文件通常使用所有者/组访问权限设置,同样受到限制。
© www.soinside.com 2019 - 2024. All rights reserved.