41

No Semantic Versioning in the Linux Kernel

Linux Kernel Versioning: X.Y.Z

  • X: Incremented when Y reaches 20
  • Y: Incremented with every release by Linus Torvalds
  • Z: Incremented with every release by the stable team

Internal Changes Happen Constantly

  • “major” number is irrelevant to compatibility
  • Big API changes can happen in any time
  • The user-visible ABI is set in stone
While Linux version numbers look like semantic versioning, they are not. The version consists of three parts, X.Y.Z, where Z is optional. With every release, Linus Torvalds increments Y; when Y reaches 20, X is incremented. Why 20? Linus jokingly stated he can only count as high as he has fingers and toes. The key takeaway: Every mainline release can introduce massive internal changes, meaning your out-of-tree modifications and drivers may break. This is why it is critical to upstream code as much as possible, or keep your changes well-structured to adopt newer kernels easily. After Linus publishes a release, the stable team takes over. With every stable update, Z is incremented. Usually, a stable release does not significantly change internal structures, though exceptions have occurred in the past.
Icon with a waving hand

Get in touch

sigma star gmbh
Eduard-Bodem-Gasse 6, 1st floor
6020 Innsbruck | Austria

sigma star gmbh logo