驱动物理地址和虚拟地址的有关问题
驱动物理地址和虚拟地址的问题今天看了别人写的一个驱动,发现里面对端口的访问都是直接通过物理地址访问的
驱动物理地址和虚拟地址的问题
今天看了别人写的一个驱动,发现里面对端口的访问都是直接通过物理地址访问的,让我很诧异,我一直认为驱动程序必须访问映射后的虚拟地址,但发现它的驱动程序是通过修改内核配置文件重新编译内核来做的,而不是通过模块加载来做的,请问是因为这个所以它的驱动可以访问物理地址吗?还是我没看明白它的代码?求大神啊
[解决办法]
关闭MMU才能直接访问物理地址,我怀疑是楼主理解错了
[解决办法]
不带MMU当然就没虚拟地址那,都是实地址
[解决办法]
你这个问题比较有创意,呵呵,感觉如果不是做像vmware那样的虚拟机的话,是多此一举,想用对地址有保护的操作系统,就选带MMU的处理器;如果方案是带MMU的处理器就选uclinux类操作系统。当然做虚拟化技术的话可能会出现你说的这种情况。个人观点,可能不准确,仅供参考。