Convert Figma logo to code with AI

microsoft logoWSL

Windows Subsystem for Linux

29,008
1,405
29,008
1,049

Top Related Projects

Multipass orchestrates virtual Ubuntu instances

24,086

Complete container management platform

:warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning:

69,630

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

An open and reliable container runtime

115,996

Production-Grade Container Scheduling and Management

Quick Overview

The microsoft/WSL repository is the official GitHub home for Windows Subsystem for Linux (WSL). WSL allows users to run a GNU/Linux environment directly on Windows, without the overhead of a traditional virtual machine or dual-boot setup. It provides a seamless integration between Windows and Linux, enabling developers to use Linux tools and workflows on their Windows machines.

Pros

  • Enables running Linux distributions natively on Windows without virtualization
  • Provides seamless integration between Windows and Linux environments
  • Offers access to a wide range of Linux tools and utilities directly from Windows
  • Improves developer productivity by allowing use of Linux-based workflows on Windows

Cons

  • May have performance limitations compared to native Linux installations
  • Some advanced Linux features or specific hardware support might be limited
  • Potential compatibility issues with certain Linux applications or drivers
  • Learning curve for Windows users unfamiliar with Linux environments

Getting Started

To get started with WSL, follow these steps:

  1. Enable WSL in Windows:

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
  2. Enable Virtual Machine feature:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  3. Restart your computer

  4. Set WSL 2 as the default version:

    wsl --set-default-version 2
    
  5. Install a Linux distribution from the Microsoft Store (e.g., Ubuntu, Debian, Fedora)

  6. Launch the installed Linux distribution and complete the initial setup

For more detailed instructions and troubleshooting, refer to the official Microsoft documentation.

Competitor Comparisons

Multipass orchestrates virtual Ubuntu instances

Pros of Multipass

  • Cross-platform support (Windows, macOS, Linux)
  • Lightweight and fast VM creation
  • Easy command-line interface for managing VMs

Cons of Multipass

  • Limited to Ubuntu-based VMs
  • Less integrated with the host OS compared to WSL
  • Fewer advanced features for developers

Code Comparison

Multipass:

multipass launch --name myvm
multipass shell myvm

WSL:

wsl --install -d Ubuntu
wsl

Summary

Multipass offers a lightweight, cross-platform solution for creating and managing Ubuntu-based VMs. It's easy to use and provides a consistent experience across different operating systems. However, it lacks the deep integration with the host OS that WSL offers on Windows.

WSL, on the other hand, provides a more seamless experience for developers working on Windows, with better filesystem integration and support for various Linux distributions. It's specifically designed for Windows and offers more advanced features for developers, but it's not available on other platforms.

The choice between Multipass and WSL depends on your specific needs, preferred operating system, and development workflow.

24,086

Complete container management platform

Pros of Rancher

  • Provides a comprehensive container management platform for multiple Kubernetes clusters
  • Offers a user-friendly web interface for managing containerized applications
  • Supports multi-cloud and hybrid cloud deployments

Cons of Rancher

  • More complex setup and maintenance compared to WSL
  • Requires additional infrastructure and resources to run
  • Steeper learning curve for users new to container orchestration

Code Comparison

WSL (PowerShell):

wsl --install
wsl --set-default-version 2
wsl --install -d Ubuntu

Rancher (Docker):

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  --privileged \
  rancher/rancher:latest

Summary

WSL focuses on providing a Linux environment within Windows, while Rancher is a container management platform for Kubernetes. WSL is simpler to set up and use for individual developers, whereas Rancher offers more advanced features for managing containerized applications at scale. The choice between the two depends on the specific use case and requirements of the project or organization.

:warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning:

Pros of Docker CE

  • Cross-platform compatibility (Linux, macOS, Windows)
  • Extensive ecosystem of pre-built container images
  • More mature and feature-rich containerization solution

Cons of Docker CE

  • Higher resource overhead compared to WSL
  • More complex setup and configuration process
  • Potential security concerns with container isolation

Code Comparison

WSL (Bash script):

#!/bin/bash
echo "Hello from WSL"
ls -l /mnt/c/Users

Docker CE (Dockerfile):

FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl
CMD ["curl", "https://example.com"]

WSL focuses on providing a Linux environment within Windows, allowing direct access to the Windows file system. Docker CE, on the other hand, emphasizes containerization and isolation, making it easier to package and distribute applications across different environments.

While WSL is primarily designed for developers working on Windows machines, Docker CE offers a more comprehensive solution for containerizing applications and managing them across various platforms. WSL provides a lighter-weight option for running Linux tools on Windows, whereas Docker CE offers a more robust ecosystem for building, shipping, and running containerized applications.

69,630

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Pros of Moby

  • More mature and widely adopted in the container ecosystem
  • Highly extensible and modular architecture
  • Supports a broader range of operating systems and platforms

Cons of Moby

  • Steeper learning curve for beginners
  • Requires more system resources compared to WSL
  • Can be complex to set up and configure for specific use cases

Code Comparison

WSL (PowerShell):

wsl --install
wsl --set-default-version 2
wsl --install -d Ubuntu

Moby (Docker CLI):

docker run -d --name my_container ubuntu
docker exec -it my_container bash
docker build -t my_image .

Key Differences

  • WSL focuses on running Linux environments on Windows, while Moby is a container platform
  • WSL integrates more seamlessly with Windows, whereas Moby provides cross-platform containerization
  • WSL is primarily for development and testing, while Moby is used for both development and production deployments

Use Cases

WSL:

  • Windows developers working on Linux-based projects
  • Running Linux tools and utilities on Windows
  • Testing cross-platform compatibility

Moby:

  • Building and deploying containerized applications
  • Creating portable and reproducible development environments
  • Orchestrating microservices architectures

An open and reliable container runtime

Pros of containerd

  • Platform-agnostic container runtime, supporting multiple operating systems
  • Lightweight and modular design, allowing for easier integration and customization
  • Active community and widespread adoption in cloud-native ecosystems

Cons of containerd

  • Primarily focused on container runtime, lacking the full Linux subsystem functionality
  • Steeper learning curve for users not familiar with container technologies
  • May require additional tools for a complete development environment

Code comparison

WSL:

wsl --install
wsl --set-default-version 2
wsl --install -d Ubuntu

containerd:

sudo apt-get update
sudo apt-get install containerd
sudo systemctl start containerd

Summary

WSL provides a more comprehensive Linux environment on Windows, while containerd focuses on container runtime functionality across platforms. WSL is easier for Windows users to set up and use, but containerd offers greater flexibility and is more suitable for container-centric workflows. The choice between them depends on specific use cases and development requirements.

115,996

Production-Grade Container Scheduling and Management

Pros of Kubernetes

  • Highly scalable and designed for managing containerized applications across multiple hosts
  • Extensive ecosystem with a wide range of tools and integrations
  • Supports complex orchestration and automated deployment scenarios

Cons of Kubernetes

  • Steeper learning curve and more complex setup compared to WSL
  • Requires more resources and overhead for small-scale development environments
  • May be overkill for simple local development tasks

Code Comparison

WSL (PowerShell):

wsl --install
wsl --set-default-version 2
wsl --install -d Ubuntu

Kubernetes (kubectl):

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl scale deployment nginx --replicas=3

Summary

While WSL focuses on providing a Linux environment within Windows, Kubernetes is designed for container orchestration at scale. WSL is more suitable for local development and testing, whereas Kubernetes excels in managing complex, distributed applications across multiple hosts. The choice between the two depends on the specific needs of the project and the development workflow.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Welcome to the Windows Subsystem for Linux (WSL) repository

WSL logo

Learn more about WSL | Downloads & Release notes | Contributing to WSL

About

Windows Subsystem for Linux (WSL) is a powerful way for you to run your Linux command-line tools, utilities and applications, all unmodified and directly on Windows without the overhead of a traditional virtual machine or dual boot setup.

You can install WSL right away by running this command inside of your Windows command line:

wsl --install

You can learn more about best practices for setup, overviews of WSL and more at our WSL documentation page.

Related repositories

WSL also has related open source repositories:

Contributing

This project welcomes contributions of all types, including coding features / bug fixes, documentation fixes, design proposals and more.

We ask that before you start working on a contribution, please read our Contributor's Guide.

For guidance on developing for WSL, please read the developer docs for instructions on how to build WSL from source and details on its architecture.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct

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 are subject to those third-party’s policies.

Privacy and telemetry

The application logs basic diagnostic data (telemetry). For more information on privacy and what we collect, see our data and privacy documentation.

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.