怎么查看linux内核是32位还是64位

2022-08-10 科技 108阅读
file /lib*/libc-*因为 Linux 的 32、64 支持除了内核,还要有对应的函数库才能真正运行。
所以 64 位内核但只有 32 函数库一样只能跑 32 的程序。如果 64 位内核和只有 64 位函数库环境,那么只能跑 64 位的程序。

其实一般来说,看 / 目录的构成就知道了。有 lib64 就是 64 位的系统。
当然 32 位内核是不能跑 64 位函数库和 64 位程序的,但依然可以装一套 64 位的数据(不过就是一大堆文件而已)。
而且纯 64 位, /lib64 可以不要 64 这个后缀而只要 /lib。
不过从大家的习惯来说,64 位的系统,必然有 /lib64 ,glibc 基本库必然是 libc-* 。

我这个命令就是看 /lib* 目录里面 libc-* 文件的文件类型。 libc-* 这个看系统,比如我的是 libc-2.17.so 。也就是 glibc 2.17 的库,这个 glibc 是基本C函数库。当前主流系统必须装的。
一般 64 位系统,会有一个 ELF 64-bit LSB shared object 。如果装了 32 位兼任库,会在另一个目录里面出现一个 ELF 32-bit LSB shared object 的 glibc 基本库文件。

不过注意的是,glibc 只是基本库,很多软件都需要附加的函数库才能真正运行起来的。并不代表有这个文件就肯定可以用。只是这个东西现在是最基本的运行支持要求。

注意 Fedora 好像已经取消 /lib*、/bin、/sbin这些目录,而是都扔到 /usr 里面的对应目录中。不过现在依然保留这三个目录的连接来保证兼容。这个命令现在应该还可以用,未来还行不行就不知道了。
龙芯的很多系统就是典型的 64 位内核跑 32 位环境的样子,这种机器明显的就不能靠 uname 来确定支持。必须看系统到底有没有 64 位的运行库。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com