LINUX内存管理疑问,求高手解答!!
用户程序经过汇编编译后形成二进制指令和数据,运行之前,这些指令和数据所存放的地点是外部FLASH或硬盘,运行后,代码被调入内存。而CPU在执行代码的时候需要取线性地址,然后根据线性地址找到指令或数据,那么这些线性地址CPU从哪取?难道是从硬盘里取?还是内存有这些线性地址的拷备?求解答,被这问题困扰了好久了!
[解决办法]
cpu并不认识线性地址 所以不存在是cpu去找线性地址 cpu只是运行物理指令只认识物理地址 你说的这个线性转化成物理是内存管理做的 其实可执行文件的代码段在加载之后就对应了物理地址 而你用的可见的 就是线性地址 这是加载器就做好了的 所以说对cpu来说 线性地址是不可见的