SSD Nodes Learn 🎉 VPS from $4.99/mo
Guides Matt ConnorBy Matt Connor · Updated 2026-08-12

From Red Hat to CentOS to Rocky and AlmaLinux

How Red Hat Linux split into Fedora and RHEL, why CentOS existed, what the 2020 CentOS Stream change broke, and where Rocky Linux and AlmaLinux came from.

Why there are two free rebuilds of Red Hat Enterprise Linux

Rocky Linux and AlmaLinux exist because Red Hat ended CentOS Linux years before the date its users had planned around. CentOS was a free, unbranded rebuild of Red Hat Enterprise Linux (RHEL), and it carried the same long support window. On December 8, 2020 the CentOS Project announced that CentOS Linux 8 would stop at the end of 2021 instead of running to 2029. Two replacement projects were announced within a week of that post, and both still ship today.

That announcement only makes sense once you know what CentOS was, and why a free copy of a commercial product was allowed to exist at all. The thread starts in 2003.

Where Red Hat Linux went in 2003: Fedora and RHEL

Red Hat's original product was a boxed distribution called Red Hat Linux. The first non-beta release came in May 1995. The last one, Red Hat Linux 9, shipped on March 31, 2003 and reached end of life on April 30, 2004.

By then Red Hat was selling to companies, and companies wanted something the boxed product could not give them: a version that stands still for years, with security fixes and no surprise upgrades. Red Hat built that as Red Hat Linux Advanced Server, which became Red Hat Enterprise Linux 2.1 in March 2002. RHEL is sold as a subscription, charged per system per year. The subscription buys updates and support. It also buys certification: hardware vendors and commercial software vendors test against RHEL specifically, and they name it in their support terms.

The free line then had no clear job, so Red Hat merged it with an outside community project. The Fedora Project and the Red Hat Project merged formally on September 22, 2003. Fedora became the fast, free distribution where new work lands first. RHEL became the slow, paid one assembled from it. Work has flowed in that direction ever since: Fedora leads, RHEL follows.

The split left a gap. Many people wanted RHEL's ten-year lifecycle without a per-server bill, and Fedora could not fill it, because a Fedora release is supported for roughly thirteen months.

Why was a free rebuild of RHEL possible?

RHEL is built almost entirely from software under free licences, and the GNU General Public License (GPL) is the one that matters here. It requires that anyone who receives the binaries can also obtain the matching source. Red Hat met that duty in public, publishing source RPMs (SRPMs, the packaged source for each component) on a public server and later in the git.centos.org repositories.

Source is not the whole product. Two parts of RHEL were never free to copy. The Red Hat trademarks belong to Red Hat, so a rebuilder must strip every logo and every mention of the name. The paid services also stay behind the paywall: the update servers, the support contract, the certification process, and the errata that describe each fix.

The recipe was easy to describe. Take the published sources, remove the branding, rebuild them, and publish the result. The goal was bug-for-bug compatibility, which means the rebuild carries the same patches and the same behaviour as RHEL, bugs included. That precision was the point, because commercial software is certified against RHEL. If the rebuild behaves identically, that software runs on it, although the vendor will not support it there.

What was CentOS for?

CentOS stands for Community ENTerprise Operating System. It grew out of a project called cAos Linux, started by Gregory Kurtzer in 2002. The first CentOS release appeared on May 14, 2004, numbered 2, because it was built from RHEL 2.1AS.

Its appeal was the lifecycle. Each CentOS release tracked RHEL's ten-year support window, and it cost nothing. Hosting companies used it for default images, universities ran it on clusters, appliance vendors shipped it inside their products, and control panels assumed it was there. If you rented a virtual private server between roughly 2006 and 2020, CentOS was on the operating system menu, and it was often the default.

CentOS Linux 7 shows the promise working as advertised. It was released on July 7, 2014, and its security support ran to June 30, 2024, a few days short of ten full years. That record is why people were comfortable building ten-year plans on the next release.

What changed when CentOS joined Red Hat in 2014

On January 7, 2014, Red Hat and the CentOS Project announced that they were joining forces. Red Hat's chief technology officer at the time, Brian Stevens, and CentOS lead developer Karanbir Singh both spoke in the announcement. Red Hat contributed staff and infrastructure, several core CentOS developers became Red Hat employees, and the project gained a formal governing board.

For users the visible effects were good. Builds arrived faster after each RHEL release. Sources moved to git.centos.org. Special Interest Groups produced extra content on top of the base distribution, such as the virtualisation and storage stacks.

The structural change was quieter, and it is the one that mattered six years later. The project that rebuilt RHEL was now funded and largely staffed by the company that sold RHEL. Nothing in that arrangement obliged Red Hat to keep the rebuild running.

Why did CentOS Linux 8 end in 2021?

CentOS Linux 8 was released on September 24, 2019. RHEL 8 was supported until May 31, 2029, so CentOS Linux 8 was read as good until 2029 as well.

On December 8, 2020, Rich Bowen published "CentOS Project shifts focus to CentOS Stream" on the CentOS blog. CentOS Linux 8 would end on December 31, 2021. CentOS Linux 7 would keep its original date of June 30, 2024. The reason given was that the future of the project was CentOS Stream.

ChartCentOS Linux 8 support window in years, announced at release versus delivered
The data behind this chart
[
  {
    "label": "Announced at release, September 2019",
    "support_window": 9.7
  },
  {
    "label": "Delivered, ended December 2021",
    "support_window": 2.3
  }
]

CentOS Linux 8 shipped with an expected support window of about 9.7 years. It delivered about 2.3. No feature was removed and no code got worse. What people lost was a date they had already committed to, on machines already in production, with a little over a year of notice. Moving an operating system across a fleet is planned work, and this became unplanned work with a deadline attached.

What is CentOS Stream, exactly?

Most coverage still describes CentOS Stream as the thing that cancelled CentOS Linux. The timing is right and the description is wrong, because the two products point in opposite directions.

CentOS Linux was downstream of RHEL. Red Hat shipped a RHEL minor release, and CentOS rebuilt it afterwards. The copy always arrived after the original.

CentOS Stream is upstream of RHEL. It is the public branch where the next RHEL minor release is assembled. Work flows from Fedora into CentOS Stream and then into RHEL, so a package appears in Stream first and reaches a RHEL minor release later. Stream is delivered continuously, so it does not stand still between minor versions the way a shipped RHEL does.

That makes Stream useful for jobs CentOS Linux could never do. If you maintain software that has to keep working on the next RHEL minor release, Stream shows you that release months ahead. If you want a bug fixed in RHEL, Stream is a place you can send the patch, which a downstream rebuild never offered. Red Hat's argument in 2020 was that this turns a passive copy into a distribution the community can actually change.

Stream is still a poor replacement for what CentOS Linux users wanted, and its support window says so. CentOS Stream 10 was released on December 12, 2024 with a window of about five years, against RHEL's ten. A team running a fleet on a ten-year plan did not receive a faster version of that plan. They received a different product with a different purpose.

Where Rocky Linux and AlmaLinux came from

Rocky Linux was announced on December 8, 2020, the same day as the CentOS post, by Gregory Kurtzer, who started the project CentOS grew out of. The name is a tribute to Rocky McGaugh, an early CentOS co-founder. The project is governed by the Rocky Enterprise Software Foundation (RESF), and its main commercial backer is CIQ, a company Kurtzer founded. A release candidate appeared at the end of April 2021, and the first stable release, Rocky Linux 8.4 "Green Obsidian", followed on June 21, 2021.

AlmaLinux came from CloudLinux, a company that already sold a RHEL-derived distribution to hosting providers. On December 15, 2020, CloudLinux committed more than one million US dollars a year to a free RHEL rebuild, then codenamed Project Lenix. The name AlmaLinux was announced on January 12, 2021, a beta arrived on February 1, and AlmaLinux 8.3 "Purple Manul" was released on March 30, 2021. On that same day, ownership passed to the AlmaLinux OS Foundation, a non-profit that holds the trademark and runs the project's board.

The two projects solved the same problem with different governance. Rocky came from the person who started CentOS, with a company built around it. AlmaLinux came from a company that handed the trademark to a foundation on the day it shipped. For two years the practical difference was small, and both delivered what CentOS Linux users had lost.

What Red Hat changed about RHEL sources in 2023

On June 21, 2023, Mike McGrath, then vice president of core platforms at Red Hat, published "Furthering the evolution of CentOS Stream". The key sentence said that CentOS Stream would become the sole repository for public RHEL related source code releases. The RHEL sources that had been pushed to git.centos.org stopped being pushed there.

Red Hat customers and partners keep access to RHEL sources through the customer portal, which satisfies the GPL, because the obligation runs to the people who received the binaries. What changed was the public route. The package-by-package record of exactly what shipped in a given RHEL minor release was no longer posted openly, and CentOS Stream sits ahead of RHEL rather than level with it, so a rebuilder working only from Stream cannot reproduce a released minor version exactly.

Red Hat's position was that Stream is the upstream, and that public source belongs upstream. The rebuild projects' position was that the change removed the material they had built on since 2004. Both descriptions are accurate. The disagreement is about what the licence is for, rather than about what it says.

How the rebuilds responded, and what OpenELA is

Rocky Linux answered first. In a post dated June 29, 2023, the project said it would keep obtaining RHEL sources through routes that carry no extra agreement: Red Hat's Universal Base Image (UBI) container images, and pay-per-use RHEL instances in public clouds. Anyone who receives those binaries holds the GPL right to the corresponding source. Rocky kept its goal of tracking RHEL release for release.

AlmaLinux answered differently. In July 2023 its board, chaired by benny Vasquez, dropped the goal of being one-to-one with RHEL and adopted application binary interface (ABI) compatibility instead. ABI compatibility means software built for RHEL runs unmodified on AlmaLinux, without the two being identical builds. The trade bought freedom. AlmaLinux can ship a fix before RHEL does, and it can keep supporting hardware that RHEL has dropped.

Two larger vendors moved as well. On July 11, 2023, SUSE said it would fork publicly available RHEL and invest more than ten million US dollars in a compatible distribution. Oracle, which has shipped Oracle Linux as a RHEL-compatible product since 2006, published its own response in the same week.

On August 10, 2023, CIQ, Oracle and SUSE announced the Open Enterprise Linux Association (OpenELA). It is a trade association with one job: publish enterprise Linux sources so that RHEL-compatible distributions can keep being built, and keep those sources free to redistribute. In November 2023 it announced its governance documents and the availability of code. AlmaLinux did not join, which follows from its ABI decision, because it no longer needs an exact source feed.

Which one should you run on a server today?

ChartSupport window in years published by each project for its version 10 release, as of August 2026
The data behind this chart
[
  {
    "distro": "RHEL 10",
    "support_window": 10,
    "notes": "Released May 2025, supported to May 2035"
  },
  {
    "distro": "AlmaLinux 10",
    "support_window": 10,
    "notes": "Released May 2025, supported to May 2035"
  },
  {
    "distro": "Rocky Linux 10",
    "support_window": 10,
    "notes": "Released June 2025, supported to May 2035"
  },
  {
    "distro": "CentOS Stream 10",
    "support_window": 5,
    "notes": "Released December 2024, supported to May 2030"
  }
]

The version 10 releases show where the story landed. RHEL 10 arrived on May 20, 2025, AlmaLinux 10 "Purple Lion" on May 27, 2025, and Rocky Linux 10 "Red Quartz" on June 11, 2025. Each of those publishes a 10 year window. CentOS Stream 10 publishes 5 years, which is the honest signal that it is a development branch and not a frozen target.

The projects have also started to differ in ways you can trip over. RHEL 10 raised its hardware baseline to x86-64-v3, a microarchitecture level that requires newer CPU instructions such as AVX2. Rocky Linux 10 followed that baseline and dropped x86-64-v2. AlmaLinux 10 ships x86-64-v3 by default and publishes a separate x86-64-v2 build for older processors. On a cheap VPS running on an older host CPU, that single decision changes whether the system installs.

Four practical readings of the timeline:

  • If you need the vendor relationship, buy RHEL. The subscription is the product, and it carries the certifications and the support line that no rebuild can offer.
  • If you want what CentOS Linux gave you, AlmaLinux and Rocky Linux both provide it, free and with a ten-year window.
  • If you write software that must run on RHEL, or you want your patches to reach it, CentOS Stream is the right target, and the shorter window is the price.
  • If none of that applies, the Debian side of the world answers the same lifecycle question in its own way, and the choice between Ubuntu LTS and interim releases is the version of this decision you meet there.

The lesson underneath the timeline is about governance rather than code. CentOS Linux was good software, and it still ended early, because it was funded by the company whose product it copied. When you choose a distribution for a machine you expect to run for a decade, read who pays for it and who owns the trademark. AlmaLinux keeps its trademark in a foundation. Rocky keeps its in the RESF, with CIQ as the commercial sponsor. Both projects publish those answers, which is more than a CentOS user could check in 2019.

This lands on you directly if you rent servers. On an unmanaged VPS you apply the updates yourself, so an early end of life becomes your migration to plan and your time to spend. If the operating system question is still open at a wider level, the comparison between Linux and Windows Server comes before any of this.

FAQ

Is CentOS dead?

CentOS Linux is discontinued. CentOS Linux 8 ended on December 31, 2021 and CentOS Linux 7 ended on June 30, 2024, so neither receives security updates any more. The CentOS Project itself continues and produces CentOS Stream, which is a different product: the public development branch that feeds Red Hat Enterprise Linux. If a server still runs CentOS Linux, it is unpatched, and the common migration targets are AlmaLinux and Rocky Linux.

What is the difference between CentOS Stream and CentOS Linux?

Direction. CentOS Linux was downstream: Red Hat shipped a RHEL minor release and CentOS rebuilt it afterwards. CentOS Stream is upstream: it is where the next RHEL minor release is assembled, so its content arrives before RHEL rather than after. Stream is updated continuously instead of frozen, and CentOS Stream 10 carries a support window of about five years against RHEL's ten.

Should I choose Rocky Linux or AlmaLinux?

Both are free, both track RHEL closely, and both publish a ten-year window, so for most servers either one works. The practical differences come from their 2023 decisions. Rocky aims to match RHEL release for release, rebuilding from sources it obtains through UBI container images and public cloud instances. AlmaLinux aims for ABI compatibility, which lets it patch earlier and keep hardware support that RHEL has dropped. AlmaLinux 10 publishes an x86-64-v2 build for older CPUs and Rocky Linux 10 requires x86-64-v3, so on older hardware that one detail can decide it.

Did Red Hat break the GPL in 2023?

No court has said so, and the GPL obligation runs to the people who receive the binaries. Red Hat still supplies its customers with the matching sources. The argument is about what happens next: a subscription can be declined for renewal, and the rebuild projects read that as pressure not to use the redistribution right the licence grants them. That is why Rocky moved to source routes that carry no subscription agreement, and why OpenELA was formed to publish sources openly.

Why did Red Hat end CentOS Linux at all?

The stated reason in the December 8, 2020 announcement was that the future of the project was CentOS Stream, and that a rebuild which only copied RHEL gave the community no way to influence it. Many users read a commercial motive into it as well, since CentOS Linux was a free version of a product Red Hat sells, running in production at organisations that could afford a subscription. Red Hat's own posts address the development model rather than that reading.