Intelの下でuname -m
の結果を見て、OSが32かどうかを確認できます。 64ビットですが、ARMでは次のようになります。
armv7l
推測
file /usr/bin/ls
私は32ビットOSを使用していますが、これを簡単に知るにはどうすればよいですか?
コメント
回答
あります64ビット対応のCPUで32ビットまたは混合オペレーティングシステムを実行できるため、いくつかのグラデーションがあります。詳細な説明については、 64ビットカーネルを参照してください。ただし、すべての32ビットELF実行可能実行プロセスはどうですか?(x86用に記述されていますが、ほとんどが適用されます)
プロセッサモデルは、/proc/cpuinfo
にあります。例:
$ cat /proc/cpuinfo Processor : ARMv7 Processor rev 10 (v7l)
ARMv7(およびそれ以下)は32ビットです。 ARMv8 では64ビット命令セットが導入されています。
システムが64ビットバイナリをサポートしているかどうかを確認する場合は、カーネルアーキテクチャを確認してください。 :
$ uname -m armv7l
64ビットプロセッサでは、armv8
(またはそれ以上)で始まる文字列が表示されます。 )uname
プロセス自体が32ビットプロセスの場合、またはaarch64
が64ビットプロセスの場合。 ( https://stackoverflow.com/questions/45125516/possible-values-for-uname-m も参照)
コメント
- 私は'あなたの答えに異議を唱えませんが、残念ながらandroidはLinuxであるため、ローカルに表示し、読み取らないコマンドがあると思われます。一部のページのドキュメント
- @THESorcerer AndroidはLinuxカーネルを使用していますが、Linuxシステムではありません。 Linuxユーザーランドツールはありません(非常に小さなサブセットのみ)。 Androidでは、ベースOSで64ビットのサポートが一貫していると思います。そのため、
cat /proc/$$/maps
を使用すると、adbコマンドラインからシステムが64ビットか32ビットかがわかります。 - ARMv8(CRC、オプションのCryptoなし)であるRaspberry Pi 3は、ARMv8であっても、
armv7l
を報告すると思います。したがって、'間違ったCPUが報告されることは間違いありません。 - @jww
armv7l
が報告された場合は、 'が32ビットカーネルを実行していることを意味します。 64ビットCPUで32ビットカーネルを実行できます。 CPUに関する情報が必要な場合は、/proc/cpuinfo
をお読みください。 - uname -mは、" aarch64
。 / proc / cpuinfoは、'常にプロセッサの名前を含むとは限りません。
ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic.
— wikipediauname -a
とgcc -v
?それらは役立つかもしれません。Announced October 2011, ARMv8-A (often called ARMv8 although not all variants are 64-bit such as ARMv8-R) represents a fundamental change to the ARM architecture. It adds a 64-bit architecture, named "AArch64", and a new "A64" instruction set. AArch64 provides user-space compatibility with ARMv7-A ISA, the 32-bit architecture, therein referred to as "AArch32" and the old 32-bit instruction set, now named "A32" ARM announced their Cortex-A53 and Cortex-A57 cores on 30 October 2012.
— en.wikipedia.org/wiki/ARM_architecture#64.2 F32-bit_architecture