您无法使用 mmap 等直接访问机制安全地执行此操作,因为这样任何人都可以使用它。
在Linux中,用户内存和内核内存是独立的,并且在不同的地址空间中实现。地址空间是虚拟化的,这意味着地址是从物理内存中抽象出来的。由于地址空间是虚拟化的,因此可以存在许多地址空间。事实上,内核本身驻留在一个地址空间中,每个进程也驻留在自己的地址空间中。这些地址空间由虚拟内存地址组成,允许许多具有独立地址空间的进程引用相当小的物理地址空间(机器中的物理内存)。这不仅方便,而且安全,因为每个地址空间都是独立且隔离的,因此是安全的。
但这种安全性是有一定成本的。由于每个进程(和内核)可以具有引用物理内存不同区域的相同地址,因此不可能立即共享内存。(来源)
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |