Top Related Projects
Azure Command-Line Interface
Microsoft Azure PowerShell
This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
This repository is for active development of the Azure SDK for JavaScript (NodeJS & Browser). For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/javascript/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-js.
Quick Overview
Azure Linux is Microsoft's open-source Linux distribution optimized for Azure cloud environments. It aims to provide a secure, performant, and cloud-native Linux experience for Azure customers, with regular updates and support from Microsoft.
Pros
- Optimized performance for Azure cloud environments
- Regular security updates and patches from Microsoft
- Seamless integration with Azure services and tools
- Built-in support for Azure-specific features and optimizations
Cons
- Limited to Azure cloud environments, not suitable for on-premises or other cloud providers
- Relatively new compared to established Linux distributions, potentially less community support
- May have a learning curve for users familiar with other Linux distributions
- Potential vendor lock-in to Microsoft's ecosystem
Getting Started
To get started with Azure Linux, follow these steps:
- Log in to the Azure Portal (https://portal.azure.com)
- Create a new virtual machine
- In the "Image" section, search for "Azure Linux" and select the desired version
- Configure the VM settings as needed
- Create and deploy the VM
- Connect to the VM using SSH or Azure Bastion
Once connected, you can start using Azure Linux like any other Linux distribution, with the added benefit of Azure-specific optimizations and features.
Competitor Comparisons
Azure Command-Line Interface
Pros of azure-cli
- More comprehensive Azure management capabilities
- Extensive documentation and community support
- Cross-platform compatibility (Windows, macOS, Linux)
Cons of azure-cli
- Larger installation footprint
- Steeper learning curve for beginners
- Frequent updates may require regular maintenance
Code Comparison
azure-cli:
from azure.cli.core import get_default_cli
az_cli = get_default_cli()
az_cli.invoke(['vm', 'list'])
azurelinux:
# No direct equivalent, as azurelinux is an operating system,
# not a command-line tool for Azure management
Key Differences
- Purpose: azure-cli is a command-line tool for managing Azure resources, while azurelinux is a Linux distribution optimized for Azure.
- Scope: azure-cli focuses on Azure service management, whereas azurelinux provides a complete operating system environment.
- Usage: azure-cli is used by administrators and developers to interact with Azure services, while azurelinux serves as a host OS for Azure VMs and containers.
Use Cases
- azure-cli: Automating Azure resource management, CI/CD pipelines, and scripting Azure operations.
- azurelinux: Running workloads on Azure VMs, containerized applications, and cloud-native services.
Microsoft Azure PowerShell
Pros of azure-powershell
- Extensive PowerShell cmdlets for managing Azure resources
- Familiar syntax for Windows administrators
- Supports both Windows PowerShell and cross-platform PowerShell Core
Cons of azure-powershell
- Limited to PowerShell scripting language
- May have a steeper learning curve for non-Windows users
- Requires PowerShell runtime to be installed
Code Comparison
azure-powershell:
# Create a new Azure VM
New-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM" -Location "EastUS" -Image "UbuntuLTS"
azurelinux:
# Create a new Azure VM using Azure CLI
az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --location eastus
Summary
azure-powershell is a comprehensive PowerShell module for managing Azure resources, offering a familiar environment for Windows administrators. It provides extensive cmdlets but is limited to the PowerShell ecosystem.
azurelinux, on the other hand, is a Linux-based solution for Azure, offering a more native experience for Linux users and developers. It provides a broader range of tools and utilities beyond just resource management, making it more versatile for Linux-centric Azure deployments.
The choice between these repositories depends on the user's preferred environment, existing skillset, and specific project requirements.
This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
Pros of azure-sdk-for-python
- Provides comprehensive Python libraries for Azure services
- Regularly updated with new Azure features and improvements
- Extensive documentation and code samples available
Cons of azure-sdk-for-python
- Larger codebase and potentially steeper learning curve
- May require more frequent updates to keep pace with Azure changes
- Python-specific, not suitable for other programming languages
Code Comparison
azure-sdk-for-python:
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
credential = DefaultAzureCredential()
compute_client = ComputeManagementClient(credential, subscription_id)
azurelinux:
#!/bin/bash
az login
az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --generate-ssh-keys
Summary
azure-sdk-for-python is a comprehensive Python library for interacting with Azure services, offering extensive functionality and regular updates. It's ideal for Python developers working with Azure but may have a steeper learning curve.
azurelinux, on the other hand, is a Linux distribution optimized for Azure. It provides a lightweight, efficient operating system for running workloads on Azure, with built-in tools and optimizations for the platform.
The choice between these repositories depends on the specific use case: azure-sdk-for-python for Python-based Azure development, and azurelinux for running optimized Linux workloads on Azure.
This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
Pros of azure-sdk-for-java
- Provides comprehensive Java SDK for Azure services
- Regularly updated with new Azure features and improvements
- Extensive documentation and code samples available
Cons of azure-sdk-for-java
- Larger codebase and potentially steeper learning curve
- Focused solely on Java development for Azure
Code Comparison
azure-sdk-for-java:
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.connectionString(connectionString)
.buildClient();
BlobContainerClient containerClient = blobServiceClient.createBlobContainer("mycontainer");
BlobClient blobClient = containerClient.getBlobClient("sample-blob");
blobClient.upload(new ByteArrayInputStream(data), data.length);
azurelinux:
# No direct code comparison available as azurelinux is an operating system
# and not a programming SDK. However, here's an example of using Azure CLI
# on Azure Linux to interact with Azure Blob Storage:
az storage blob upload --account-name myaccount --container-name mycontainer \
--name sample-blob --file /path/to/local/file
Note: The azurelinux repository is focused on providing a Linux-based operating system optimized for Azure, while azure-sdk-for-java is a software development kit for Java applications interacting with Azure services. The code comparison showcases the difference in approach between using a Java SDK and command-line tools on an Azure-optimized Linux system.
This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
Pros of azure-sdk-for-net
- Comprehensive .NET SDK for Azure services
- Regularly updated with new Azure features
- Extensive documentation and samples
Cons of azure-sdk-for-net
- Larger codebase and potential complexity
- Specific to .NET development
- May require more frequent updates to stay current with Azure changes
Code Comparison
azure-sdk-for-net:
using Azure.Storage.Blobs;
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
await containerClient.CreateIfNotExistsAsync();
azurelinux:
#!/bin/bash
# Example Azure CLI command for Azure Linux
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204
Key Differences
- azure-sdk-for-net focuses on .NET development for Azure services
- azurelinux is a Linux distribution optimized for Azure
- azure-sdk-for-net provides programmatic access to Azure services
- azurelinux is an operating system designed to run on Azure VMs
Use Cases
- azure-sdk-for-net: Developing .NET applications that interact with Azure services
- azurelinux: Running Linux workloads on Azure with optimized performance and security
This repository is for active development of the Azure SDK for JavaScript (NodeJS & Browser). For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/javascript/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-js.
Pros of azure-sdk-for-js
- Focused on JavaScript/TypeScript development for Azure services
- Extensive documentation and examples for various Azure services
- Regular updates and active community support
Cons of azure-sdk-for-js
- Limited to Azure-specific development, not a general-purpose Linux distribution
- Requires knowledge of JavaScript/TypeScript and Azure services
- May have a steeper learning curve for developers new to Azure
Code Comparison
azure-sdk-for-js:
import { BlobServiceClient } from "@azure/storage-blob";
const blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);
const containerClient = blobServiceClient.getContainerClient(containerName);
await containerClient.uploadBlockBlob(blobName, data, data.length);
azurelinux:
# No direct code comparison available as azurelinux is an operating system,
# not a programming library. However, here's an example of using Azure CLI
# on Azure Linux to interact with Azure services:
az storage blob upload --account-name myaccount --container-name mycontainer --name myblob --file /path/to/file
Summary
azure-sdk-for-js is a JavaScript/TypeScript SDK for Azure services, while azurelinux is a Linux distribution optimized for Azure. The former is ideal for developers building Azure-integrated applications, while the latter is suitable for running Linux workloads on Azure. Choose based on your specific development or deployment needs.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Azure Linux 4
An open-source Linux distribution built and optimized for Azure, with sources derived from Fedora Linux. 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.0branch.
Getting started
The links below will help you get started with Azure Linux:
| Product documentation | https://aka.ms/azurelinux |
| Release information | GitHub Releases |
| File a bug / feedback | GitHub Issues |
| Ask a question / get help | SUPPORT.md |
| Get started as a distro developer | DEVELOPING.md |
| Contribution guidelines | CONTRIBUTING.md |
| Report a security issue | 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.
After downloading and verifying the ISO, follow the ISO installer instructions 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 file.
ð§ Windows Subsystem for Linux (WSL)
To try Azure Linux on the Windows Subsystem for Linux, please download the .wsl distribution package for your architecture:
Before installing a downloaded package, verify the checksum and signature of the .wsl package.
Install the distribution using wsl:
wsl --install --from-file "C:\Path\To\AzureLinux-4.0-ARCH.wsl"
To list all the installed distributions:
wsl --list
To use the distro:
wsl -d AzureLinux-4
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
descriptionexplaining 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
.specfiles produced by applying overlays to upstream sources. They are mechanically generated byazldev, checked in for visibility and auditability, and live underspecs/. 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.
Repository layout
| Path | What's there |
|---|---|
azldev.toml | Top-level config â includes distro/ and base/. |
distro/ | Distro definitions (Azure Linux + upstream Fedora), shared mock configs. |
base/ | The base project: components, images, tests. |
base/comps/ | Component definitions â the heart of the distro. |
base/images/ | Image definitions (VM, container, etc.) built from the component set using KIWI NG. |
specs/ | Rendered specs â generated .spec files after overlays are applied. Checked in for visibility; do not hand-edit. |
locks/ | Per-component lock files pinning upstream commits + input fingerprints; do not hand-edit. |
external/schemas/ | Cached copy of the JSON Schema for TOML config files; mirrored from azldev. |
.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 build or develop within the distro, start with DEVELOPING.md. Don't worry about this if you're primarily looking to use the distro.
Engagement & support
- Bugs and feature requests: file a GitHub issue. Please search existing issues first to avoid duplicates. Share as much as you can with us regarding what you tried and what you're seeing.
- Support: see SUPPORT.md for the full set of channels.
- Security vulnerabilities: do not open a public issue. Follow the process in SECURITY.md to report privately to the Microsoft Security Response Center.
- Pull requests: see CONTRIBUTING.md for the patch-series workflow, commit-message conventions, and review expectations.
- Community calls: Azure Linux hosts community calls where users can connect with our product and support teams, discuss new features, share feedback, and learn how others are using Azure Linux.
Each session also includes a featured demo. Upcoming community calls (08:00â09:00 PT):
- 2026-07-23 â Click to join
- 2026-09-24 â Click to join
- 2026-11-19 â Click to join
- 2027-01-28 â Click to join
- 2027-03-25 â Click to join
- 2027-05-27 â Click to join
This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third parties' policies.
Acknowledgments
Any Linux distribution, including Azure Linux, benefits from contributions by the open-source software community. We gratefully acknowledge all contributions made from the broader community.
We specifically want to thank the Fedora Project for providing us with a strong foundation across components, spec files, tools, services, and community. We are proud to participate and contribute to this community.
The Azure Linux penguin icon is inspired by the Linux mascot ("Tux"), created by Larry Ewing.
License
Unless otherwise specified, the content of the Azure Linux distribution and this repository are distributed under an MIT license.
Individual packages within the distribution are distributed under licenses specified in their package spec files and sources.
This repository contains files derived from Fedora Linux. For details on the licensing terms for the Fedora Project, please consult fedoraproject.org.
Top Related Projects
Azure Command-Line Interface
Microsoft Azure PowerShell
This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
This repository is for active development of the Azure SDK for JavaScript (NodeJS & Browser). For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/javascript/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-js.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot