我最近安裝了 Virtual Box,但很困惑為什麼它不提供任何作業系統的 64 位元版本。
因此,我查看了已安裝的內容,發現了三個不同的命令來嘗試找出發生了什麼。
uname -a
揭示了:
Linux kubuntuBox 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
所以看起來我已經安裝了 64 位元版本的 Kubuntu
我發現的第二個命令檢視標誌:
grep flags /proc/cpuinfo
輸出以下行 8 次:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
不太清楚為什麼會輸出 8 次,但確實如此。奇怪的是有lahf_lm
卻沒有lm
我發現的最好的命令是getconf WORD_BIT
輸出32
清晰如天。
現在我很困惑 - 我確實安裝了 64 位元版本的 Kubuntu (14.04),並且大約每月運行一次 dist-ugrades,但作業系統似乎在 32 位元模式下運行。
這是為什麼?我需要重新安裝 Kubuntu 嗎?
答案1
這很容易,真的。您已成功執行getconf
,讓我們看看。運行以下命令:
file $(which getconf)
它會輸出類似這樣的內容:
/usr/bin/getconf:ELF 64 位元LSB 可執行文件,x86-64,版本1 (SYSV),動態鏈接,解釋器/usr/lib/ld-linux-x86-64.so.2,適用於GNU /Linux 2.6 .32,BuildID[sha1]=e9b5e04a7d7c7552abb2e260d9c17c8ffb4ce2a3,已剝離
……這清楚地表明您正在運行 64 位元系統。否則您將無法執行 64 位元程式。
輸出uname
也清楚地表明它是一個x86_64
內核。
getconf
完全是錯誤的(或者更確切地說,沒有意義)。/proc/cpuinfo
也可能是錯誤的,那裡寫的內容取決於核心中的簡單解析器。
它包含系統中所有處理器的信息,因此 4 核 CPU 上將有 4 個區塊。如果超線程處於活動狀態,則乘以 2。