Se o tipo de kernel (64/32) não é indicação de qual é a sua distribuição, como eu sei o que estou executando?

1

Se o tipo de kernel (64/32) não é indicação de qual é a sua distribuição, como eu sei o que estou executando? Estou no Ubuntu, e acabei de descobrir, para minha surpresa, que você pode usar um kernel de 64 bits em uma distribuição Linux de 32 bits ... então, como posso saber com certeza que tipo de software estou executando, de 64 bits ou 32 bits?

    
por Victor S 03.07.2013 / 05:03

4 respostas

2

Basta executar isso na linha de comando

getconf LONG_BIT

Ele retornará 32 ou 64

    
por 03.07.2013 / 05:21
1

Com um kernel de 32 bits, você sabe que todos os aplicativos devem ser de 32 bits. Com um kernel de 64 bits, pode haver qualquer combinação de aplicativos e bibliotecas de 32 bits e 64 bits. Você tem que verificar os aplicativos que você gosta para ver o tipo que eles são. Você pode usar o comando file para verificar a densidade de uma biblioteca ou executável.

    
por 03.07.2013 / 06:30
1
cat /proc/version
cat /etc/issue
uname -a

no terminal deve exibir informações úteis para esclarecer o que você está executando em qualquer máquina.

Eu diria que é muito raro você ter um kernel que esteja fora de sincronia com o software da distro como um todo, certamente eu nunca encontrei alguém que o tenha configurado dessa maneira, então geralmente você pode esperar que o x86_64 represente um sistema operacional de 64 bits e um kernel praticamente sempre que você o encontrar.

Já que você está no ubuntu, para qualquer bit de software você pode simplesmente executar:

apt-cache policy <packagename>

e procure os sinais indicadores, por exemplo, meus resultados para o skype:

apt-cache policy skype
skype:
  Installed: 4.2.0.11-0ubuntu0.12.04.1
  Candidate: 4.2.0.11-0ubuntu0.12.04.1
  Version table:
 *** 4.2.0.11-0ubuntu0.12.04.1 0
        500 http://archive.canonical.com/ubuntu/ precise/partner amd64 Packages
        100 /var/lib/dpkg/status
    
por 03.07.2013 / 05:57
1

Se você não consegue lembrar de nenhum dos outros, e eu não posso, então o seguinte 'truque' funciona, basta imprimir o comprimento de um ponteiro em C / C ++:

#include <iostream>
using namespace std;

int main( int argc, char *argv[] ) {
    cout << sizeof( void *) << endl;
    return 0;
}

Isso dará '4' no sistema operacional de 32 bits (ou seja, 4 bytes = 32 bits) e '8' no sistema operacional de 64 bits (isto é, 8 bytes, = 64 bits).

    
por 03.07.2013 / 09:35