I have a Core i7 laptop with 4gb ram. In windows, the disadvantage of using the 32bit OS would be that a single app could not use more than 2gb of ram (+ the 2gb shared kernel-space memory) except when setting a boot switch which reduces the amount of shared kernel memory, then it's 3GB max per app.
What disadvantages/limitations would I have in Ubuntu for sticking to the 32bit OS? (If any?) - As I only have 4GB of ram, I can't see why I need to use the 64bit version?
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 :)
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:
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
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.
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.
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.
I have a laptop with almost the same configuration as yours. But I decided to install Ubuntu 10.10 32 bits instead of 64 bits because I have some closed-source software dependence:
My opinion is: stay in 32 bits!! You probably have a dependency on one of the software I listed above - and the amount of work provided by such a change does not compensate for the change.
About your 4GB of memory: don't worry! Ubuntu will install the right kernel (with PAE) by default. Thanks!
You need to install it with a network connection so it can pick the PAE on install.
I have the same components, (Dell studio 1557, i7 quad-core, 4GB RAM) an I go for 64bit as it is more natural. Linux has 64bit support for almost every application out there and even if there isn't one, 32bit application support is already built in Ubuntu.
So for a hardware that has 64bit CPU + 4GB Ram the natural OS is 64bit OS. Not that with 32bit you will have any problem. If you install Ubuntu 32bit, it will automatically install a PAE kernel which is compatible with >3GB of Ram.
For years I've been using every 64bit Ubuntu version that was released and never had a single problem.
So go for it... :)
First of all you would need the PAE kernel if you intend to use the 4gb of RAM with 32 bit OS. Otherwise you would end up with a portion of your memory not being utilised. And the 3gb limit per process would remain. So my suggestion would be to use the 64 bit.In any case if you plan to upgrade your system in future you would have to switch to 64bit. Java and Flash problems aside there is no reason to stick to 32 bit.
I had an i7 and was transcoding video. I was using vlc. if i was running ubuntu 12.04 32 bit it resulted in 60% processor utilization. using 12.04 64bit it took 13% utilization. so some applications are drastically impacted.