Ketika saya melakukan cat di / proc / cpuinfo ia menunjukkan baris dengan clflushsize: 64
Apakah ini berarti kernel saya berjalan dalam 64 bit?
uname -a
akan memberi tahu Anda kernel - bit akhirnya memberi tahu Anda arsitekturnya.
Dua contoh:
Mac saya:
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 Dreamhost saya:
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 bit
x86_64 = 64 bit
uname -m
akan memberi Anda arsitektur tempat Anda menyusun kernel. Jika ia mencetaki686
maka kernel Anda adalah 32 bit, jikax86_64
kemudian 64 bit, dengan asumsi Anda memiliki chip Intel / AMD.sumber
i386
pada platform 32-bit yang lebih tua (dan saya bahkan telah melihat beberapa paket dikompilasi untuki586
- tidak yakin apakah itu akan pernah menjadi output olehuname
, meskipun)uname -m
memberi Anda arsitektur yang kernel pilih untuk mengekspos ke proses khusus ini, bukan arsitektur asli kernel. Lihat tautan ini .uname -m
tidak melaporkan arsitektur nyata. Jika tidak, maka kemungkinan besar admin benar-benar ingin Anda percaya bahwa Anda menggunakan arsitektur lain itu dan taruhan terbaik Anda adalah menerima bahwa dia tahu apa yang dia lakukan. Jika Anda adalah admin dan Anda mengacaukannyasetarch
maka Anda sudah lebih tahu.setarch
dan Anda dapat menjalankan skrip seperti itu tanpa tahu bahwa itu menyebabkanuname -m
untuk mengembalikan sesuatu yang berbeda. Mungkin saja, bahkan mungkin, bahwa masalah-masalah seperti inilah mengapa OP bertanya.init
berpikir itu 32-bit: situasi untuk ini adalah 64-bit kernel dengan 32-bit userspace. Banyak sistem kompilasi bergantung padauname -m
untuk menentukan flag-flag compiler, mis. Bahwa dari GDB, mereka harus dilengkapi dengan kepribadian palsu. Tetapi beberapa aplikasi userspace lain masih ingin mengetahui jenis kernel apa yang dimilikinya (misalnya untuk beberapa kebutuhan tingkat rendah), terlepas dari kepribadiannya.Saya pikir cara yang paling tepat adalah
di sini persis menunjukkan
64
ditemukan di tip ini
getconf
berasal dari package libc-bin (di ubuntu)sumber
Jika Anda menginginkan laporan yang mudah namun terperinci tentang sistem Anda (CPU, Kernel dan perangkat lunak Core OS) dan bukan hanya kernel maka inilah skrip bash kecil yang akan memberi Anda jawaban dengan cepat.
Jika Anda cukup tahu tentang kekhasan CPU 32bit / 64bit dan S / W, ini cukup mudah. Jika Anda tidak tahu banyak dan berpikir bahwa "sistem" Anda adalah 32bit atau 64bit maka itu akan membantu Anda menemukan bahwa kebenaran bisa lebih kompleks (bagian dari sistem Anda mungkin 64bit sementara yang lain 32bit) tanpa membingungkan Anda.
Sekali lagi skrip ini (dan jawabannya) bukan untuk pertanyaan literal "Bagaimana saya tahu jika kernel Linux saya berjalan dalam 32bit atau 64bit?" tetapi bagi mereka yang juga ingin tahu lengkungan CPU mereka, dan inti OS SW.
Contoh laporan
Ini adalah contoh untuk kasus yang agak tidak biasa:
Laporan dari skrip mini (untuk pengguna berpengalaman)
Laporkan dari skrip yang lebih besar (untuk pengguna yang kurang berpengalaman)
Skrip
Skrip mini (untuk admin berpengalaman)
4 baris ini memberikan semua informasi penting.
Skrip yang lebih besar (untuk pengguna yang kurang berpengalaman)
Script ini mencetak banyak penjelasan dan berguna jika Anda tidak memiliki pengalaman pada subjek dan dihadapkan dengan kasus yang aneh.
Jika Anda ingin tahu lebih banyak, baca dua halaman ini dari tempat saya mendapatkan sebagian besar informasi a) /programming/246007/how-to-determine-whether-a-given-linux-is-32- bit-or-64-bit b) /unix//a/134394/73271
sumber
Jika Anda hanya ingin melihat platform yang sedang Anda jalankan, Anda dapat menggunakannya
Daftar lengkap opsi yang didukung
uname
adalahsumber
uname -i
cetakanGenuineIntel
, yang sebenarnya bukan yang dia cari.Unknown
di Mac.i386
di mesin saya!CLFLUSHSIZE
tidak memberi tahu Anda apa-apa tentang mode operasi prosesor. Menurut jawaban ini , ini mengacu pada unit cache yang paling kecil yang dapat disiram. Dalam kasus Anda, baris cache dibaca / ditulis dalam satuan 64 byte.uname
output terlalu banyak untuk berguna, seperti yang terlihat pada tabel contoh Wikipedia . Metode yang paling dapat diandalkan adalahgetconf LONG_BIT
seperti yang ditunjukkan dalam jawaban Aquarius Power . Ini berfungsi terlepas dari arsitektur prosesor, begitu juga di rumah pada ARM, Power, atau MIPS seperti pada x86.sumber