小编use*_*977的帖子

在虚拟机和主机之间共享内存

通过shmgetshmat,我可以从另一个程序访问存储在一个程序中的数据。这是代码的要点:

key=ftok("shared.c",'c');
shmid=shmget(key,1024,0644|IPC_CREAT);
data=shmat(shmid,(void *)0,0);
printf("Enter the data");
gets(data);
Run Code Online (Sandbox Code Playgroud)

同样,我可以编写另一个程序并使用shmat它来访问数据。

现在我想知道如何从主机操作系统访问它。由于共享内存 ID 在主机内存中会有所不同,shmat因此不起作用。如何从主机访问共享内存?

我们可以这样做吗:我们知道在管理程序中存在一个关于每个操作系统的页表,它将逻辑地址映射到物理地址,有一个 pmap 表将管理程序的物理地址与主机的物理地址,并且管理程序中也存在影子页表,它将逻辑来宾地址映射到主机物理地址。有没有办法访问操作系统对应的影子页表或分页表

virtual-machine shared-memory

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

shared-memory ×1

virtual-machine ×1