REDHAT中如何判斷主機的CPU是32位還是64位的
可以直接檢視/proc/cpuinfo檔案,其中有關於CPU的詳細資訊,包括型號、CACHE、頻率等等,但是沒有地方明確的寫明是32位還是64位的,不過在FLAG那一行有很多的標誌資訊,如果其中有LM標誌,說明這個是64位的CPU,如果沒有,則說明是32位的。
FLAG的詳細的解釋是定義在cpufeature.h標頭檔案中的,裡面關於LM的解釋是Long Mode (x86-64),這個檔案在64位系統上位於/usr/include/asm-x86_64目錄下,在32位系統中位於/usr/include/asm目錄下,下面列一個64位的cpufeature的標頭檔案做個記錄吧
[@more@]#define X86_FEATURE_FPU (0*32+ 0) /* Onboard FPU */
#define X86_FEATURE_VME (0*32+ 1) /* Virtual Mode Extensions */
#define X86_FEATURE_DE (0*32+ 2) /* Debugging Extensions */
#define X86_FEATURE_PSE (0*32+ 3) /* Page Size Extensions */
#define X86_FEATURE_TSC (0*32+ 4) /* Time Stamp Counter */
#define X86_FEATURE_MSR (0*32+ 5) /* Model-Specific Registers, RDMSR, WRMSR */
#define X86_FEATURE_PAE (0*32+ 6) /* Physical Address Extensions */
#define X86_FEATURE_MCE (0*32+ 7) /* Machine Check Architecture */
#define X86_FEATURE_CX8 (0*32+ 8) /* CMPXCHG8 instruction */
#define X86_FEATURE_APIC (0*32+ 9) /* Onboard APIC */
#define X86_FEATURE_SEP (0*32+11) /* SYSENTER/SYSEXIT */
#define X86_FEATURE_MTRR (0*32+12) /* Memory Type Range Registers */
#define X86_FEATURE_PGE (0*32+13) /* Page Global Enable */
#define X86_FEATURE_MCA (0*32+14) /* Machine Check Architecture */
#define X86_FEATURE_CMOV (0*32+15) /* CMOV instruction (FCMOVCC and FCOMI too if FPU present) */
#define X86_FEATURE_PAT (0*32+16) /* Page Attribute Table */
#define X86_FEATURE_PSE36 (0*32+17) /* 36-bit PSEs */
#define X86_FEATURE_PN (0*32+18) /* Processor serial number */
#define X86_FEATURE_CLFLSH (0*32+19) /* Supports the CLFLUSH instruction */
#define X86_FEATURE_DTES (0*32+21) /* Debug Trace Store */
#define X86_FEATURE_ACPI (0*32+22) /* ACPI via MSR */
#define X86_FEATURE_MMX (0*32+23) /* Multimedia Extensions */
#define X86_FEATURE_FXSR (0*32+24) /* FXSAVE and FXRSTOR instructions (fast save and restore */
/* of FPU context), and CR4.OSFXSR available */
#define X86_FEATURE_XMM (0*32+25) /* Streaming SIMD Extensions */
#define X86_FEATURE_XMM2 (0*32+26) /* Streaming SIMD Extensions-2 */
#define X86_FEATURE_SELFSNOOP (0*32+27) /* CPU self snoop */
#define X86_FEATURE_ACC (0*32+29) /* Automatic clock control */
#define X86_FEATURE_IA64 (0*32+30) /* IA-64 processor */
/* AMD-defined CPU features, CPUID level 0x80000001, word 1 */
/* Don't duplicate feature flags which are redundant with Intel! */
#define X86_FEATURE_SYSCALL (1*32+11) /* SYSCALL/SYSRET */
#define X86_FEATURE_MMXEXT (1*32+22) /* AMD MMX extensions */
#define X86_FEATURE_LM (1*32+29) /* Long Mode (x86-64) */
#define X86_FEATURE_3DNOWEXT (1*32+30) /* AMD 3DNow! extensions */
#define X86_FEATURE_3DNOW (1*32+31) /* 3DNow! */
/* Transmeta-defined CPU features, CPUID level 0x80860001, word 2 */
#define X86_FEATURE_RECOVERY (2*32+ 0) /* CPU in recovery mode */
#define X86_FEATURE_LONGRUN (2*32+ 1) /* Longrun power control */
#define X86_FEATURE_LRTI (2*32+ 3) /* LongRun table interface */
/* Other features, Linux-defined mapping, word 3 */
/* This range is used for feature bits which conflict or are synthesized */
#define X86_FEATURE_CXMMX (3*32+ 0) /* Cyrix MMX extensions */
#define X86_FEATURE_K6_MTRR (3*32+ 1) /* AMD K6 nonstandard MTRRs */
#define X86_FEATURE_CYRIX_ARR (3*32+ 2) /* Cyrix ARRs (= MTRRs) */
#define X86_FEATURE_CENTAUR_MCR (3*32+ 3) /* Centaur MCRs (= MTRRs) */
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-1018405/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何判斷當前主機是物理機還是虛擬機器?虛擬機
- 如何判斷使用者用的是Android手機還是IOS手機AndroidiOS
- 如何判斷是手機還是電腦訪問網站網站
- PHP判斷是手機端還是PC端PHP
- Android app 判斷是手機還是平板AndroidAPP
- js如何判斷一個方法是內建的還是自定義的JS
- js如何判斷物件的屬性值是物件還是陣列JS物件陣列
- js 判斷是手機訪問,還是pc訪問JS
- js如何判斷一個變數是物件還是nullJS變數物件Null
- js如何判斷屬性是本身具有還是繼承別人的JS繼承
- 判斷是蘋果系統還是安卓系統的代蘋果安卓
- JDK是如何判斷兩個物件是否相同的?判斷的流程是什麼?JDK物件
- JavaScript判斷陣列還是物件JavaScript陣列物件
- js如何判斷一個變數是陣列還是其他物件JS變數陣列物件
- 判斷手機還是電腦登陸程式碼
- 如何判斷Unix系統的一個庫檔案是32位還是64位的
- ionic-判斷是裝置時手機還是平板(iPad,tablet)iPad
- Linux下判斷cpu物理個數,幾核,是超執行緒還是多核心Linux執行緒
- 判斷Android 系統是MIUI 的,魅族的Flyme ,還是原生的?AndroidUI
- JAVA關於判斷年份是閏年還是平年的問題Java
- Linux下判斷磁碟是SSD還是HDD的3種方法Linux
- Effective C++是copy constructor 還是 copy assignment(“=”)的判斷C++Struct
- js如何判斷一個變數是數字還是數字字串JS變數字串
- JS 判斷客戶端是iOS還是AndroidJS客戶端iOSAndroid
- 判斷客戶端是微信,還是支付寶客戶端
- 怎麼判斷Win10系統中硬碟是SSD還是HDDWin10硬碟
- vue 判斷使用者處於手機還是PCVue
- PHP判斷是手機移動端訪問還是PC端訪問的函式PHP函式
- 判斷是android安卓還是ios蘋果系統的js程式碼Android安卓iOS蘋果JS
- javascript中怎麼判斷某變數是null,undefined,還是不存這個變數 ? 以及變數是array 還是 object 還是 null ?JavaScript變數NullUndefinedObject
- python 判斷變數是數字型還是字元型Python變數字元
- windows 之醬紫判斷是UEFI還是legacy啟動Windows
- fastjson判斷JSON字串是Object還是List<Object>ASTJSON字串Object
- jquery判斷一個元素是隱藏還是顯示jQuery
- Android 程式設計下判斷當前裝置是手機還是平板Android程式設計
- Spring動態代理的生成-如何判斷是使用JDK動態代理還是CGlib代理SpringJDKCGLib
- java判斷IOS還是安卓,跳轉不同的連線JavaiOS安卓
- JavaScript判斷ios還是android系統JavaScriptiOSAndroid