Jak sprawdzić, czy mam 32-bitowy czy 64-bitowy system operacyjny?


489

Pobrałem i zainstalowałem Ubuntu z oficjalnej strony. Nie wiem jednak, czy zainstalowałem wersję 32-bitową czy 64-bitową.

W systemie Windows 7 mogłem kliknąć Mój komputer prawym przyciskiem myszy i podałem, która to wersja.

Czy istnieje łatwy sposób sprawdzenia w Ubuntu?






Architektura instalacji i architektura jądra to dwie różne rzeczy. Na przykład zaimplementowałem obsługę debian multiarch poprzez dpkg --add-architecture amd64i zainstalowałem niektóre amd64pakiety w moim 32-bitowym Ubuntu 16.04. Teraz bez problemu uruchamiam instalację 32-bitową z 64-bitowym jądrem. Więc podczas dpkg --print-architectureodbitek i386, uname -modbitek x86_64. Zobacz wiki.debian.org/Multiarch/HOWTO (to trudny proces)
Ken

Odpowiedzi:


629

Znam co najmniej 2 sposoby. Otwórz terminal ( Ctrl+ Alt+ T) i wpisz:

  1. uname -a

    Wynik dla 32-bitowego systemu Ubuntu:

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

    podczas gdy 64-bitowe Ubuntu pokaże:

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

    Krótsza wersja:

    $ uname -i
    x86_64
    

    lub

  2. file /sbin/init

    Wynik dla 32-bitowego systemu Ubuntu:

    / sbin / init: 32-bitowy współdzielony obiekt ELF 32B bit , Intel 80386 , wersja 1 (SYSV), dynamicznie połączony (używa współdzielonych bibliotek), dla GNU / Linux 2.6.15, pozbawiony

    podczas gdy dla wersji 64-bitowej wyglądałoby to tak:

    / sbin / init: 64-bitowy współdzielony obiekt ELF 64-bit LSB, x86-64 , wersja 1 (SYSV), dynamicznie połączony (wykorzystuje współdzielone biblioteki lib), dla GNU / Linux 2.6.15, pozbawiony

    To samo dotyczy systemów korzystających z systemd (16.04):

    file /lib/systemd/systemd

    Wynik dla wersji 64-bitowej:

    / lib / systemd / systemd: ELF 64-bitowy obiekt współdzielony LSB, x86-64 , wersja 1 (SYSV), dynamicznie połączony, interpreter /lib64/ld-linux-x86-64.so.2, dla GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, pozbawiony

11
Metoda 2, która polega na „wąchaniu” (binarnej) zawartości powszechnie dostępnego pliku wykonywalnego, jest dość pośrednia i niewygodna. Chociaż działa w przypadku większości konfiguracji, sama obecność 64-bitowego pliku wykonywalnego nie powinna być niezawodnym sposobem wykrywania działającej architektury systemu operacyjnego. Zwłaszcza gdy weźmiesz pod uwagę multiarch, ia32_libsa zwłaszcza w twoim initprzykładzieupstart
MestreLion

8
Prawdopodobnie masz rację, ale metoda 1 nie pokazała mi i686żadnego z 32 lub 64 danych wyjściowych
Aleks

6
@aleks, który jest 32-bitowy (patrz podświetlony tekst: „i686 i686 i386” w odpowiedzi)
Rinzwind

jest 32-bitowy, użyłem drugiej metody, ale pierwsza nie pokazała mi niczego, co wyglądałoby i386:), ale twoja odpowiedź pomogła. wielkie dzięki
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+ z Unity

  • Naciśnij klawisz Command (mac) lub klawisz Window.
  • Wpisz Detailsi wybierz ikonę „Szczegóły”
  • Przeczytaj pole „Typ systemu operacyjnego”
  • 64-bitowy system operacyjny wyświetli „64-bit”

wprowadź opis zdjęcia tutaj

Alternatywą dla uzyskania powyższego ekranu:

  • kliknij menu systemowe (koło zębate w prawym górnym rogu)
  • kliknij „Informacje o tym komputerze”

Wiem, że końcowe odpowiedzi są dobre, ale myślę, że to odpowiedź GUI. :)

Ubuntu 11.04 z Unity

  • Naciśnij klawisz Command (mac) lub klawisz Window.
  • Wpisz System infoi wybierz ikonę Informacje o systemie
  • Przeczytaj pole „Typ systemu operacyjnego”
  • 64-bitowy system operacyjny wyświetli „64-bit”

14
+1: Preferowany jest interfejs GUI zamiast poleceń terminalowych dla użytkownika, który jest przyzwyczajony do systemu Windows i poprosił o łatwy sposób.
MestreLion

1
Również inny sposób (GUI), aby dostać się do tego samego ekranu:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion

Z całą pewnością w prosty sposób: proszę, każdy, kto korzysta ze starszego systemu Ubuntus, podaj swój GUI! Zwłaszcza dla Lucid Lynx (ponieważ LTS jest obsługiwany do 2015 r., A więc może być uruchomiony na komputerach przenośnych).
JP

1
@JP: W przypadku starszych Ubuntus, takich jak Lucid Lynx, najłatwiejszym sposobem GUI, jaki znam, jest Monitor systemu Gnome . Jego Systemzakładka pokazuje architekturę.
MestreLion

1
Okno GUI jest piękne, ale wyobraź sobie, że będziesz przez chwilę, jeśli uruchomisz edycję serwerową bez zainstalowanego GUI?
Chris

79

Bardzo łatwą i krótką drogą jest:

Otwórz terminal, napisz poniższe i naciśnij Enter.

getconf LONG_BIT

Wynikowa liczba (w moim przypadku 64) jest odpowiedzią.

terminal - getconf LONG_BIT


7
W moim 32-bitowym systemie daje to również prawidłową odpowiedź. Ze wszystkich poleceń wymienionych w różnych odpowiedziach, wyjście tego jest najprostsze.
Stephen Ostermiller

Z wyjątkiem: $ getconf LONGBIT getconf: Nierozpoznana zmienna `LONGBIT '
Auspex

1
Brakuje podkreślenia @Auspex LONG_BIT
Michael

@Michael Damn, więc byłem. Nie wiem, jak mi się to udało, a po uaktualnieniu tych dwóch maszyn do wersji 64-bitowej w ciągu ostatniego miesiąca, teraz jest już całkiem sporo ;-) W każdym razie dzięki!
Auspex


27

Otwórz terminal i spróbuj wykonać archpolecenie. Jeśli jego wyjście to x86_64, to jest to 64-bit. Jeśli mówi i686, i386 itp., To jest to wersja 32-bitowa.

Jednak najlepszym sposobem na określenie architektury jest uruchomienie archpolecenia i wyszukanie wyniku w Google.


11
archjest taki sam jak uname -m(nawet podano na stronie podręcznika). ;-)
htorque

Na moim komputerze (Ubuntu 9.04) wydaje się, że polecenie arch nie istnieje. Powiedziałbym więc, że uname -m jest bardziej niezawodny.
Jonathan Sternberg,

@JonathanSternberg: zostało dodane kilka miesięcy później, opracowane przez tych samych autorów unamei zawarte w tym samym coreutilspakiecie. Tak więc od wersji Ubuntu 10.04 dostępne są oba polecenia.
MestreLion,

21

dpkg --print-architecture polecenie wyświetli, czy zainstalowałeś 32-bitowy czy 64-bitowy system Ubuntu.

W systemach 64-bitowych

$ dpkg --print-architecture
amd64          

W systemach 32-bitowych

$ dpkg --print-architecture
i386

`


6
Jedyna jak dotąd metoda prawidłowego wykrywania 32-bitowego systemu operacyjnego z 64-bitowym jądrem.
Dan Garthwaite

8

Kontroler architektury

wprowadź opis zdjęcia tutaj

Link do pobrania

  1. Pobierz to
  2. Wyodrębnij to.
  3. Zaznacz plik Architecture Checker.sh Plik wykonywalny i uruchom go.

Skrypt jest w zasadzie taki:

#!/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

Będzie to musiało znajdować się w wykonywalnym pliku tekstowym i zenitymusi zostać zainstalowane.


8
Naprawdę chcesz pobrać i wyodrębnić ten plik z 8 liniami? Po prostu umieść go tutaj w bloku kodu.
kiri

a kiedy wyjście uname -mnie jest i686... miłym zastosowaniem zenity, może notify-sendjednak skorzystać .
Wilf

5

Przejdź do Ustawień systemu i w sekcji System kliknij Szczegóły . Otrzymasz każdy szczegół, w tym system operacyjny, procesor, a także fakt, czy system działa w wersji 64-bitowej, czy 32-bitowej.


To wydaje się cudowne. Ale nie wiem, jak „przejść do ustawień systemu”. (BTW) Używam 12.4 MATE.
Papou,

3

Otwórz Centrum oprogramowania Ubuntu i wyszukaj lib32. Jeśli pojawi się jakikolwiek wynik, oznacza to, że jesteś w instalacji 64-bitowej (wyniki to biblioteki zgodności do uruchamiania aplikacji 32-bitowych w instalacji 64-bitowej).

Nie do końca lepsza odpowiedź, ale przynajmniej nie wymaga terminala ... ;-)

Edytować

Znalazłem jeszcze łatwiejszy: otwórz Pomoc -> O Mozilla Firefox, a zobaczysz to tutaj ... ;-)

Na dole wyświetla się „ciąg agenta użytkownika”, np. W moim 64-bitowym systemie:

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

lub w moim 32-bitowym systemie:

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

x86_64jest 64-bitowy, i686jest 32-bitowy

(Ale to wciąż nie jest odpowiedź, która powinna tam być;))


2
Oczywiście czysty GUI, ale dość delikatny ... pakiety, których nazwy ( lub opisy ) zawierają, z lib32pewnością nie są niezawodnym sposobem wykrywania architektury.
MestreLion


1

O ile pamiętam, możliwe jest zainstalowanie jądra x86_64 w systemie 32-bitowym. Jak napisano tutaj kilka osób, powinieneś sprawdzić, jakie biblioteki masz / jakie pakiety zainstalowałeś w swoim systemie. Najbezpieczniejszym sposobem na sprawdzenie jest sprawdzenie, czy masz /lib64i czy jest to dowiązanie symboliczne /lib.

Innym możliwym sposobem jest sprawdzenie, które pakiety zostały pobrane /var/cache/apt/archive. Jeśli zawierają _amd64.deb, jest to system 64-bitowy, to znaczy, jeśli masz zainstalowane pakiety i nie wyczyściłeś pamięci podręcznej.

Wszystko to można zrobić w Konqueror / Dolphin, po prostu wskazując i klikając lub:

ls -la / |grep lib

1

Należy wziąć pod uwagę, że podczas instalacji 32-bitowego jądra możesz mieć 64-bitowy procesor. Tj. Jeśli twój procesor ma 64 procesory, nie oznacza to, że twój system operacyjny ma 64, zależy to od tego, co zainstalowałeś.

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"

tak aby uzyskać wykorzystanie platformy sprzętowej uname -mlub uname -pczy uname -ipodczas dostać typ jądra lepiej getconf LONG_BITpolecenia.

Sprawdź to SO pytanie


W rzeczywistości nie dotyczy pytania: ma 64-bitowy procesor i chce wiedzieć, który system operacyjny został zainstalowany.
Auspex

0

Sprawdź źródła oprogramowania w Synaptic lub Software Center. Jeśli nie usunąłeś oryginalnego źródła, np. Cdrom, to (?) Wskaże architekturę. To GUI, ale nie mówi „32bit” ani „64bit”.


-1

Nie jestem pewien, jak nazywasz system operacyjny 32 bitami.

Mówiąc ściślej, moja dystrybucja jądra i pulpitu to 64-bitowy Debian / Sid, ale rutynowo używam schrootdo uruchamiania deboostrap32-bitowego Debiana w chrootśrodowisku -ed (do celów testowych).

Czy uważasz, że moje środowisko 32-bitowe powinno być nazywane 32-bitowym (tak mi się wydaje) lub 64-bitowym (w końcu działa w jądrze 64-bitowym). W tym środowisku uname -mmówi, i686a wszystkie biblioteki, pliki wykonywalne i procesy mają 32 bity.

Ze względów praktycznych uname -mpowinno wystarczyć. filePolecenia można powiedzieć, jeśli plik wykonywalny ELF jest 32 bity lub 64 bity jeden.

Zobacz syscall specyficznej dla Linuksa (2) (a także uname (2) ).

A informacje o sprzęcie o twoim procesorze są widoczne np

 cat /proc/cpuinfo

jego wynik jest taki sam w moim 64-bitowym systemie stacjonarnym i w moim 32-bitowym środowisku schroot-ed.


4
-1: Pan dodał wiele niepotrzebnego zamieszania, nie dodając żadnych nowych użytecznych informacji. Dlaczego mówienie, że „nie jesteś pewien, jak nazywasz system operacyjny składający się z 32 bitów”? To dość proste pytanie, o którym wiesz . Twój chrootprzykład jest bezcelowy: jest podobny do Maszyny Wirtualnej, więc oczywiście uname -mwyświetli się, i686jeśli załadujesz ją z 32-bitowym systemem operacyjnym. Ale „host” ma nadal 64 bity i uname -mpowie tak, jeśli uruchomisz go poza środowiskiem chroot
MestreLion

2
Ponadto /proc/cpuinfowprowadza w błąd: pokazuje możliwości procesora , a nie faktyczną zainstalowaną (i działającą) architekturę systemu operacyjnego. Praktycznie wszystkie procesory do komputerów stacjonarnych sprzedawane w ciągu ostatnich 5 lat są 64-bitowe, ale nie ma to absolutnie nic wspólnego z tym pytaniem. I oczywiście zgłasza to samo w obu scenariuszach, ponieważ sprzęt procesora jest taki sam i jest w stanie obsługiwać zarówno 32-, jak i 64-bitowe systemy operacyjne.
MestreLion

@MestreLion, Basile próbuje powiedzieć, że w niektórych przypadkach, na przykład podczas korzystania z LXC lub chroot, możesz uruchomić czysto 32-bitowy system z 64-bitowym jądrem. W takich przypadkach unamepoinformujemy Cię o architekturze jądra, 64-bitowej, podczas gdy inne metody poinformują o architekturze użytkownika, 32-bitowej, i nie jest jasne, która z nich jest „architekturą”.
Joni

@Joni: Ok, rozumiem. Ale to scenariusz skrajnie prosty, a na pewno nie przypadek PO.
MestreLion,

Prawdopodobnie nie jest to przypadek OP, chciałem tylko wyjaśnić punkt, który próbował zrobić Basile (wygląda na to, że moja wcześniejsza edycja w celu poprawienia odpowiedzi została odrzucona? W tym środowisku uname -mwyświetli się architektura jądra, która jest x86_64, a nie i686. )
Joni,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.