Ubuntu – Is the system able to run 64-bit OS

cpu-architecture

I am using 32-bit Ubuntu 14.4 LTS. How can I tell if my computer can run a 64-bit os? I am confused between architecture and CPU op-mode.

An excerpt from /proc/cpuinfo:

$ grep " lm " /proc/cpuinfo
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 nx **lm** constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dtherm tpr_shadow vnmi flexpriority

Output from lscpu:

kamal@kamal-G31T-M7:~$ lscpu
Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list    0, 1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              10
CPU MHz:               2793.084
BogoMIPS:              5586.16
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K
…

Best Answer

If you look at the CPU op-mode(s) line, you'll see a clue:

CPU op-mode(s):       32-bit, 64bit

So yes, your CPU supports 64bit instructions. You can use the 64bit version of Ubuntu if you want to. This will require reinstalling, there is no upgrade path.

Most CPUs you'll encounter —certainly from the last decade or so— will probably support 64bit. This isn't a guarantee because Intel still makes 132 32bit CPUs, however these are super-budget Atoms, Celerons and Pentiums, special-purpose Xeons and a few SoCs. AMD's offerings are similar.

If you can find out what the CPU is (i.e. read the Model name output), you end up with something very Google-able. Here is one of my servers:

Model name:            Intel(R) Pentium(R) CPU G3220 @ 3.00GHz

That gives this Intel ARK page which tells you all the CPU features and supported architectures. Of course yours will be different from that link but it's pretty reliable and easier to read then deciphering the flags in lscpu and cat /proc/cpuinfo.