Linux 设备的内存映射IO地址是否映射到进程的内核空间?

Linux 设备的内存映射IO地址是否映射到进程的内核空间?,linux,assembly,x86,operating-system,Linux,Assembly,X86,Operating System,假设我有一个使用内存映射IO的设备 我们知道在Linux中,每个进程有3 GB的用户空间和1 GB的内核空间 现在,我假设该设备的地址将映射到进程的内核空间,因此进程(在用户模式下运行)无法访问该设备。我说得对吗 现在,我假设该设备的地址将映射到进程的内核空间,因此进程(在用户模式下运行)无法访问该设备。我说得对吗 大部分。由于设备存在于物理内存中,因此可以将它们映射到多个虚拟地址。具有适当特权的用户空间应用程序可以使用/dev/mem上的mmap()将部分I/O内存重新映射到其地址spce中

假设我有一个使用内存映射IO的设备

我们知道在Linux中,每个进程有3 GB的用户空间和1 GB的内核空间

现在,我假设该设备的地址将映射到进程的内核空间,因此进程(在用户模式下运行)无法访问该设备。我说得对吗

现在,我假设该设备的地址将映射到进程的内核空间,因此进程(在用户模式下运行)无法访问该设备。我说得对吗

大部分。由于设备存在于物理内存中,因此可以将它们映射到多个虚拟地址。具有适当特权的用户空间应用程序可以使用
/dev/mem
上的
mmap()
将部分I/O内存重新映射到其地址spce中

现在,我假设该设备的地址将映射到进程的内核空间,因此进程(在用户模式下运行)无法访问该设备。我说得对吗


大部分。由于设备存在于物理内存中,因此可以将它们映射到多个虚拟地址。适当特权的用户空间应用程序可以使用
/dev/mem
上的
mmap()
将部分I/O内存重新映射到其地址spce。

您假设的是32位操作系统,对吗?@David Schwartz是。您假设的是32位操作系统,对吗?@David Schwartz是。