1、切换到root用户,su - root,如下图。
2、getconf LONG_BIT
通过命令getconf LONG_BIT获取系统位数,返回32就表示是32位,返回64就表示是64位,如下图。
3、uname -a
通过命令uname -a获取系统位数,返回ixxx的全是32位的,有X86_64的全是64位,如下图。
4、file /sbin/init或file /bin/ls
通过命令file /sbin/init或file /bin/ls获取系统位数,有32-bit的是32为的,有64-bit的是64位的,如下图。
网上有说法,X64 linux上,32位executable的text段起始地址是0x08048000,64位executable的text段起始地址是00400000。在一台机器上试验,确实如此:
但是换了一台机器,完全不是这个样子了:
可执行程序每次启动时,都被加载到随机位置上,这种现象叫PIE。PIE会使mtrace、addr2line这样的工具无效。
与linux发行版本、编译器版本都有关。例如:
gcc a.c -fpie -pie
效果如下:
gcc a.c -no-pie
效果如下:
是指CPU的架构。CPU分为精简指令集(RISC)和复杂指令集(CISC)两大类架构。SPARC是SUN公司开发的一种基于精简指令集的CPU架构。
X64严格的说应该是X86-64 。X86最早由英特尔公司开发的基于复杂指令集的CPU名称后面都有86字样,所以将该架构的CPU统称为X86。X64是指AMD公司生产的64位CPU 。
关于CPU架构可以百度搜索 “CPU”,参考“技术架构”部分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)