Architecture - 32-bit handling 64-bit instructions

Solution 1:

Use the lscpu command to check if your computer supports multiple CPU operation modes (usually either 32-bit or 64-bit mode).

From the terminal run:

lscpu | grep op-mode

Example output on a 64-bit processor:

user@computer1:~$ lscpu | grep op-mode
CPU op-mode(s): 32-bit, 64-bit

Example output on a 32-bit processor:

user@computer2$ lscpu | grep op-mode
CPU op-mode(s): 32-bit

Either Ubuntu 32-bit or Ubuntu 64-bit can be installed on the computer in the first example. Only Ubuntu 32-bit can be installed on the computer in the second example. Either Ubuntu 32-bit or Ubuntu 64-bit can be installed on the computer in the question.

A 32-bit application will run on either a 32-bit or a 64-bit operating system. A 64-bit OS will only run on a 64-bit processor. A 64-bit application will run on a 64-bit OS, and by doing some heavy lifting it may also be possible to run some 64-bit applications on a 32-bit OS. By "heavy lifting" I mean that you will need to install the 64-bit kernel1 and do other unpleasant things as well, depending on what 64-bit application(s) you are trying to install. Installing a 32-bit application in a 64-bit OS is a breeze by contrast.

enter image description here ⠀Summer breeze

1https://unix.stackexchange.com/questions/134391/64-bit-kernel-but-all-32-bit-elf-executable-running-processes-how-is-this/134394#134394

Solution 2:

lscpu is telling you that your architecture is i686 (an Intel 32-bit CPU), and that your CPU supports both 32-bit and 64-bit operating modes. You won't be able to install x64 built applications since they're built specifically for x64 architectures.

Your particular CPU can handle either the i386 or i686 built packages. There are a number of ways to verify your architecture & OS preferences.

Try uname -m. It will show i686, that means your CPU is 32 bit support.