Hardware, jádro a programy v uživatelském prostoru mohou mít různé velikosti slov¹.
-
Můžete zjistit, zda CPU je 64bitový, 32bitový nebo umožňuje obojí zaškrtnutím
flags
řádek v/proc/cpuinfo
. Musíte znát možné příznaky vaší rodiny architektury. Například na platformách i386/amd64lm
příznak identifikuje CPU podporující amd64 (CPU, které tento příznak nemají, jsou pouze i386).grep -q '^flags *:.*\blm\b' /proc/cpuinfo # Assuming a PC
-
Můžete zjistit, zda je jádro 32bitové nebo 64bitové, dotazem na architekturu pomocí
uname -m
. Napříkladi[3456]86
jsou 32bitové, zatímcox86_64
je 64bitový. Všimněte si, že na několika architekturách může 64bitové jádro spouštět 32bitové uživatelské programy, takže i kdyžuname -m
zobrazuje 64bitové jádro, není zaručeno, že budou dostupné 64bitové knihovny.[ "$(uname -m)" = "x86_64" ] # Assuming a PC
-
Co je k dispozici v uživatelské zemi, můžete zjistit dotazem na podporu LSB pomocí
lsb_release
příkaz. Přesnějilsb_release -s
vypíše:
-samostatný seznam podporovaných funkcí LSB. Každý prvek má tvarmodule-version-architecture
. Například dostupnost knihovny ix86 C je označenacore-2.0-ia32
, zatímcocore-2.0-amd64
je analog pro amd64. Ne každá distribuce však deklaruje všechny dostupné moduly LSB, takže jich může být k dispozici více, než je tímto způsobem zjistitelné. -
Pomocí příkazu jako
file /bin/ls
můžete vidět, pro jakou architekturu jsou v systému vytvořeny programy . Všimněte si, že je možné mít smíšený systém; i kdyžls
je 64bitový program, váš systém může mít nainstalované knihovny pro spouštění 32bitových programů a (méně často) naopak. -
Upřednostňovanou velikost slova pro vývoj (za předpokladu, že je k dispozici kompilátor C) můžete zjistit zkompilováním 5řádkového programu C, který vypíše
sizeof(void*)
nebosizeof(size_t)
. Stejné informace můžete získat o něco méně spolehlivým způsobem² spuštěním příkazugetconf LONG_BIT
.#include <stdio.h> int main() { printf("%d\n", (int)sizeof(void*)); return 0; }
Pokud jde o virtuální stroje, to, zda můžete provozovat 64bitový VM na 32bitovém systému nebo naopak, závisí na technologii vašeho virtuálního stroje. Viz zejména Jak mohu nainstalovat 64bitový virtuální počítač Linux na 32bitový Linux?
¹ „Velikost slova“ je obvyklý název pro to, co nazýváte bitness.
² Může být nespolehlivé, pokud někdo nainstaloval alternativní kompilátor C s jinou cílovou architekturou, ale zachoval výchozí systém getconf
.