Kernel
What is the kernel ?
The kernel is the software that directly manages your hardware, allowing application libraries and software like GNOME and Firefox to run on many types of hardware without much difficulty. Because the Linux kernel is the core component of a GNU/Linux system, a full restart is required to complete the kernel update.
Types
Ubuntu packages the Linux kernel for a variety of architectures, including several variants of the x86 architecture. These include a 386 version, a 686 version, and versions for the AMD k6 and k7 processors. While most software for x86 processors in Ubuntu is compiled for 386 or better instruction sets, the kernel and a few other packages are specifically compiled for certain processors for speed reasons. Check the package documentation to determine what type of kernel will perform best for your processor.
Versions
Ubuntu currently packages the 3.8 kernel for optimal desktop speed and features.
SMP
Some motherboards have more than one processor on them, and some processors have multiple cores. If your computer is like this, then the SMP kernel is for you. Non-SMP kernels will not be able to take advantage of your multiple processors. However, if you do not have multiple processors, the additional code in an SMP kernel will only slow you down. Naturally, Ubuntu provides both SMP and non-SMP kernels for all supported architectures.
PAE
PAE (Physical Address Extension) allows the 32 bit version of Ubuntu to access up to 64 Gb of memory and is the standard for all members of the Ubuntu family from release 12.10 and beyond, as the non-PAE version has been dropped. For more on this please see here.
If your hardware does not support PAE, refer to the PAE pages with topics like installing, upgrading and enabling (with) PAE.
HowTo Upgrade or Recompile Kernel
The precompiled kernels that are supplied with your distro should be fine however if you wish to update or optimise (or standardise) for your platform :
From easier (1) to the more difficult (3):
1) You can Kernel/Upgrade easily using Ubuntu.
2) You can also Kernel/Compile it yourself from LinuxKernelSource or UbuntuKernelSource.
3) Run the following Terminal commands to install a new Ubuntu kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline/
sudo apt-get update
sudo apt-get install python-bs4 python-apt
cd /tmp; rm -rf medigeek-kmp*; wget --no-check-certificate https://github.com/medigeek/kmp-downloader/tarball/master -O kmpd.tar.gz; tar xzf kmpd.tar.gz; cd medigeek-*
python kmpd.py
Just press <ENTER> instead of a number if you get stuck on a certain question in the python script.
The script by default filters out (i.e. does not show) the release candidates. If you want the latest release candidates, please use: python kmpd.py -d
More info at: https://github.com/medigeek/kmp-downloader
How to Remove unwanted Kernels from your system
Open the Synaptic package manager from the System->Administration menu. Click the “Search” button on the tool bar and search for "linux-image-2". The results should show every available and installed kernel. A green box on the left indicates that the package is installed. The only linux-image you want installed is the latest one. Find the package corresponding to the kernel to you running currently (this is the kernel you found in the terminal window). Make sure you keep that one. Now you can uninstall the old kernels from the list by clicking their boxes and selecting “Mark for Removal”.
Or you can uninstall kernels using the ubuntu-tweak Ubuntu PPA package.
Instructions are here:
http://tech.sixcolumns.com/2012/10/how-to-remove-old-kernels-from-ubuntu-12-10-using-ubuntu-tweak/
Experimental Kernel Options
As per the Ubuntu Kernel Team, their typical Kernel configuration policy is that options marked EXPERIMENTAL are disabled by default, until a request has been made to justify enabling it. For example, one may find out if an option is marked this way via:
config RT2800USB_RT35XX bool "rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)" depends on EXPERIMENTAL default y ---help--- This adds support for rt35xx wireless chipset family to the rt2800usb driver. Supported chips: RT3572