›
Chapter 2 – Part 2: Dev Cycle
›
Part 3: Types of Kernel Trees
›
Part 4: Getting the Kernel Source →
Types of Linux Kernel Source Trees
LTS, Stable, Mainline, RC — what they are and which one you should use
- The different types of kernel release trees that exist
- What makes a kernel LTS (Long-Term Support) and why it matters
- The difference between mainline, stable, LTS, and EOL kernels
- How to read a kernel version number like
6.6.30 - Which kernel type to choose depending on your situation
1. Not All Kernels Are Created Equal
When you visit the official Linux kernel website kernel.org, you don’t just see one kernel to download. You see several, each labelled differently — mainline, stable, longterm, EOL. This can be confusing for newcomers.
The reason is simple: different users have different needs. A kernel developer experimenting with new features needs something very different from an engineer building a router that must stay secure for 5 years. The kernel project has organised its releases to serve all these needs.
A car company sells a concept car (mainline/bleeding-edge), a regular production model (stable), and a fleet edition for taxis and police cars that gets serviced for 10 years (LTS). Same underlying technology, very different maintenance commitments. The Linux kernel works the same way.
2. How to Read a Kernel Version Number
Before we look at the tree types, let’s quickly decode how Linux kernel version numbers work. This removes a lot of confusion.
6.1Brand new stable release, no patches yet (also an LTS kernel)
6.1.90Same 6.1 kernel with 90 rounds of bug/security patches applied
6.10-rc3Release candidate 3 of the upcoming 6.10 kernel — not yet stable
3. The Different Types of Kernel Trees
Here are the main kernel tree types, ordered from least stable to most stable — which also maps from shortest lifespan to longest.
This is Linus Torvalds’s own tree — the very tip of Linux development. It contains the latest features that have been merged during the merge window, followed by a series of -rc releases as they get stabilised.
Who uses it: Kernel developers and driver authors who need to develop and test against the very latest code. If you are writing a new driver that you plan to submit upstream, you should develop against mainline.
Expect rough edges, regressions, and changes that break things.
A stable kernel is the freshly-released version after its rc phase is complete. For example, version 6.9 is a “stable” release. The stable team then applies important bug and security fixes, creating point releases like 6.9.1, 6.9.2, and so on.
Who uses it: Developers who want recent hardware support and new features, but on a version that has gone through proper testing. Desktop Linux users often run stable kernels. However, it has a short life — usually only maintained until the next stable kernel comes out (8–12 weeks).
An LTS kernel is a specially designated stable release that gets an extended maintenance commitment — a minimum of 2 years, often 4–6 years or more. Only critical bug fixes and security patches are backported. No new features are ever added.
Why it matters: Embedded Linux products (routers, cameras, industrial controllers, medical devices) often have long lifespans — 5 to 10 years in the field. The engineering team cannot upgrade the kernel every 3 months. LTS kernels give them a stable, well-maintained foundation for the entire product lifetime.
Who decides? The kernel maintainers designate certain releases as LTS based on community need and the willingness of major stakeholders (like Google for Android, embedded Linux vendors) to commit resources to maintaining them. Historically, roughly one kernel per year is designated LTS.
A kernel that has reached its EOL date is no longer maintained. No more security fixes, no more bug fixes, nothing. If a critical vulnerability is found, users of EOL kernels are on their own. Running an EOL kernel in production — especially one connected to a network — is a serious security risk.
They are archived for historical reference only.
4. Side-by-Side Comparison
| Type | Stability | Lifespan | Best for |
|---|---|---|---|
| Mainline / RC | Low | Weeks | Kernel developers, upstream contribution |
| Stable | Medium | ~3 months | Desktop users, testing new features |
| LTS | High | 2–6+ years | Embedded products, production servers, Android |
| EOL | None | Expired | Historical research only — never for live systems |
5. LTS Kernels — A Closer Look
LTS kernels deserve extra attention because as an embedded engineer, this is what you will likely work with most. Let’s understand them more deeply.
What makes it LTS?
There is no magic in the kernel release itself that makes it LTS. It is simply a decision by the community and the kernel maintainers. They look at which kernel versions are being widely adopted by major stakeholders — Android (Google), embedded Linux vendors like Yocto Project, major server distributions — and they commit to maintaining those versions for an extended period.
Once designated as LTS, only the following types of patches go in: security fixes, critical bug fixes, and important hardware enablement patches. New features are never added to an LTS kernel — that would defeat the purpose.
How long does LTS support last?
The minimum commitment is 2 years, but many LTS kernels get extended well beyond that. The deciding factor is often whether large organisations are willing to fund the maintenance effort. Android has historically been a major driver — Google’s Android release is pinned to specific LTS kernels, which creates strong incentive to keep those kernels maintained.
| Kernel | Released | EOL Date | Support Period |
|---|---|---|---|
| 5.4 LTS | Nov 2019 | Dec 2025 |
~6 years |
| 5.10 LTS | Dec 2020 | Dec 2026 |
~6 years |
| 5.15 LTS | Oct 2021 | Oct 2026 |
~5 years |
| 6.1 LTS | Dec 2022 | Dec 2026 |
~4 years |
| 6.6 LTS | Oct 2023 | Dec 2026 |
~3 years |
6. Which Kernel Should You Use? A Decision Guide
Here’s a simple guide to help you pick the right kernel for your situation:
Visit kernel.org — the official kernel website. The main page always shows currently active stable and LTS kernels with their version numbers and EOL dates. A yellow background means “latest stable”, a green background means “longterm (LTS)”.
You can also check kernel.org/releases.json programmatically if you are building tools that need to track kernel versions.
🎤 Interview Questions
- Kernel trees are ordered: mainline → stable → LTS → EOL (by increasing lifespan and stability)
- Version numbers follow major.minor.patchlevel — e.g.
6.6.42 - LTS kernels receive bug and security fixes for 2–6+ years — no new features ever
- For embedded products, always choose an active LTS kernel with an EOL date beyond your product’s lifespan
- For upstream kernel development, always target mainline
- Never run an EOL kernel on any production or networked system
