假设linux中有两个进程P1,P2(这是一种病毒)。P2可以访问P1的本地变量(例如x)吗?
在web上搜索时,我发现由于进程中使用的地址是逻辑地址,所以P2无法访问P1的局部变量'x‘。
但我想知道P2是否生成随机地址,其中一个地址解析为'x‘的物理地址,那么它不能访问它吗?
P2真的有可能访问P1的“x”吗?
如果是,怎么做?(如果可以通过任何技巧访问,请告诉我)
如果没有,为什么?
P1代码:
int main() {
int x = 20;
return 0;
}
p2代码:
int main() {
/*
generate random addres
这里是我的问题:我想从运行在Linux内核空间中的代码中对数据文件的一部分进行内存映射。我想稍后也从Linux内核空间中运行的代码中撤销相同的内存映射。如何执行这些操作?它们与在用户空间中使用mmap(2)/munmap(2)有何不同?
我试图在没有用户进程的内核空间中做到这一点。
我浏览了网络搜索和Linux内核书籍,包括Bovet和Cesati的"Understanding the Linux Kernel“。一本好书,但没有回答我的问题。
我需要在linux驱动程序中获得分配内存块的物理内存:这是一个FPGA SOC,内存被传递给SGDMA FPGA模块。
这可以归结为对“逻辑”和“虚拟”记忆的混淆:--它们是同义词还是反义?--
因此,我的驱动程序代码片段是:
unsigned long m = __get_free_pages(GFP_USER, order); // returns 'logical' address
if (m) {
instance->read_buffer[i].order = order;
if(1) { // should this be 0?