我需要编写一个bash脚本,我必须检查
Linux内核是32位还是64位.
我正在使用uname -a命令,它给了我x86_64结果.但我相信我不能以通用的方式使用它,因为如果某些人使用非x86架构,结果可能会有所不同.
如何检查Linux的32位/ 64位内核?
解决方法
问题是:您打算通过了解自己是32岁还是64岁来实现目标?在假设的128位环境中会产生什么后果?那个实际上正在测试N位的部分是什么? cpu可能支持以64位模式运行,但环境为32位.此外,环境本身可能是混合模式;考虑运行具有32位用户空间的64位内核(在少数经典RISC上完成).然后,如果用户空间不是同质的比特/可执行格式怎么办?这就是为什么getconf LONG_BIT同样毫无意义,因为它取决于它是如何编译的.
$/rt64/usr/bin/getconf LONG_BIT 64 $/usr/bin/getconf LONG_BIT 32 $file /usr/bin/getconf /rt64/usr/bin/getconf /usr/bin/getconf: ELF 32-bit MSB executable,SPARC32PLUS,V8+ required,version 1 (SYSV),dynamically linked (uses shared libs),for GNU/Linux 2.6.4,not stripped /rt64/usr/bin/getconf: ELF 64-bit MSB executable,SPARC V9,relaxed memory ordering,not stripped $uname -m sparc64