Linux kernel 是否必须使用资源为每个进程调用mmap()?

Linux kernel 是否必须使用资源为每个进程调用mmap()?,linux-kernel,mmap,Linux Kernel,Mmap,我正在尝试实现一个应用程序,其中许多不同的进程访问相同的共享资源。我只想对到达资源的第一个线程执行一次mmap()。然后,返回的虚拟地址可以跨线程共享 但我记得,在Linux内核中,每个进程都有自己的虚拟地址空间,因此返回的虚拟地址可能对所有线程都无效。这种理解正确吗?有没有办法避免多次mmap()调用?“因此返回的虚拟地址可能对所有线程无效”地址空间特定于进程。对进程中的一个线程有效的所有地址对该进程中的所有其他线程也有效。“因此返回的虚拟地址可能对所有线程无效”地址空间特定于进程。对进程中的

我正在尝试实现一个应用程序,其中许多不同的进程访问相同的共享资源。我只想对到达资源的第一个线程执行一次
mmap()。然后,返回的虚拟地址可以跨线程共享


但我记得,在Linux内核中,每个进程都有自己的虚拟地址空间,因此返回的虚拟地址可能对所有线程都无效。这种理解正确吗?有没有办法避免多次
mmap()
调用?

“因此返回的虚拟地址可能对所有线程无效”地址空间特定于进程。对进程中的一个线程有效的所有地址对该进程中的所有其他线程也有效。“因此返回的虚拟地址可能对所有线程无效”地址空间特定于进程。对进程中的一个线程有效的所有地址也对该进程中的所有其他线程有效。