Which Kernel to Choose?
I am running Ubuntu 18.04 and I wanna know which kernel should I choose and why.
I believe the GRUB 2 is the default option. It's the upstream kernel with some additional GRUB configuration required for Linode Platform. Hence, it's important not to override that config if upstream issues minor kernel updates or anything that updates GRUB 2 !!
Latest 64Bit Kernel is provided by Linode. It's the latest major version kernel which will be never available by upstream because the upstream doesn't change the major kernel version for the same OS version.
Then there is Direct Disk but I have a strong feeling for staying away from that option.
So, I hope I have some basic understanding how these options work.
I am not gonna say which one is better but does one option have advantages over another? Which one I should choose from?
Actually, I have found an article slightly going over my question. I said slightly because I am not %100 satisfied with the answer there.
I might have answered my own question though, I guess the main advantage of using Linode provided kernel is to be able to use the latest major version kernel which will never be available by upstream.
That being said; I still would love to hear some feedback from some veterans.
@duraturk it looks like you've accidentally linked this post instead of the article you found, so this may cover some things you've already learned.
The primary distinctions between your kernel options are explained in our guide on How to Change your Linode's Kernel:
The upstream kernel may support features not present in the Linode kernel (for example, SELinux). The upstream kernel is easily installed and updated from your distribution’s package management system.
The Linode kernel is quick to update and does not require you to enter any terminal commands: if you’re using the Linode kernel marked as latest, then you just need to reboot in order to update it.
Compiling a kernel can let you use features not available in the upstream or Linode kernels, but it takes longer to compile the kernel from source than to download it from your package manager.
First, a big difference between our kernel vs. what you might find on a distribution like Debian/Ubuntu is that our kernels are very vanilla - we apply very few patches to the upstream source code (usually none).
Another big difference is that Linode kernels do not use kernel modules like what you find on most distros. Instead, support for all of our (virtualized) hardware and features is built directly into the kernel itself. This means that we don't need to install any additional files onto your Linode in order to use our kernel, and results in a smaller kernel overall.
This of course also means that you can only use features of the kernel that we've explicitly built in, whereas on distribution-supplied kernels you can load kernel modules on the fly to extend its functionality. We try to account for all of our customers' use-cases when building our kernels, but occasionally we miss things and we encourage customers to let us know if there's something they'd like us to include in our kernels. We can build and deploy new kernels pretty quickly, so ultimately I think the trade-off is worth it.
Lastly, if you are interested to see what our kernel configuration looks like, you can run
zcat /proc/config.gzon any Linode running one of our kernels. This will print all of the options that the kernel was built with.
Hope this helps!