One of the most important parts of any Linux distribution is the kernel, or Kernel. It is where you will find everything necessary for our computer to function, such as controllers or drivers, as well as the tools responsible for memory management, call control and everything necessary for the software to have access to the hardware. from the PC. There are many different versions of the kernel, from the original, published by Linus Torvalds himself (creator of Linux) to editions modified by the community or by those responsible for the main distributions, such as Canonical (in the case of Ubuntu). However, which one is better?
The Canonical Kernel, what does it contribute?
When we install Ubuntu from scratch, it comes with a modified and optimized kernel with Canonical. It is the company itself that is in charge of maintaining it, applying patches when a bug or vulnerability appears and launching the different updates during the life cycle of the distro.
By default, the kernel that installs us is ” generic “, a version of it designed for general use. However, if we have special needs, Canonical has different versions of its own kernel so that we can easily install them with one command. The main ones are:
- lowlatency : a kernel with very low latencies specially designed for processing audio.
- kvm : intended for virtualized instances with this hypervisor.
- raspi2 : kernel designed for the Raspberry Pi 2.
- snapdragon : kernel designed for devices that use this type of ARM CPUs.
- OEM : version specially designed for certain projects.
- xx-hwe : “Hardware Enablement” kernel to work with the latest hardware. We can find this version for both the “generic” and the “lowlatency”.
Among others, the main advantages that we obtain when using this type of nucleus are, on the one hand, a series of optimizations and configurations that Canonical applies in the nucleus to improve its operation, and on the other hand, the peace of mind of forgetting to update to new versions, since these will arrive through APT, like the rest of the patches of the system.
However, the main drawback is that we will never be up to date . When Canonical releases a new version of Ubuntu, it comes with a kernel one or two versions behind the last one. Which prevents us from enjoying the latest kernel improvements for at least 6 months.
Why switch to an original kernel?
Although Ubuntu comes with its own kernel, that does not prevent us from installing the version of the original kernel that we want ourselves. We can download the code and compile it directly on our PC, or use a program like Mainline to download and install the latest kernel on our PC.
The advantages of this are varied. For example, it allows us to be up to date, enjoy the latest improvements implemented in the kernel, and even continue using a specific version of Ubuntu despite being without support without taking risks. By manually updating the kernel, and the packages, we can turn our Canonical distro into a kind of “Rolling Release” .
However, we may also run into some problems. For example, as these versions are not checked by Canonical, it is possible that we run into an error. And, in addition, we will not have the improvements and optimizations that come standard in the “generic” version of Canonical . It also forces us to be a little more aware of the updates, which we must install by hand.
Which is better?
The truth is that the safest thing is that we will not notice any change, neither for better nor for worse. Canonical’s generic kernel is sufficient for most people to use Ubuntu without any problem. And, if we are one of those who have the latest hardware, and it is not yet supported by this generic, we can install the generic-hwe to have support for the latest drivers. If we don’t have special needs, and we don’t want to complicate ourselves, this is the best we can use.
On the contrary, if we want to have the latest kernel features (like, for example, the new improved driver for NTFS) and we don’t want to wait 6 months for the next Ubuntu version, then the best we can do is manually install the original version of the Linux kernel. Of course, knowing what we are doing and taking care of all related maintenance tasks from then on.