Como verifico se tenho um SO de 32 ou 64 bits?

489

Eu baixei e instalei o Ubuntu no site oficial. No entanto, não sei se instalei a versão de 32 ou 64 bits.

No Windows 7, eu poderia clicar com o botão direito do mouse em Meu computador e listar qual versão era.

Existe uma maneira fácil de verificar o Ubuntu?

Somente Boliviano Aqui
fonte
Pergunta semelhante: askubuntu.com/questions/189640/…
Wilf
A arquitetura de instalação e a arquitetura do kernel são duas coisas diferentes. Por exemplo, implementei o suporte ao debian multiarch via dpkg --add-architecture amd64e instalei alguns amd64pacotes no meu Ubuntu 16.04 de 32 bits. Agora eu executo a instalação de 32 bits com o kernel de 64 bits sem problemas. Então, enquanto dpkg --print-architectureimprime i386, uname -mimprime x86_64. Consulte wiki.debian.org/Multiarch/HOWTO (é um processo complicado)
kenn

Respostas:

629

Eu sei pelo menos 2 maneiras. Abra um terminal ( Ctrl+ Alt+ T) e digite:

  1. uname -a

    Resultado para o Ubuntu de 32 bits:

    Linux discworld 2.6.38-8-generic # 42-Ubuntu SMP seg Abr 11 03:31:50 UTC 2011 i686 i686 i386 GNU / Linux

    enquanto o Ubuntu de 64 bits mostrará:

    Linux discworld 2.6.38-8-generic # 42 Ubuntu SMP Mon 11 de abril 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux

    Versão mais curta:

    $ uname -i
    x86_64
    

    ou

  2. file /sbin/init

    Resultado para o Ubuntu de 32 bits:

    / sbin / init: objeto compartilhado ELF de 32 bits LSB, Intel 80386 , versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.15, despojado

    enquanto que para a versão de 64 bits seria semelhante a:

    / sbin / init: objeto compartilhado ELF de 64 bits LSB, x86-64 , versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.15, despojado

    O mesmo para sistemas que usam systemd (16.04):

    file /lib/systemd/systemd

    Resultado para 64 bits:

    / lib / systemd / systemd: objeto compartilhado ELF de 64 bits LSB, x86-64 , versão 1 (SYSV), vinculado dinamicamente, intérprete /lib64/ld-linux-x86-64.so.2, para GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, despojado
Rinzwind
fonte
11
O método 2, que consiste em "cheirar" o conteúdo (binário) de um executável amplamente disponível, é bastante indireto e estranho. Embora funcione para a maioria das configurações, a mera presença de um executável de 64 bits não deve ser uma maneira confiável de detectar a arquitetura do SO em execução . Especialmente quando você considera multiarch, ia32_libse, especialmente em seu initexemplo,upstart
MestreLion 25/03
8
Você provavelmente está certo, mas Método 1 me mostrou uma i686nenhum dos 32 ou 64 de saída foi exibida para mim
Aleks
6
@aleks que é de 32 bits (ver o texto realçado: `i686 i686 i386` na resposta)
Rinzwind
é de 32 bits, usei o segundo método, mas o primeiro não me mostrou nada parecido com i386:), mas sua resposta ajudou. thanks a lot
Aleks
1
# file /sbin/init- /sbin/init: symbolic link to upstart'` - # file /sbin/upstart-/sbin/upstart: ELF 64-bit LSB shared object, x86-64...
Nakilon
142

Ubuntu 12.04+ com Unity

  • Pressione Command (mac) ou a tecla Window.
  • Digite Detailse selecione o ícone "Detalhes"
  • Leia o campo "Tipo de SO"
  • O SO de 64 bits exibirá "64 bits"

insira a descrição da imagem aqui

Alternativa para obter a tela acima:

  • clique em Menu do sistema (engrenagem no canto superior direito)
  • clique em "Sobre este computador"

Eu sei que as respostas do terminal são boas, mas acho que essa é a resposta da GUI. :)

Ubuntu 11.04 com Unity

  • Pressione Command (mac) ou a tecla Window.
  • Digite System infoe selecione o ícone Informações do sistema
  • Leia o campo "Tipo de SO"
  • O SO de 64 bits exibirá "64 bits"
Frank Henard
fonte
14
+1: A maneira da GUI é preferida aos comandos do terminal para um usuário que está acostumado ao Windows e solicita especificamente uma maneira fácil .
MestreLion 25/03
1
Além disso, outra maneira (GUI) de chegar à mesma tela:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion
Definitivamente, com uma maneira mais fácil em mente: por favor, qualquer um que execute o Ubuntus mais antigo, forneça seu equivalente na GUI! Especialmente para Lucid Lynx (como o LTS é suportado até 2015 e, portanto, poderia muito bem estar sendo executado em laptops mão-me-down das pessoas.)
JP
1
@JP: Para Ubuntus mais antigos, como o Lucid Lynx, a maneira mais fácil de conhecer a interface gráfica do usuário é o System Monitor do Gnome . Sua Systemguia mostra a arquitetura.
MestreLion
1
A janela da GUI é adorável, mas imagine se você por um minuto estiver executando a edição do servidor sem a GUI instalada?
Chris
79

Uma maneira muito fácil e curta é:

Abra o terminal, escreva o seguinte e pressione Enter.

getconf LONG_BIT

O número resultante (no meu caso 64) é a resposta.

terminal - getconf LONG_BIT

Cristiana Nicolae
fonte
7
No meu sistema de 32 bits, isso também fornece a resposta correta. De todo o comando listado em várias respostas, o resultado deste é o mais direto.
Stephen Ostermiller
Exceto: $ getconf LONGBIT getconf: variável não reconhecida `LONGBIT '
Auspex
1
Você está perdendo o sublinhado @Auspex LONG_BIT
Michael
@ Michael Droga, então eu estava. Não sei como consegui isso e, depois de atualizar essas duas máquinas para 64 bits no mês passado, é praticamente discutível agora ;-) Obrigado, de qualquer forma!
Auspex
58

Referência: Como sei se estou executando o Linux de 32 ou 64 bits?

Use o comando:

uname -m

Você normalmente receberá:

i686

para 32 bits (ou possivelmente i586 ou i386) e:

x86_64

para 64 bits.

Hemant Metalia
fonte
É difícil acreditar que o / etc / release não pareça mencioná-lo.
Rogerdpack #
uname -mpidá todas as coisas mencionadas uname -a, embora eles geralmente são tudo a mesma coisa ...
Wilf
27

Abra o terminal e tente o archcomando. Se sua saída for x86_64, será de 64 bits. Se diz i686, i386, etc., então é de 32 bits.

No entanto, a melhor maneira de determinar a arquitetura é executar o archcomando e pesquisar no Google a saída.

aneeshep
fonte
11
arché exatamente o mesmo que uname -m(mesmo indicado na página de manual). ;-)
htorque
No meu computador (Ubuntu 9.04), o comando arch parece não existir. Então, eu diria que uname -m é mais confiável.
Jonathan Sternberg
@ JonathanSternberg: foi adicionado alguns meses depois, desenvolvido pelos mesmos autores unamee incluído no mesmo coreutilspacote. Portanto, a partir do Ubuntu 10.04, ambos os comandos estão disponíveis.
MestreLion 25/03
21

dpkg --print-architecture O comando exibirá se você instalou um sistema operacional Ubuntu de 32 ou 64 bits.

Em sistemas de 64 bits

$ dpkg --print-architecture
amd64          

Em sistemas de 32 bits

$ dpkg --print-architecture
i386

`

Avinash Raj
fonte
6
Até agora, o único método para detectar corretamente um sistema operacional de 32 bits executando um kernel de 64 bits.
Dan Garthwaite
8

Verificador de arquitetura

insira a descrição da imagem aqui

Link para Download

  1. Baixe
  2. Extraia-o.
  3. Marque o arquivo Architecture Checker.sh Executable e execute-o.

O script é basicamente este:

#!/bin/bash
ARCH=$(uname -m)
if [ "$ARCH" = "i686" ]; then
 zenity --info --title="Architecture Checker" --text="Your Architecture is 32-Bit"
fi
if [ "$ARCH" = "x86_64" ]; then
 zenity --info --title="Architecture Checker" --text="Your Architecture is 64-Bit"
fi

Isso precisará estar em um arquivo de texto executável e zenityprecisará ser instalado.

Lincity
fonte
8
Honestamente precisa baixar e extrair esse arquivo de 8 linhas? Basta colocá-lo em um bloco de código aqui.
kiri
e quando a saída de uname -mnão é i686... bom uso de zenity, poderia usar notify-sendembora.
Wilf
5

Vá para as Configurações do sistema e, na seção Sistema , clique em Detalhes . Você obterá todos os detalhes, incluindo o sistema operacional, o processador e o fato de o sistema estar executando uma versão de 64 ou 32 bits.

user265559
fonte
Isso parece maravilhoso. Mas não sei como "Ir para as configurações do sistema". (BTW) Estou usando 12.4 MATE.
Papou
3

Abra o Ubuntu Software Center e procure lib32. Se houver algum resultado, você estará em uma instalação de 64 bits (os resultados são bibliotecas de compatibilidade para executar aplicativos de 32 bits em uma instalação de 64 bits).

Não é exatamente uma resposta melhor, mas pelo menos não requer um terminal ... ;-)

Editar

Eu encontrei um ainda mais fácil: abra a Ajuda -> Sobre o Mozilla Firefox e você verá aqui ... ;-)

Na parte inferior, ele exibe a "sequência do agente do usuário", por exemplo, no meu sistema de 64 bits:

Mozilla/5.0 (X11; U; Linux x86_64; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12

ou no meu sistema de 32 bits:

Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12

x86_64é de 64 bits, i686é de 32 bits

(Mas ainda não é a resposta que deveria estar lá;))

JanC
fonte
2
GUI pura, claro, mas bastante frágil ... pacotes cujos nomes ( ou descrições ) contêm lib32certamente não são uma maneira confiável de detectar a arquitetura.
MestreLion 25/03
2

O botão liga / desliga (canto superior direito, extrema direita) possui a opção "Sobre este computador". :)

Pimenta
fonte
2
não em 12.04 LTS
törzsmókus 19/08/2013
1

Tanto quanto me lembro, é possível instalar o kernel x86_64 em um sistema de 32 bits. Como alguns escreveram aqui, você deve procurar quais bibliotecas você possui / quais pacotes você instalou no seu sistema. Portanto, a maneira mais segura de ver é verificar se você possui /lib64e se é um link simbólico para /lib.

Outra maneira possível é verificar em quais pacotes você baixou /var/cache/apt/archive. Se eles contêm _amd64.deb, é um sistema de 64 bits, ou seja, se você instalou pacotes e não limpou o cache.

Tudo isso pode ser feito no Konqueror / Dolphin apenas apontando e clicando ou:

ls -la / |grep lib
Osis
fonte
1

Você deve ter em mente que pode ter uma CPU de 64 bits enquanto instala um kernel de 32 bits. Ou seja, se sua CPU é 64, isso não significa que seu sistema operacional é 64, depende do que você instalou.

man uname

   -m, --machine
          print the machine hardware name

   -p, --processor
          print the processor type or "unknown"

   -i, --hardware-platform
          print the hardware platform or "unknown"

portanto, para obter o uso da plataforma de hardware uname -mou / uname -pou uname -iobter o tipo de kernel, é melhor getconf LONG_BITcomandar.

Marque esta pergunta SO

Maythux
fonte
Não é realmente relevante para a pergunta: ele tem uma CPU de 64 bits e quer saber qual sistema operacional foi instalado.
Auspex
0

Dê uma olhada nas suas fontes de software no Synaptic ou no Software Center. Se você não excluiu sua fonte original, por exemplo, cdrom, (?) Indicará a arquitetura. É uma GUI, mas não diz '32 bits' nem '64 bits'.

ultrapassar
fonte
-1

Não tenho certeza do que você chama de SO de 32 bits.

Para ser específico, minha distribuição do kernel e da área de trabalho é um Debian / Sid de 64 bits, mas eu costumo usar schrootpara rodar um deboostrapDebian de 32 bits dentro de um chrootambiente de edição (para fins de teste).

Você acha que meu ambiente de 32 bits deve ser chamado de 32 bits (acredito que sim) ou 64 bits (afinal, ele roda dentro de um kernel de 64 bits). Nesse ambiente, uname -mdiz i686e todas as bibliotecas, executáveis ​​e processos são de 32 bits.

Para fins práticos, uname -mdeve ser suficiente. O filecomando pode dizer se um executável ELF é de 32 bits ou de 64 bits.

Veja o syscall de personalidade específica do Linux (2) (e também o uname (2) ).

E as informações de hardware sobre o seu processador são visíveis com, por exemplo

 cat /proc/cpuinfo

sua saída é a mesma no meu sistema de 64 bits da área de trabalho e no meu ambiente schroot de 32 bits.

Basile Starynkevitch
fonte
4
-1: você adicionou um monte de confusões desnecessárias, sem acrescentar qualquer nova informação útil. Por que dizer que "você não tem certeza do que chama um sistema operacional de 32 bits"? Essa é uma pergunta bastante direta, uma que você conhece . Seu chrootexemplo é inútil: é semelhante a uma máquina virtual; portanto, é claro que uname -mserá exibido i686se você a inicializar com um sistema operacional de 32 bits. Mas o "host" ainda tem 64 bits e uname -mo dirá se você executá-lo fora do ambiente chroot
MestreLion 25/03/13
2
Além disso, /proc/cpuinfoé enganoso: mostra os recursos da CPU , e não a arquitetura do sistema operacional instalado (e em execução). Praticamente todas as CPUs de desktop vendidas nos últimos 5 anos são de 64 bits, mas isso não tem absolutamente nada a ver com a questão. E, é claro, ele relata o mesmo nos dois cenários, já que o hardware da CPU é o mesmo e é capaz de executar sistemas operacionais de 32 e 64 bits.
MestreLion 25/03
@MestreLion, o que o Basile está tentando dizer é que, em alguns casos, por exemplo, ao usar LXC ou chroot, você pode executar um sistema puramente de 32 bits com um kernel de 64 bits. Nesses casos uname, você informará a arquitetura do kernel, 64 bits, enquanto outros métodos informarão a arquitetura da terra do usuário, 32 bits, e não está claro qual dos dois é "a" arquitetura.
Joni
@Joni: Ok, eu entendo. Mas esse é um cenário extremamente crítico, e certamente não é o caso do OP.
MestreLion 10/10
Provavelmente não é o caso do OP, eu só queria esclarecer o ponto que o Basile estava tentando fazer (além disso, parece que minha edição anterior para corrigir a resposta foi rejeitada? Nesse ambiente uname -m, a arquitetura do kernel será x86_64, não i686. )
Joni