linux ELF文件如何得到加载到内存后的末尾
发布网友
发布时间:2022-04-30 02:37
我来回答
共1个回答
热心网友
时间:2023-10-08 17:42
首先对于CPU来说它‘看’到的永远是真实的地址,你想CPU就是一个硬件,它懂什么虚拟。所以说虚拟地址是对于应用程序来说的,比如说VI,它被执行的时候的确是要分配内存,但是,是谁分配?是linux!
也就是说比如vi是你写的程序,你写mov ds,ax的时候分给你的0x30是linux的个程序给你的,它对应的实际的地址并不一定就是内存的0x30,也有可能是0x40,或者其他的,但是你并不用去想它对应哪个,你只要用就行了。进行的一系列变换也是linux操作系统在做这件事情。linux变换后得到一个真实的地址给CPU然后cpu去执行,也就是说在应用程序和CPU之间有一个操作系统在做怪。