前些天,一个朋友说他有个嵌入式设备,设备上的软件都是32位的,这个通过file命令可以查看。是armv8平台,因此是支持64位的。所以他有个疑问,怎么看内核是32位还是64位。(设备内核单独分区,rootfs单独分区后,就会有这种情况)
在群里面聊的时候,说的基本都是uname命令来看,但是朋友坚持说,uname只是把平台指令集给打印出来,并非就真的是64位的内核(uname显示为aarch64)。最后在另一个资深的BSP工程师的朋友提点下,可以看对应的内核模块是几位的,因此file了下ko文件,是64位的。
大家都是写C语音出身,其实可以编译一个64位的软件上去,看看能不能跑,但是由于设备用户态的软件都是32位的(包括C库),并且没有64位的相关软件,因此如果你要编译一个C可执行文件,也必须把依赖的C库也编译出来。成本是比较高的,因此我自己的想法是可以用go编译一个arm64的二进制上去跑。如果跑得起来,那么内核就是64位了。
转载请注明: 转载自elkPi.com
本文链接地址: Linux内核是否64位的问题