„uname -m” to polecenie, którego szukasz. Możesz uruchomić zarówno 32-bitowy, jak i 64-bitowy na współczesnych procesorach Intel i AMD, więc „uname -p” ci nie pomoże (dodatkowo w większości nie działa obecnie, to tutaj core2 myśli odpowiedź na „uname -p” jest nieznany").
Szukanie istnienia / usr / lib64 (jak zasugerowano) też ci nie pomoże, ponieważ niektóre pakiety związane ze sprzętem i systemem zainstalują biblioteki 32-bitowe i 64-bitowe, aby być bezpiecznym. W moim systemie (debian) pakiet fakeroot właśnie to robi.
Jeśli chodzi o wyjście „uname -m”, jeśli jest to i386 lub i686, to jest 32-bitowe, jeśli jest to x86_64 (lub alfa, ia64 lub inna architektura 64-bitowa, której nigdy nie widziałem :) to 64-bitowe.
(na marginesie, mój 64-bitowy serwer FreeBSD zwraca „amd64”, co może być nieco dziwne jak na quadcore firmy Intel, ale całkowicie zrozumiałe, jeśli znasz historię architektury 64-bitowej x86)
czy to powie ci architekturę instalacji lub rzeczywistą architekturę procesora. Na przykład, jeśli zainstalowałeś 32-bitowy system operacyjny na 64-bitowym procesorze, czy to zwróci i686 lub x86_64?
monkut,
15
uname -a i poszukaj x86_64. Jeśli chcesz wiedzieć, czy Twój procesor obsługuje 64 bity, cat / proc / cpuinfo i poszukaj lm w obrębie flag.
Po prostu mylę rzeczy, możesz uruchomić 64-bitowe jądro z 32-bitowym obszarem użytkownika, co właśnie robię. W takim przypadku uname -mzwraca, x86_64ale nie mam zainstalowanych bibliotek 64-bitowych, więc większość programów 64-bitowych nie będzie działać.
Więc po sprawdzeniu uname, trzeba szukać /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.soi /lib/ld-linux.so.2, /lib/libc-2.7.soaby zobaczyć, czy 64bit i 32bit biblioteki są dostępne. Aby się upewnić, uruchom te pliki i sprawdź, czy działają poprawnie.
Inną przydatną informacją jest wyjście, lsb_release -aktóre jest cross-distro i informuje, jakie moduły LSB specyficzne dla architektury są dostępne.
uname -m da ci tylko działającą architekturę / arch jądra. NIE powie ci, czy korzystasz z 32-bitowej dystrybucji GNU / Linux na procesorze obsługującym 64 bity.
Aby poznać swoje możliwości procesora:
cat /proc/cpuinfo
Flaga „LM” powinna być obecna w systemach 64-bitowych, ponieważ reprezentuje „LONG MODE” (rozszerzenia 64-bitowe, AMD64 AMD lub EM64T Intela).
Odpowiedzi:
„uname -m” to polecenie, którego szukasz. Możesz uruchomić zarówno 32-bitowy, jak i 64-bitowy na współczesnych procesorach Intel i AMD, więc „uname -p” ci nie pomoże (dodatkowo w większości nie działa obecnie, to tutaj core2 myśli odpowiedź na „uname -p” jest nieznany").
Szukanie istnienia / usr / lib64 (jak zasugerowano) też ci nie pomoże, ponieważ niektóre pakiety związane ze sprzętem i systemem zainstalują biblioteki 32-bitowe i 64-bitowe, aby być bezpiecznym. W moim systemie (debian) pakiet fakeroot właśnie to robi.
Jeśli chodzi o wyjście „uname -m”, jeśli jest to i386 lub i686, to jest 32-bitowe, jeśli jest to x86_64 (lub alfa, ia64 lub inna architektura 64-bitowa, której nigdy nie widziałem :) to 64-bitowe.
(na marginesie, mój 64-bitowy serwer FreeBSD zwraca „amd64”, co może być nieco dziwne jak na quadcore firmy Intel, ale całkowicie zrozumiałe, jeśli znasz historię architektury 64-bitowej x86)
źródło
uname -a i poszukaj x86_64. Jeśli chcesz wiedzieć, czy Twój procesor obsługuje 64 bity, cat / proc / cpuinfo i poszukaj lm w obrębie flag.
źródło
dla RedHat / CentOS:
32-bitowy
64-bitowy
źródło
Po prostu mylę rzeczy, możesz uruchomić 64-bitowe jądro z 32-bitowym obszarem użytkownika, co właśnie robię. W takim przypadku
uname -m
zwraca,x86_64
ale nie mam zainstalowanych bibliotek 64-bitowych, więc większość programów 64-bitowych nie będzie działać.Więc po sprawdzeniu uname, trzeba szukać
/lib64/ld-linux-x86-64.so.2
,/lib64/libc-2.7.so
i/lib/ld-linux.so.2
,/lib/libc-2.7.so
aby zobaczyć, czy 64bit i 32bit biblioteki są dostępne. Aby się upewnić, uruchom te pliki i sprawdź, czy działają poprawnie.Inną przydatną informacją jest wyjście,
lsb_release -a
które jest cross-distro i informuje, jakie moduły LSB specyficzne dla architektury są dostępne.źródło
lsb_release -a
nie generuje architektury przestrzeni użytkownika$> getconf LONG_BIT
Odpowiedź: 32 lub 64.źródło
Innym sposobem na to jest zapytanie perla, który kompilator powiedział, że rozmiar długiej liczby całkowitej jest następujący:
vs.
Lub, jeśli masz zainstalowany gcc, to samo w C:
vs.
:-)
źródło
Jako duplikat:
Linux + jak sprawdzić wersję 32-bitową lub 64-bitową systemu Linux
uname -m da ci tylko działającą architekturę / arch jądra. NIE powie ci, czy korzystasz z 32-bitowej dystrybucji GNU / Linux na procesorze obsługującym 64 bity.
Aby poznać swoje możliwości procesora:
Flaga „LM” powinna być obecna w systemach 64-bitowych, ponieważ reprezentuje „LONG MODE” (rozszerzenia 64-bitowe, AMD64 AMD lub EM64T Intela).
źródło
źródło
Jeśli masz / usr / lib64, używasz x86_64 ..
źródło
Komenda Brada Gilberta miała błąd perla. Naprawiłem to i działa poniższe polecenie: cat / proc / cpuinfo | grep ^ flags | perl -e '$ = <>; print ($ ? "x86_64 \ n": "nie x86_64 \ n")'
źródło