GNU/Linux >> Znalost Linux >  >> Linux

Jak určit bitbit hardwaru a OS?

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/amd64 lm 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říklad i[3456]86 jsou 32bitové, zatímco x86_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ěji lsb_release -s vypíše : -samostatný seznam podporovaných funkcí LSB. Každý prvek má tvar module-version-architecture . Například dostupnost knihovny ix86 C je označena core-2.0-ia32 , zatímco core-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*) nebo sizeof(size_t) . Stejné informace můžete získat o něco méně spolehlivým způsobem² spuštěním příkazu getconf 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 .


Linux
  1. Jak se změnilo testování Linuxu a na čem dnes záleží

  2. Jak získat informace o systému a hardwaru v linuxu

  3. Jak zobrazit podrobnosti o systému a hardwaru v Debianu 10

  1. Debian – Jak spouštět 32bitové programy na 64bitovém Debianu/ubuntu?

  2. Jak na to:Replikace a konfigurace DRBD

  3. Jak zjistit, zda je daný Linux 32bitový nebo 64bitový?

  1. Jak přejít na nižší verzi z 64bitové na 32bitovou?

  2. Jak zobrazit podrobnosti o systému a hardwaru v Linux Mint 20

  3. Jak zkompilovat 32bitový binární soubor na 64bitovém linuxovém stroji s gcc/cmake