Core i7 with 4GB - go 64 bit or stay 32bit..?
Solution 1:
If your concern is only about having access to 4GB of RAM, then go for the 32bit + PAE version of Ubuntu. It's the easiest way :-) But read further in order to understand limitations and advantages of each architecture.
I guess your hardware is pretty recent, so Ubuntu will just pick up the 4GB of memory even in 32bit as it's using a kernel feature called PAE (some release of Ubuntu have a separate kernel for that, check in Synaptic Package Manager
for PAE). It's really stable and you won't regret it, especially for Flash which needs (if you install it the easy way from the repository) a 32bit stack. In my experience, a 64bit OS with Flash 32bit is unstable.
But they are a few limitations on the 32bit version, a process (a program) cannot access more than 2GB or sometimes 3GB of memory (depends on kernel and application own memory management such as Java Virtual Machine). This is obviously not a problem for most application. However, I've been using a few GPS tools to build maps. They sometimes (for big maps) need more than 2GB addressable memory. But it's really not common. In addition, 32bit+PAE can be incompatible with some proprietary drivers. They do work perfectly with open source ones, but some times the proprietary/binary drivers can not handle this architecture.
On the other side, you can go 64bit and with Ubuntu Software Centre
you can be happy as you have access to a huge library of 64bit applications. However, if you want to use proprietary software on Linux, you need to hope that they support also 64bit. Products like: Adobe Flash, Adobe AIR, Google Talk Plugin, Skype, Amazon MP3 are 32bits only. Some do work if you install the 32bit stack on your 64bit system, but some won't (Amazon MP3) or badly (Adobe Flash). Another drawback of 64bit system is that they use more memory. So a same application will use more memory for doing the same thing in a 32bit environment. Sometimes it's a problem.
Conclusion is:
- 32bit is more compatible regarding application (especially proprietary ones like Skype or Flash). PAE does not have impact on applications usually.
- 32bit+PAE/64bit you might have problem on both platform with certain binary drivers (usually for WiFi)
- If you don't need an application that uses more than 2GB of RAM (create your own map for your GPS), then you don't need 64bit. This is the case for the vast majority of users in today computing.
- 64bit tend to use more memory for the same workload.
- Some users and benchmarks (see phoronix.com) report 64bit systems are slightly faster. But the margin is small enough that I don't feel the differences.
Solution 2:
There may well be some annoyances along the way. A few of the proprietary components of Ubuntu (like the Oracle Java runtime and Adobe Flash) might be a bit harder to install that you would expect.
There may also be problems with some obscure wireless drivers and the like - but this is the exception rather than the rule.
Other than that, Linux' great 32 bit compatibility layer ensures that your system will be pretty much rock solid and, often time, quite a bit better at computational task that benefit from the larger address size.
Ubuntu server is now recommended by canonical in its 64 bit form per default. There is, all in all, much trust in the 64 bit linux architecture. It is no longer experimental, it is no longer just an add on. And even though some of the applications haven't caught up (flash is the only one of them that matters, really), the Linux kernel is now considered a 64 bit system with a 32 bit compatibility layer, rather than the other way round.
In short: Do it, go 64 bit - it's running millions and millions of Linux servers today, and it's completely ready for your desktop.
As Huygens points out, 32 bit is the safe bet. If you can stand the potential annoyance of re-installing the 32 bit version, it makes sense to try 64 bit first, and test for common issues.
The 32 bit installer will of course automatically enable a PAE kernel if you have more ram then can be addressed in 32 bits, rendering the ram issue a thing of the past. This has been said many times here, but why not include it again :)
Solution 3:
I find it quite amusing that the usage of 64bit is so closely bound to memory in the machine. 64bit means as well that per processor cycle you are able to process twice the amount of data comparing to a 32bit operating system.
Use 64bit in case you do
- video editing and processing
- sound editing and processing
- graphic editing and processing
- work with large files (e.g. databases, large log files, ...)
I am doing a podcast and using 64bit with my notebook saves a lot of time when doing audio processing (noise reduction, normalizing, compression, ...). My notebook only has 2 GB of RAM.
Solution 4:
It's also worth pointing out that although you only have 4GB of physical RAM, presumably you have swap so in reality have >4GB available. Only you know whether you run the type of applications that are likely to be affected by the 4GB/process limit. Think video/image processing or scientific applications (circuit simulation, matlab, that sort of thing) for examples.
Personally I'd go for it. Although you can run in 32-bit mode with these processors, our experience at work is that we get better performance when running the same processor in 64-bit. That's just our experience of course though.
Solution 5:
Why install 32-bit OS for a 64bit CPU? Mind that you will almost always be able to install and run 32bit applications on a 64bit environment once you have added the 32bit libs. Running 64bit apps on a 32bit OS is impossible. Go for 64 bit.