Blue 7e7bc436df
wsla: Implement writeable overlayfs support for GPU mounts (#13518)
* Merge User/oneblue/prototype lsw to a feature/wsl-for-apps (#13278)

* Save state

* Save state

* Save state

* Get the VM booting

* VM booting

* Disk mounting

* CreateLinuxProcess

* Move to a proper API

* Implement env

* Progress on fd

* Redesign fork model

* Add process wait & signal

* Include nuget package

* Format

* Format

* Format

* Cleanup

* Format

* Format

* Format

* Fix nuspec

* Implement VM termination

* Add lsw dll

* Implement termination callbacks

* Save state

* Various fixes in API header

* Save state

* Test coverage

* Don't block all signals by default

* Writeable overlay

* Add struct keyword

* rename WslCreateVirualMachine -> WslCreateVirtualMachine

* rename Environmnent -> Environment

* rename HandleToUlong -> HandleToULong

* ensure correct amount of memory is used to create the LSW VM

* Adjust LSWVirtualMachine::AttachDisk so it does not require caller to have elevated permission

* Add missing struct keyword

* PR feedback

* PR review

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>

* Implement WSL for apps TCP port forwarding  (#13299)

* Merge User/oneblue/prototype lsw to a feature/wsl-for-apps (#13278)

* Save state

* Save state

* Save state

* Get the VM booting

* VM booting

* Disk mounting

* CreateLinuxProcess

* Move to a proper API

* Implement env

* Progress on fd

* Redesign fork model

* Add process wait & signal

* Include nuget package

* Format

* Format

* Format

* Cleanup

* Format

* Format

* Format

* Fix nuspec

* Implement VM termination

* Add lsw dll

* Implement termination callbacks

* Save state

* Various fixes in API header

* Save state

* Test coverage

* Don't block all signals by default

* Writeable overlay

* Add struct keyword

* rename WslCreateVirualMachine -> WslCreateVirtualMachine

* rename Environmnent -> Environment

* rename HandleToUlong -> HandleToULong

* ensure correct amount of memory is used to create the LSW VM

* Adjust LSWVirtualMachine::AttachDisk so it does not require caller to have elevated permission

* Add missing struct keyword

* PR feedback

* PR review

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>

* Save state

* Progress

* Save state

* Move tests to socat

* Increase test coverage

* More test coverage

* Cleanup before PR

* Cleanup before PR

* Refresh branch

* Update comment

* Only run LSW tests on wsl2

* Fix missing '.0' in flight-stage.yml

* Revert "Fix missing '.0' in flight-stage.yml"

This reverts commit 9b3e9ae38f5086b201f2100bf4196a7afe14d9eb.

* PR suggestions

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>

* Various fixes and improvements to the WSLA VM logic (#13338)

* Various fixes in the WSLA VM logic

* Update tests

* Fix ARM build

* LF

* Disable Firewall in WSLA VM config (#13345)

* Disable Firewall in WSLA VM config

* Add a version check

* Update setup-vm-for-tests.ps1 to include WSLA dll (#13362)

* Implement WSLA API's to query installed components, and install them when needed (#13363)

* Save state

* Save state

* Add tests

* Finalize tests

* Remove test logic

* Implement WSLA API to unmount & detach disks (#13364)

* Implement WSLA API to unmount & detach disks

* Add WSL2_TEST_ONLY();

* Fix wslg path

* Extend WslWaitForLinuxProcess test coverage (#13366)

* Add pipeline logic to publish nuget packages in the nightly pipeline (#13337)

* Add pipeline logic to publish nuget packages in the nightly pipeline

* Yaml

* Remove condition

* Fix version number

* Fix path

* Fix path

* Add support for using Linux files as processes' file descriptors (#13382)

* Save state

* Save state

* Add support for using Linux files as processes' file descriptors

* Cosmetics

* Missing return

* Signal the VM termination event to unblock any pending call when the service stops (#13389)

* Implement WSLA API to mount and unmount Windows folders via plan9 (#13393)

* Implement WSLA API to mount and unmount Windows folders via plan9

* Better handle when the folder is manually unmounted from the guest

* Add a test case to cover non plan9 mounts

* Update test

* wsla: do not leak fd's to user processes (#13406)

* Remove leftover logline in WSLA init (#13407)

* Implement WSLA GPU support (#13400)

* Implement WSLA GPU support

* Spelling

* Fix remaining typos

* More typos

* Merge

* Remove extra logline

* wsla: Refactor API to define `wsl` prefix on all types (#13410)

* Implement WSLA GPU support

* Spelling

* Fix remaining typos

* More typos

* Merge

* Remove extra logline

* Save state

* Reduce enum name

* Format

* Merge

* Fix merge

* Prepare for PR

* Update nuspec

* Pipeline update

* Implement WSL package version check (#13457)

* wsla: Mount the target on / when the chroot flag is set (#13455)

* wsla: Mount the target on / when the chroot flag is set

* Reuse existing helper

* wsa: Signa wsaclient.dll when building for release (#13466)

* wsa: Signal wsaclient.dll when building for release

* Typo

* Debug

* Debug

* Explicitely set targets to be built

* Build bundle

* Build tests before msipackage

* Build tests before msipackage

* Simplify

* Simplify

* wsla: Use a mount timeout when mounting a disk (#13471)

* Add an option to put a nuget suffix in the release pipeline parameters (#13474)

* Add an option to put a nuget suffix in the release pipeline parameters

* Yaml

* Yaml

* Yaml

* wsla: Implement writeable overlayfs support for GPU mounts

* Cleanup

* Typo

* Conflicts

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-09-25 11:36:44 -07:00
2025-05-21 11:00:49 -07:00
2025-07-31 08:19:42 -07:00
2025-07-23 15:19:00 -07:00
2025-07-29 11:24:39 -07:00
2025-07-29 11:24:39 -07:00
2023-06-30 09:58:38 -07:00
2025-07-23 15:19:00 -07:00
2025-05-15 12:09:45 -07:00
2025-07-29 11:24:39 -07:00

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.

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 Microsofts 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-partys 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 Microsofts 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.

Description
Windows Subsystem for Linux
Readme MIT 34 MiB
2.5.10 Latest
2025-08-05 16:36:10 -05:00
Languages
C++ 58.3%
C 37%
C# 2%
CMake 1%
Python 0.8%
Other 0.7%