1

Which architecture os do I use? I have a 32-bit processor, but I also have 4GB of RAM, the download page says the 32-bit system is for computers with less than 2GB of RAM.

10
  • What is your cpu?
    – Pilot6
    May 29, 2015 at 17:58
  • 1
    @Pilot6 Quote from the question: "I have a 32-bit processor, but I also have 4GB of RAM" It is a 32bit CPU, so your answer is correct.
    – Byte Commander
    May 29, 2015 at 18:00
  • But maybe the CPU is NOT 32-bit.
    – Pilot6
    May 29, 2015 at 18:04
  • 1
    Just to make this clear: Ubuntu will REFUSE to install on the wrong architecture.
    – Rinzwind
    May 29, 2015 at 18:24
  • 1
    Normal old 32bit processors can handle up to 4GB of RAM! You can calculate 2³² is exactly 4GiB. Newer 32bit processors can even handle more than 4GB due to PAE (Physical Address Extension).
    – Byte Commander
    May 29, 2015 at 18:27

4 Answers 4

4

If you have a 32-bit CPU, then you have no options. Only a 32-bit OS can be installed.

Ubuntu is shipped with pae-enabled kernels. Up to 64 GB of RAM can be used.

But not more than 4 GB per process.

5
  • would that make 2gb of my ram unused?
    – user415025
    May 29, 2015 at 18:00
  • It will use all your ram.
    – Pilot6
    May 29, 2015 at 18:00
  • PAE allows 3GB per process. May 29, 2015 at 18:20
  • On 32 bit systems 1GB is reserved for the kernel. May 29, 2015 at 18:28
  • The confusion is between virtual a logical memory. 1GB of logical memory is reserved for kernel. 3GB is used to map RAM, files, swap, shared libraries, etc. This is true of all 32 bit kernels, though sometimes the ratios can change (sometimes 2GB:2GB). On 64bit kernel a 32bit process gets all 4GB of logical, as kernel has the whole of 64bit space to hide in. PAE allows more Physical not more Logical. May 29, 2015 at 18:54
0

Run the following command to see if your CPU can work in 64-bit mode:

lscpu | grep "CPU op"

if you see 32-bit, 64-bit in the output, it means you will be able to 'install' 64-bit Ubuntu. Now, this might not leverage all the goodness of a 'pure' 64-bit machine, but this is an option for you if your CPU supports this. I have a 32-bit laptop and in the past I've done this and I did not experienced any major problems. But sometimes if you try to install some programs/packages you might face a platform incompatibility.

3
  • This is rather a comment than an answer, isn't it?
    – Byte Commander
    May 29, 2015 at 18:36
  • also cat /proc/cpuinfo | grep flags | grep pae to see if there is pae support. May 29, 2015 at 18:42
  • Can the question be answered? Ron is just telling us how to get the info, so that it can be answered. May 29, 2015 at 18:43
0

Summary:

  • If your CPU is an old 32bit processor, you have to install a 32bit system.
    It may be capable of PAE, then it's no problem to use the full amount of the available 4GiB RAM.
  • If you have a 64bit CPU, you can decide which OS architecture you want to use. both 32bit and 64bit will work.
    Depending on your RAM configuration, you get the best performance on systems with few RAM ( < 4GiB) with a 32bit OS and on systems with much RAM ( > 4GiB) with a 64bit OS. Around 4GiB of RAM, you have to decide...

Detailed explanation:

About the CPU architecture:

The physical architecture of your processor (CPU) tells you which operating system (OS) architecture you are able to install:

  • 32bit CPU: Install only 32bit OS or older
    (8bit and 16bit do not really exist any more today, except on some microcontrollers)
  • 64bit CPU: Install 64bit OS or 32bit OS or older

About the RAM size:

A plain old 32bit CPU can physically address 2³² byte of memory, which is exactly 4GiB (with 1GiB = 1024MiB, 1MiB = 1024KiB, 1KiB = 1024Byte).
A new 64bit CPU can in contrast physically address 2⁶⁴ byte of memory, which are 16EiB ("Exbibyte" or sometimes "Exabyte", which is a number with 20 digits in bytes).

You have to know that "memory" not only is RAM, but includes every memory available to the machine. This includes RAM (main memory), VRAM (video card's memory) and all other internal memories, but no disks or external devices. Especially the video memory is important: If you have a graphics card with 1GiB VRAM, you can only address 3 more GiB RAM on an old 32bit system.

However, we were able to use more than 4GiB even before we had 64bit CPUs. How? The answer is PAE (Physical Address Extension). This technique allows to use more physical memory with 32bit CPUs through special tables that mapped to the memory cells. It's first use was in the Intel Pentium Pro CPU from 1995, so most semi-modern 32-bit CPUs support it. On most current OS, it allows addressing up to 64GiB of memory.

Why the 4GB "limit" is also important for the 32/64bit decision is the following: 64bit systems use 64bit wide addresses and 64bit wide memory blocks to store data. This however doubles the amount of memory needed for normal applications for which 32bit variables were enough. So if you have less than 4GiB RAM on a 64bit capable system, this effect will dominate and your system is probably less well performing as if you would have installed a 32bit OS due to memory shortage.

1
  • Also x86-64 has more registers than x86 (32). So 64 bit mode may be faster. This is only true if you are using x86, which you probably are. May 30, 2015 at 11:54
-1

If you have 4GB of ram then you have 64bit CPU or Physical Address Extensions. 4GB + all of the memory-mapped io, is more than a 32 bit can handle.

Your choices:

  • Use 32bit system: Can't use all of ram (approximately 3GB but can vary, it depends on what other hardware the system has). 3GB total mapped memory per process.
  • Use 32bit-pae kernel: Can use all of ram (max 64GB, kernel team say performance is degraded above 8GB, due to pae complexities). 3GB total mapped memory per process.
  • Use full 64bit system (if you can): can use all of ram. lots of GB total mapped memory per precess.
  • Use hybrid 64bit system (install 32bit system, then enable 64 bit kernel): can use all of ram. 4GB total mapped memory per process.

All but full 64bit will use the 32 bit install disk. It is just a case of trying different kernels.


Note: processes can map memory up to totals listed above. They can map RAM, files, swap, shared libraries, etc.

2
  • Please explain how to "install 32bit system, then enable 64 bit kernel", especially on a 32-bit cpu?
    – Pilot6
    May 29, 2015 at 18:32
  • just install the 32 bit system. It will work but not use all of you RAM, this is ok for now. Then in the package manager, select and install the kernels with PAE and 64bit. Then reboot and select one of these kernels in the grub boot menu, and test it out. As I said I don't think you have a 32 bit cpu. If so someone wasted some money adding the extra RAM. May 29, 2015 at 18:37