A Stable Linux Kernel API/ABI? "The Most Insane Proposal" For Linux Development
The proposal was sent out this morning by Artem Tashkinov who from the Linux kernel Git logs has contributed to the upstream Linux kernel just in the form of reporting issues and testing patches.
He began his proposal by saying, "It's not a secret that there are two basic ways of running a Linux distribution on your hardware. Either you use a stable distro which has quite an outdated kernel release which might not support your hardware or you run the most recent stable version but you lose stability and you are prone to regressions. This problem can be solved by decoupling drivers from the kernel and supplying them separately so that you could enjoy stable kernel version X with brand new drivers like it's done in most other proprietary OS'es. I've been thinking of asking Linus about this decoupling for years already but I'm hesitant 'cause I'm 99.99999% sure he will downright reject this proposal."
Aside from decoupling drivers from the kernel source tree, he is proposing stable APIs and ABIs that would be maintained for 3~5+ years, unstable kernel APIs should be developed in parallel to stable APIs, and developing drivers in parallel to the kernel tree.
He concluded with, "In short I'm offering a concept of Windows NT kernel development. They have very rare stable kernel releases (e.g. XP SP0, SP1, SP2, 2003, 2003 R2 - all binary compatible), then Vista kernel began development and after its release six years later, hardware vendors had to support just two kernel releases. Not that is a big issue. One very big justification of this proposal is that core Linux development (I'm talking about various subsystems like mm/ ipc/ and interfaces under block/ fs/ security/ sound/ etc. ) has slowed down significantly over the past years so radical changes which warrant new kernel API/ABI are less likely to be introduced."
Again, Linus Torvalds will almost certainly not go for any changes to the kernel development process with separating out the drivers or coming to a stable API/ABI. Nevertheless, it's fun for a weekend discussion: what would you like to see changed about the Linux kernel's development process? Let us know by commenting on this article in our forums or via Twitter.