Top Related Projects
Multipass orchestrates virtual Ubuntu instances
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:
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
An open and reliable container runtime
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:
-
Enable WSL in Windows:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
Enable Virtual Machine feature:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
Restart your computer
-
Set WSL 2 as the default version:
wsl --set-default-version 2
-
Install a Linux distribution from the Microsoft Store (e.g., Ubuntu, Debian, Fedora)
-
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.
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.
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.
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
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
Welcome to the Windows Subsystem for Linux (WSL) repository
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:
- microsoft/WSL2-Linux-Kernel - The Linux kernel shipped with WSL
- microsoft/WSLg - Support for Linux GUI apps in WSL
- microsoftdocs/wsl - WSL documentation at aka.ms/wsldocs
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.
Top Related Projects
Multipass orchestrates virtual Ubuntu instances
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:
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
An open and reliable container runtime
Production-Grade Container Scheduling and Management
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