In late April, I began a project called Utappia, to host all my little software projects that I build in my spare time. One of the projects, is the Optimus Kernel which aims at bringing out the best of Linux Kernel, optimized for Desktop systems. After 9 releases, it is time to make some necessary changes to the release cycle.
While the release cycle was going smooth and I was releasing following the mainline kernel version…. In June after the release of Optimus Kernel 3.3.7 things started to slow down on the schedule because of some factors. This led me to reconsider the release cycle of Optimus and I would like to elaborate on the reasons behind it.
Vanilla Linux vs Ubuntu Linux
Vanilla Linux differs from Ubuntu Linux in many ways. Ubuntu Kernel is based on a Linux Kernel version that has been freezed about 1 month before the release of a stable version. So for Ubuntu 12.04 which, was released in April, the kernel that was picked was 3.2.0. While Vanilla Kernel at kernel.org is now in 3.5.x release, Ubuntu’s kernel is now based on 3.2.24.
To keep up with the latest release, one needs to download the kernel from kernel.org, apply some patches that are Ubuntu specific (AppArmor, Aufs, firmwares etc. ) and then build the packages. This may some times be a real pain…
Ubuntu Kernel Team
Ubuntu has a dedicated Kernel team that even if your kernel is older that the mainline, they are backporting security and bug fixes. When you stick with a version and backporting just the important changes, it leads to Code Maturity. So if you try to keep up with the latest Linux version, you loose all the great work that Ubuntu Kernel team is doing with polishing the kernel.
The Optimus Kernel is tailored to be 100% Ubuntu compatible. Many users have reported, publicly on other blogs or by mail that Optimus Kernel works like a charm on other Ubuntu based distributions and even on Debian. Personally I can only give support for Ubuntu as I don’t have the time and resources to build the Optimus Kernel for every distribution.
While following the latest versions of Linux Kernel, sometimes it was a pain to keep up with the patch sets.
Optimus Kenrel uses . These patches try to keep up with the development of the mainline kernel, but not always. As Optimus Kernel is a free project, those patches are also made by people that spare their time to build them. This is not always successful. In a recent post, Con Colivas (BFS patches) and BFQ patcheshas reported that there will be delays on releasing new patches due to lack of time.
Bugs in Patches
While most of people don’t realize because they see the final product, building a software involves 80% of the time to be spent on bug fixing. After the release of Linux 3.4, BFS and BFQ had some rough edges that led me to delay even more the releasing of new versions. You may have never seen an Optimus Kernel based on 3.4 but I have used it for 1 week and it was not ready for release.
Time and Resources
When you start a free project, you invest and dedicate time and resources just for fun . When it stops being fun and it is pain in the ass, then you either stop or you react accordingly. In my situation, it is still fun but the time and resources are limited. I do it on my free time for free…
I have been thinking that releasing always the latest and greatest of Optimus based on the latest version of Linux Kernel, compromises the Philosophy of Ubuntu Long Term Support. When it comes to “Kernel”, the CORE of your operating system, you should be careful. There is no need to update it every week with tons of new features that you probably don’t need and they may introduce new security and stability issues. Remember the Code Maturity I have mentioned earlier?
Its a damn kernel (If it works don’t fix it)
A kernel should just work. It should not mess with your daily activities and it should be silent. If a version of kernel works (like the one that comes by default with a fresh install) you should never upgrade it. You should just install any available updates that are available through the update manager and nothing else. This should be the same for the Optimus Kernel. New updates should just evolve to a more “Code Maturity”
All the above led me to make a new release schedule for Optimus Kernel.
So from now and on, new versions will follow the latest stable kernel available on Ubuntu LTS (now its 18.104.22.168).
This simply means that if your Ubuntu has an update on its kernel (This happens every ~2 months) you should expect a new Optimus Kernel that will incorporate and will be based on that update. In other words you will be sure that it will alway work, it will not brake compatibility and will have a stable release cycle.
The following days I will release the 64bit and 32bit versions of Optimus Kernel based on this new release schedule. Please keep up with the news at:
Hope you like the new course. If not its ok… your opinions are welcomed….