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