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
This repo is for:
-
Reporting of issues found within and when using Windows Subsystem for Linux. Please read CONTRIBUTING.md before making an issue submission
Do not open Github issues for Windows crashes (BSODs) or security issues. Please direct all Windows crashes and security issues to secure@microsoft.com. Issues with security vulnerabilities may be edited to hide the vulnerability details.
-
Surrounding discussions about the Windows Subsystem for Linux.
Reporting issues in Windows Console or WSL text rendering/user experience
Note that WSL distro's launch in the Windows Console (unless you have taken steps to launch a 3rd party console/terminal). Therefore, please file UI/UX related issues in the Windows Console issue tracker.
Labels:
This is your best way to interact directly with the Windows Subsystem for Linux teams. We will be monitoring and responding to issues as best we can. Please attempt to avoid filing duplicates of open or closed items when possible. Issues may be tagged with with the following labels:
-
bug â The issue considered to be a bug internally by the dev team. This tag is generally for gaps in implemented (read: intended to be working) WSL behavior. Things marked with bug have a corresponding bug in on Microsoftâs internal bug tracking system. Example: "du -h reports wrong file size on DrvFs" (#1894)
-
feature â Denotes something understood as not working and is not yet implemented. Example: "Cuda can not be installed" (#327)
-
fixinbound / fixedinNNNN â The bug or feature request originally submitted has been addressed in whole or in part. Related or ongoing bug or feature gaps should be opened as a new issue submission if one does not already exist.
-
duplicate â The submission is substantially duplicative of an existing issue, and/or has the same underlying cause.
-
need-repro â The issue submission is missing fields from the issue template, cannot be reproduced with the information provided, or is not actionable.
-
discussion / question â Submissions which are not a bug report or feature request. Example: Windows Subsystem for Linux is not open source (#178)
-
bydesign / linux-behavior â Denotes that an issue that is considered working as intended or would behave analogously on a native Linux kernel.
-
console â The submission should be directed to the console issue tracker.
-
documentation â The submission should be directed to the WSL documentation issue tracker.
-
wsl2 - The issue relates specifically to WSL 2.
-
fixed-in-wsl2 - The issue could be resolved by switching the distro to use the WSL 2 architecture.
Additional tags may be used to denote specific types of issues.
- 9p-linux-file-access - The issue is related to accessing Linux files from Windows.
Closing:
Issues may be closed by the original poster at any time. We will close issues if:
- The issue is not a bug or feature request
- The issue has been addressed
- The issue is a duplicate of another issue
- Discussions or questions that have ran their course
Microsoft Links:
- Microsoft Docs
- Release Notes
- WSL Blog (Historical)
- Command Line Blog (Active)
Community Links:
- Stack Overflow: https://stackoverflow.com/questions/tagged/wsl
- Ask Ubuntu: https://askubuntu.com/questions/tagged/wsl
- reddit: https://www.reddit.com/r/bashonubuntuonwindows
- List of programs that work and don't work
- Awesome WSL: https://github.com/sirredbeard/Awesome-WSL
- Tips and guides for new bash users: https://github.com/abergs/ubuntuonwindows
- WSL Utilities (WSLU): https://github.com/wslutilities/wslu
Troubleshooting:
Common troubleshooting issues and solutions are available on our MSDN documentation.
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