2

I can understand why keeping older kernels around might be good for backward compatibility. But I can't figure why these kernels need to be updated. The hardware isn't changing. It seems to suggest that past implementations were incomplete or full of bugs.

2 Answers2

11

Seems to suggest that past implementations where incomplete or full of bugs.

Any complex software has bugs or is incomplete in some regard. You can for instance read the changelog for the 4.19 Long Term Support kernel. Many bugs only affect a specific use case, and may not be a widespread problem. Others may impact more systems.

There's also the discovery of hardware in the wild that somehow doesn't work like it should - and the kernel maintainers work around it in software. This requires updates.

So the release of new versions of kernels doesn't indicate that it's bad software. It indicates that it's properly maintained software that gets fixes and updates.

vidarlo
  • 22,691
  • 2
    Very well said. – user535733 Feb 01 '20 at 19:18
  • Although 100% true that any good software is regularly maintained, Unix/Linux is constantly evolving, with regular releases of new ideas and features. This evolution is generally fairly slow and careful and so tends to be done in smaller bites. If you google "recent linux changes" there's a wealth of information - many hardware-related changes, but also filesystem improvements, performance tuning, cryptography, "virtual" machines, cryptography - too much to list her basically! – Brian C Feb 03 '20 at 02:34
4

New hardware is supported in major kernel numbering changes. For example as of today it would to 5.3 to 5.4 to 5.5, etc. Besides new hardware support bug fixes will also be in these major kernel numbering releases. However bug fixes will also be released at the same time to older LTS (Long Term Support) kernels.

I'm on LTS kernel version 4.14 which was recently upgraded to minor version .168. Looking at the release notes we see a frequent contributor here in Ask Ubuntu has written some bug fixes for 4.14.168:

Colin Ian King (14):
      pcrypt: use format specifier in kobject_add
      staging: most: cdev: add missing check for cdev_add failure
      rtc: ds1672: fix unintended sign extension
      rtc: 88pm860x: fix unintended sign extension
      rtc: 88pm80x: fix unintended sign extension
      rtc: pm8xxx: fix unintended sign extension
      drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON
      drm/nouveau/pmu: don't print reply values if exec is false
      platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer
      media: vivid: fix incorrect assignment operation when setting video mode
      scsi: libfc: fix null pointer dereference on a null lport
      ext4: set error return correctly when ext4_htree_store_dirent fails
      bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
      iio: dac: ad5380: fix incorrect assignment to val

Although my system is extremely stable I'm none-the-less interested in this bug fix:

platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer

Even though my Alienware laptop is two years old I would like to have this bug fix applied "just in case".

Besides bug fixes there are security fixes to consider:

In the last security fix the problem was with Intel chips predictive branching technology and was around for many years. Besides Linux, Windows and Mac were effected as well.