GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare il testimone di hardware e sistema operativo?

L'hardware, il kernel ei programmi in spazio utente possono avere word size diverse¹.

  • Puoi vedere se la CPU è a 64 bit, 32 bit o compatibile con entrambi controllando flags riga in /proc/cpuinfo . Devi conoscere i possibili flag sulla tua famiglia di architettura. Ad esempio, sulle piattaforme i386/amd64, il lm flag identifica le CPU compatibili con amd64 (le CPU che non hanno quel flag sono solo i386).

      grep -q '^flags *:.*\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]86 sono a 32 bit mentre x86_64 è a 64 bit. Si noti che su diverse architetture, un kernel a 64 bit può eseguire programmi utente a 32 bit, quindi anche se uname -m mostra un kernel a 64 bit, non vi è alcuna garanzia che le librerie a 64 bit saranno disponibili.

      [ "$(uname -m)" = "x86_64" ]    # Assuming a PC
    
  • Puoi vedere cosa è disponibile in userland interrogando il supporto LSB con lsb_release comando. Più precisamente, lsb_release -s stampa un : elenco separato delle funzionalità LSB supportate. Ogni elemento ha la forma module-version-architecture . Ad esempio, la disponibilità di una libreria C ix86 è indicata da core-2.0-ia32 , mentre core-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 vedere per quale architettura sono costruiti i programmi sul sistema con un comando come file /bin/ls . Si noti che è possibile avere un sistema misto; anche se ls è un programma a 64 bit, il tuo sistema potrebbe avere librerie installate per eseguire programmi a 32 bit e (meno comunemente) viceversa.

  • 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*) o sizeof(size_t) . Puoi ottenere le stesse informazioni in un modo leggermente meno affidabile² eseguendo il comando getconf LONG_BIT .

      #include <stdio.h>
      int main() {
          printf("%d\n", (int)sizeof(void*));
          return 0;
      }
    

Per quanto riguarda le macchine virtuali, la possibilità di eseguire una VM a 64 bit su un sistema a 32 bit o viceversa dipende dalla tecnologia della macchina virtuale. Vedi in particolare Come posso installare una macchina virtuale Linux a 64 bit su un Linux a 32 bit?

¹ "Word size" è il nome usuale per ciò che chiami testimonianza.
² Può essere inaffidabile se qualcuno ha installato un compilatore C alternativo con un'architettura di destinazione diversa ma ha mantenuto l'impostazione predefinita del sistema getconf .


Linux
  1. Come sono cambiati i test di Linux e cosa conta oggi

  2. Come ottenere informazioni di sistema e hardware su Linux

  3. Come visualizzare i dettagli di sistema e hardware in Debian 10

  4. Come eseguire il downgrade da 64 bit a 32 bit?

  5. Come visualizzare i dettagli di sistema e hardware in Linux Mint 20

Come visualizzare le informazioni sull'hardware in Linux

Come sapere se hai un computer a 32 bit o 64 bit in Linux e Windows

Come installare e configurare Grafana

Come sapere se la versione a 32 bit o 64 bit di Linux

Come verificare il sistema Linux è a 32 o 64 bit?

Come collegare in rete Ubuntu e Windows 10?