Kiedy robię kota w katalogu / proc / cpuinfo, pokazuje on linię z clflushsize: 64
Czy to oznacza, że moje jądro działa w 64 bitach?
uname -a
powie ci jądro - bit końcowy mówi ci o architekturze.
Dwa przykłady:
Mój Mac:
Darwin Mac.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
Hosting My Dreamhost:
Linux ecco 2.6.24.5-serf-xeon-c6.1-grsec #1 SMP Tue Oct 7 06:18:04 PDT 2008 x86_64 GNU/Linux
i386 = 32 bity
x86_64 = 64 bity
uname -m
da ci architekturę, dla której skompilowane jest jądro. Jeśli się drukuje,i686
wtedy twoje jądro jest 32-bitowe, jeślix86_64
to 64-bitowe, zakładając, że masz układ Intel / AMD.źródło
i386
na starszych platformach 32-bitowych (widziałem nawet skompilowane pakiety dlai586
- choć nie jestem pewien, czy to kiedykolwiek zostanie wydrukowaneuname
)uname -m
daje architekturę, którą jądro wybiera do wystawienia na ten konkretny proces, a nie rodzimą architekturę jądra. Zobacz ten link .uname -m
nie zgłosić prawdziwą architekturę. Jeśli tak nie jest, najprawdopodobniej administrator naprawdę chce, abyś uwierzył, że jesteś w tej innej architekturze, a najlepszym rozwiązaniem jest zaakceptowanie faktu, że wie, co robi. Jeśli jesteś administratorem i masz do czynienia z tym,setarch
to i tak już wiesz lepiej.setarch
a ty możesz wywołać taki skrypt, nie mając pojęcia, że powodujeuname -m
on zwrócenie czegoś innego. Możliwe, a może nawet prawdopodobne, że tego rodzaju problemy są powodem, dla którego OP pyta.init
myśli, że jest 32-bitowa: sytuacja wygląda tak, jak w przypadku jądra 64-bitowego z 32-bitową przestrzenią użytkownika. Wiele systemów kompilacji polega nauname -m
określaniu flag kompilatora, np. GDB, muszą być wyposażone w fałszywą osobowość. Ale niektóre inne aplikacje przestrzeni użytkownika mogą nadal chcieć wiedzieć, jaki rodzaj jądra posiada (np. W przypadku niektórych potrzeb niskiego poziomu), niezależnie od osobowości.Myślę, że najbardziej precyzyjny sposób
tutaj to dokładnie pokazuje
64
znalezione w tej końcówce
getconf
pochodzi z pakietu libc-bin (na Ubuntu)źródło
Jeśli potrzebujesz łatwego, ale szczegółowego raportu o swoim systemie (procesorze, jądrze i oprogramowaniu Core OS), a nie tylko jądrze, oto mały skrypt bash, który szybko udzieli odpowiedzi.
Jeśli wiesz wystarczająco dużo o osobliwościach 32-bitowych / 64-bitowych procesorów i S / W, jest to po prostu przydatne. Jeśli nie wiesz dużo i myślisz, że twój „system” jest albo 32-bitowy, albo 64-bitowy, pomoże ci to odkryć, że prawda może być bardziej złożona (niektóre części twojego systemu mogą być 64-bitowe, a inne 32-bitowe), nie wprowadzając w błąd.
Znowu ten skrypt (i odpowiedź) nie dotyczy dosłownego pytania „Skąd mam wiedzieć, czy moje jądro Linuksa działa w wersji 32- lub 64-bitowej?” ale dla tych, którzy również chcą poznać łuk swojego procesora i rdzeń oprogramowania systemowego.
Przykładowe raporty
Oto przykłady raczej nietypowego przypadku:
Raport z mini-skryptu (dla doświadczonych użytkowników)
Raport z większego skryptu (dla mniej doświadczonych użytkowników)
Skrypty
Mini-skrypt (dla doświadczonych administratorów)
Te 4 wiersze zawierają wszystkie niezbędne informacje.
Większy skrypt (dla mniej doświadczonych użytkowników)
Ten skrypt drukuje wiele wyjaśnień i jest przydatny, jeśli nie masz doświadczenia w tym temacie i masz do czynienia z osobliwym przypadkiem.
Jeśli chcesz dowiedzieć się więcej, przeczytaj te dwie strony, z których uzyskałem większość informacji a) /programming/246007/how-to-determine-whether-a-given-linux-is-32- bit-or-64-bit b) https://unix.stackexchange.com/a/134394/73271
źródło
Jeśli chcesz zobaczyć tylko platformę, na której pracujesz, możesz użyć
Pełna lista obsługiwanych opcji dla
uname
toźródło
uname -i
odbitkiGenuineIntel
, których tak naprawdę nie szuka.Unknown
na komputerze Mac.i386
na mojej maszynie!CLFLUSHSIZE
nic nie mówi o trybie pracy procesora. Zgodnie z tą odpowiedzią odnosi się do najmniejszej spłukiwanej jednostki pamięci podręcznej. W twoim przypadku wiersze pamięci podręcznej są odczytywane / zapisywane w jednostkach 64 bajtów.uname
wyniki różnią się zbytnio, aby były użyteczne, jak pokazuje rzut oka w tabeli przykładów Wikipedii . Najbardziej niezawodną metodą jestgetconf LONG_BIT
jak pokazano w odpowiedzi Aquarius Power . Działa to niezależnie od architektury procesora, więc jest w domu na ARM, Power lub MIPS jak na x86.źródło