&,取地址符号,可以获得一个变量在内存中的存储地址,但是获得的地址有异同,有的是偏移地址,有的是全局虚拟地址。
1、对于栈中的变量来说,&地址取得的是变量的偏移地址:测试程序:test.c
根据页表映射机制,编写内核模块根据虚拟地址计算出真实的物理地址为:
最后,查看系统内存,证实变量test的值:
2、对于静态全局变量(位于数据段中)来说,&取得的是全局虚拟地址:
测试程序test.c
根据页表映射机制,编写内核模块根据虚拟地址计算出真实的物理地址为:
最后,查看系统内存,证实变量test的值:
【备注】查看系统内存的开源工具链接为:传送门