-
Puoi vedere se la CPU è a 64 bit, 32 bit o compatibile con entrambi controllando
flagsriga in/proc/cpuinfo. Devi conoscere i possibili flag sulla tua famiglia di architettura. Ad esempio, sulle piattaforme i386/amd64, illmflag identifica le CPU compatibili con amd64 (le CPU che non hanno quel flag sono solo i386).grep -q '^flags\s*:.*\blm\b' /proc/cpuinfo # Assuming a PC -
Puoi vedere se il kernel è a 32 o 64 bit interrogando l'architettura con
uname -m. Ad esempio,i[3456]86sono a 32 bit mentrex86_64è a 64 bit. Si noti che su diverse architetture, un kernel a 64 bit può eseguire programmi utente a 32 bit, quindi anche seuname -mmostra un kernel a 64 bit, non vi è alcuna garanzia che le librerie a 64 bit saranno disponibili.[ "$(uname -m)" = "x86_64" ] # Assuming a PCNota anche che
uname -mpuò restituire un valore "virtualizzato". Ad esempio, sotto Linux, se eseguisetarch i386 bashsu un sistema amd64 e eseguiuname -mda quel bash, vedraiuname -msegnalazionei386. Ciò ti consente effettivamente di fingere di essere su un "sistema a 32 bit" anche se il kernel è a 64 bit, ad esempio per compilare programmi a 32 bit senza impostare la compilazione incrociata. -
Puoi vedere cosa è disponibile in userland interrogando il supporto LSB con
lsb_releasecomando. Più precisamente,lsb_release -sstampa un:elenco separato delle funzionalità LSB supportate. Ogni elemento ha la formamodule-version-architecture. Ad esempio, la disponibilità di una libreria C ix86 è indicata dacore-2.0-ia32, mentrecore-2.0-amd64è l'analogo per amd64. Tuttavia, non tutte le distribuzioni dichiarano tutti i moduli LSB disponibili, quindi potrebbero essere disponibili più moduli di quelli rilevabili in questo modo. -
Puoi scoprire la dimensione della parola preferita per lo sviluppo (supponendo che sia disponibile un compilatore C) compilando un programma C di 5 righe che stampa
sizeof(void*)osizeof(size_t).
Puoi usare uname -a e cerca x86_64 per vedere se stai utilizzando 64 bit. Qualsiasi altra cosa (per quanto ne so) e stai utilizzando 32 bit o sei su hardware non PC come alpha , sparc o ppc64 .
uname -m | sed 's/x86_//;s/i[3-6]86/32/'