Understanding kernel abi bumps for Ubuntu

Tim Gardner tim.gardner at canonical.com
Wed Sep 16 00:17:40 UTC 2009


Luis R. Rodriguez wrote:
> I'd like to further understand the reasoning for kernel ABI bumps for
> Ubuntu. From what I gather from the documentation [1] this is to keep
> binary compatibility, so that if a package is built on an older kernel
> we know when a newer kernel introduced _something_ which would make
> the old binary package not work on a kernel with a newer ABI. Does
> that sum it up?
> 
> If so I'd like to know if someone can elaborate on what could be that
> _something_.
> 
> I run old userspace on newer kernels all the time, and I don't see any
> issues upgrading, nor do I see a reason for old userspace to not work
> on newer kernels. In fact when newer kernels break old userspace that
> is a bug. An exception that I can think of is when we document
> something old for removal on
> Documentation/feature-removal-schedule.txt and then remove it from a
> new kernel. But that's an exception and these exceptions get wide
> review prior to removal.
> 
> Another change which could affect userspace is a change in the kernel
> configuration used. A clear example here is disabling
> CONFIG_WIRELESS_EXT which you can now do. This would mean you *do*
> need new userspace utilities to allow you to use nl80211. But
> distributions won't be disabling this for a long time, so
> wireless-extensions will always be available.
> 
> When someone tells me they cannot upgrade their kernel due to old
> tools, I consider this an excuse, I'd like to know if there are real
> examples you come up with which do not fit in the above mentioned
> exceptions.
> 
> [1] https://help.ubuntu.com/community/Kernel/Compile
> 
>   Luis

The ABI number in the Ubuntu version scheme is purely for internal 
kernel API consistency, i.e., to prevent being able to load external 
modules into a kernel of differing ABI. It has nothing to do with 
kernel/user-space interfaces.

As a side note, because of the way Debian naming works and the placement 
of the ABI, each ABI change produces completely new kernel binary 
packages. The ABI number is part of the package name (as well as being 
replicated in the version). This has the benefit of being able to have 
multiple kernels installed, choosing the one you want at your handy 
dandy grub boot prompt.

I am actually experimenting with running newer kernels on older 
user-space, e.g., Jaunty kernel in a Hardy user-space. You can take a 
test run for yourself by installing the Hardy linux-2.6.28 package from 
my PPA at 
https://edge.launchpad.net/~timg-tpi/+archive/ppa?field.series_filter=hardy. 
Be advised, though, my focus is purely server. Desktop folks can dang 
well upgrade to get the newest, steamy bits. Wireless is not a big 
concern for the server folks.

rtg
-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list