RepoMicrosoftMicrosoftpublished Jul 22, 2020seen 5d

microsoft/azurelinux

Python

Open original ↗

Captured source

source ↗
published Jul 22, 2020seen 5dcaptured 8hhttp 200method plain

microsoft/azurelinux

Description: General purpose Linux OS for Azure

Language: Python

License: MIT

Stars: 4982

Forks: 654

Open issues: 219

Created: 2020-07-22T19:27:14Z

Pushed: 2026-06-11T01:41:14Z

Default branch: 4.0

Fork: no

Archived: no

README:

Azure Linux 4

An open-source Linux distribution built and optimized for [Azure](https://azure.microsoft.com/), with sources derived from [Fedora Linux](https://fedoraproject.org/). Azure Linux provides a secured, reliable operating system for virtual machines, containers, and bare-metal platforms.

Azure Linux is built on a robust open-source foundation from the Fedora ecosystem and enhanced with Azure-specific innovations. This provides the familiarity of the RPM package ecosystem, while adding Azure-native security, compliance, and operational capabilities.

Key features of Azure Linux include: hardened security posture, an Azure-optimized kernel, supply chain security, native Azure integration, and a predictable lifecycle.

> This branch holds the in-development sources for Azure Linux 4. For Azure Linux 3, see the `3.0` branch.

Getting started

The links below will help you get started with Azure Linux:

| | | |---|---| | Product documentation | | | Release information | GitHub Releases | | File a bug / feedback | GitHub Issues | | Ask a question / get help | [SUPPORT.md](SUPPORT.md) | | Get started as a distro developer | [DEVELOPING.md](DEVELOPING.md) | | Contribution guidelines | [CONTRIBUTING.md](CONTRIBUTING.md) | | Report a security issue | [SECURITY.md](SECURITY.md) |

Using Azure Linux

*Note: Azure Linux 4 is still in development*

🖥️ Azure VM

To try Azure Linux in an Azure VM, please visit our Azure Linux 4.0 page on the Microsoft Marketplace.

📦 Container

To try Azure Linux base container, please use the following image reference: mcr.microsoft.com/azurelinux-beta/base/core:4.0

💿 ISO Installer

To try Azure Linux in a local VM, please download the ISO Installer: x86_64 / ARM64

Before using a downloaded ISO, [verify the checksum and signature of the ISO](./docs/verify-iso-signature-and-checksum.md).

After downloading and verifying the ISO, follow the [ISO installer instructions](./docs/iso-installer-in-local-vm.md) to install and use Azure Linux in a local VM (Hyper-V on Windows or QEMU/KVM on Linux). The ISO runs the Anaconda installer.

_Note: Support for the ISO is community based. Before filing a new bug or feature request, please search the list of Github Issues. If you are unable to find a matching issue, please report new bugs by clicking here. For additional information, refer to the [SUPPORT.md](./SUPPORT.md) file._

What's in this branch?

Azure Linux 4 is an RPM-based distribution optimized for Azure and modern cloud workloads. It is defined by a set of TOML configuration files and targeted *overlays* applied to Fedora Linux, its upstream base.

Deviations from upstream are declaratively defined and scoped to avoid unnecessary divergence or forking. This repository contains a mechanically rendered set of RPM package spec files derived from applying this layer to Fedora's upstream packaging sources.

How Azure Linux is defined

The distro is described almost entirely in TOML-based configuration files. Our open-source development tool, `azldev`, is used to apply this configuration to upstream Fedora spec files and packaging sources.

azldev.toml # Top-level entry point
├── distro/ # Distro-wide configs (e.g., sources, mock configs)
└── base/ # The "base" project: components, images, tests
└── comps/ # Component definitions (one per source package)
└── images/ # Base image definitions

Concepts/terms

  • Components (also known as source packages) are the unit of packaging.

Most are imported in source form from Fedora's upstream dist-git repositories; each component produces one or more RPMs. Azure Linux builds all components from sources to produce a full set of installable RPM packages.

  • Overlays are declarative modifications to upstream specs and sources

(e.g., patches, additions/removals, build parameters). They live alongside the component definition and always carry a description explaining *why* the change is needed. Overlays let us avoid forking upstream specs and are more flexible than plain textual patches.

  • Rendered specs are the final .spec files produced by applying overlays to upstream sources. They are mechanically generated by azldev, checked in for visibility and auditability, and live under [specs/](specs/). Treat them as derived output and not sources for editing. We use them as the input to standard RPM building services/tools (mock + rpmbuild, koji).

For a deeper tour of the tooling, the overlay system, and how to get started developing within this distro, please see [DEVELOPING.md](DEVELOPING.md).

Repository layout

| Path | What's there | |---|---| | [azldev.toml](azldev.toml) | Top-level config — includes distro/ and base/. | | [distro/](distro/) | Distro definitions (Azure Linux + upstream Fedora), shared mock configs. | | [base/](base/) | The base project: components, images, tests. | | [base/comps/](base/comps/) | Component definitions — the heart of the distro. | | [base/images/](base/images/) | Image definitions (VM, container, etc.) built from the component set using `KIWI NG`. | | [specs/](specs/) | Rendered specs — generated .spec files after overlays are applied. Checked in for visibility; do not hand-edit. | | [locks/](locks/) | Per-component lock files pinning upstream commits + input fingerprints; do not hand-edit. | | [external/schemas/](external/schemas/) | Cached copy of the JSON Schema for TOML config files; mirrored from azldev. | | [.github/](.github/) | CI workflows, plus Copilot prompts, skills, and agent instructions used by AI-assisted development. |

Getting started as a distro developer

If you want to…

Excerpt shown — open the source for the full document.