Meu sistema é de 64 bits?

2
uname -m

Me dá

x86_64

,mas

getconf LONG_BIT

32

Então, meu sistema é de 64 ou 32 bits? (é o Gentoo e eu não tenho acesso root)

Marqin
fonte
11
O que um fileon which getconfte dá? A que /usr/libexec/conf/defaultlink está?
21712 David Schwartz
O que você instalou?
Ramhound

Respostas:

1

Sua CPU é de 64 bits. Seu kernel é de 64 bits. Outra coisa é de 32 bits, mas é difícil dizer o que. Talvez o getconfque vem primeiro no seu caminho seja de 32 bits. Procure /usr/libexec/getconfpor pistas.

Atualização : parece que você tem um espaço de usuário principalmente de 32 bits. Talvez alguém tenha instalado um sistema operacional de 64 bits para obter suporte para mais de 4 GB de memória física. Talvez você tenha alguns executáveis ​​de 64 bits. Mas agora é óbvio que você tem um ambiente misto.

David Schwartz
fonte
Eu não tenho / usr / libexec / :(
Marqin
OK. Gostaria de saber como sua plataforma decide qual configuração segmentar então.
David Schwartz
de / usr / lib? Não estou usando BSD ...
Marqin
Uso do Fedora / Redhat /usr/libexec. Eu acho que o Gentoo usa /etc/make.conf.
21712 David Schwartz
1

Tente archse ele imprime x86_64, você tem 64 bits. Você recebe 32 por LONG_BIT porque alguns aplicativos usados ​​são de 32 bits; no seu caso, um gcc é compilado como 32 bits.

Portanto, seu Arch é realmente de 64 bits e você pode executar aplicativos de 64 bits, mas você instalou um gcc de 32 bits.

Pierre Geier
fonte
Arch me dá "x86_64". Como verificar se meu gcc é de 32 bits? Eu descobri apenas que meu PHP é de 32 bits.
Marqin
file $(which gcc)execute isso em um terminal. Se ele imprimir algo parecido com isto: /usr/bin/gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, strippedvocê tem um gcc de 64 bits. Caso contrário, provavelmente é de 32 bits, veja o que está escrito por trás do ELF.
Pierre Geier
"/ usr / bin / gcc: executável LSB de ELF de 32 bits, Intel 80386" Então, de 32 bits.
Marqin 13/04
Lá você conseguiu. Algo na sua gentoobox está realmente configurado incorretamente. E muitos aplicativos são usados ​​apenas gccpara compilar, mesmo que você tenha o x86_86-pc-linux-gnu-gcc. Algumas informações sobre o seu sistema Gentoo seriam úteis. Você está executando um kernel de 64 bits, mas instalou aplicativos de 32 bits. Então, alguém mudou o CHOST ou seu kernel não foi construído no sistema com o atual gcc de 32 bits instalado. Ou foi instalado lá, mas compilado de forma cruzada. @DavidSchwartz Sim, mas é realmente incomum com o Gentoo.
Pierre Geier
O kernel de 64 bits e o espaço do usuário de 32 bits não são necessariamente uma configuração incorreta.
21712 David Schwartz
0

Não me lembro se você precisa de acesso root para poder ler o make.conf no Gentoo, mas tente

grep CHOST /etc/make.conf

Se você pegar

CHOST="x86_64-pc-linux-gnu"

Em seguida, seu sistema está configurado para compilar e instalar pacotes de 64 bits. Caso contrário, se você receber

CHOST="i686-pc-linux-gnu"

Em seguida, seu sistema está configurado para 32 bits.

Se você não conseguir, poderá precisar de privilégios de root. Dado o seu unamepensamento, eu esperaria que seu sistema fosse de 64 bits.

Mokubai
fonte
Eu tenho CHOST = "i686-pc-linux-gnu" então por que arch, uname -me uname -r mostram que é de 64 bits?
Marqin 13/04
11
Ok, então você tem uma CPU de 64 bits, kernel de 64 bits e ambiente de desenvolvimento de 32 bits e plataforma de destino. É possível que alguém tenha instalado um kernel de 64 bits em um espaço de usuário de 32 bits, talvez para obter suporte para mais de 4 GB de memória física. Talvez para permitir que executáveis ​​de 64 bits funcionem.
David Schwartz
@ Marqin Eu suspeito fortemente que David esteja lá, seu sistema está configurado para 32 bits, mas alguém instalou um kernel de 64 bits. Presumivelmente, para que toda a memória esteja disponível para o sistema operacional, mas também garanta que não haja problemas de compatibilidade de 64 bits (que são bastante raros de qualquer maneira).
Mokubai