WSL

Source code behind the Windows Subsystem for Linux documentation.

OTHER License

Stars
1.9K

Bot releases are visible (Hide)

WSL - 18334

Published by benhillis over 5 years ago

Build 18334

For general Windows information on build 18334 visit the Windows blog.

WSL

  • Redesign the way that Windows time zone is mapped to a Linux time zone [GH 3747]
  • Fix memory leaks and add new string translation functions [GH 3746]
  • SIGCONT on a threadgroup with no threads is a no-op [GH 3741]
  • Correctly display socket and epoll file descriptors in /proc/self/fd
WSL - 18305

Published by Brian-Perkins almost 6 years ago

Build 18305

For general Windows information on build 18305 visit the Windows blog.

WSL

  • pthreads lose access to files when the primary thread exits [GH 3589]
  • TIOCSCTTY should ignore the “force” parameter unless it is required [GH 3652]
  • wsl.exe command line improvements and addition of import / export functionality.
Usage: wsl.exe [Argument] [Options...] [CommandLine]

Arguments to run Linux binaries:

    If no command line is provided, wsl.exe launches the default shell.

    --exec, -e <CommandLine>
        Execute the specified command without using the default Linux shell.

    --
        Pass the remaining command line as is.

Options:
    --distribution, -d <DistributionName>
        Run the specified distribution.

    --user, -u <UserName>
        Run as the specified user.

Arguments to manage Windows Subsystem for Linux:

    --export <DistributionName> <FileName>
        Exports the distribution to a tar file.
        The filename can be - for standard output.

    --import <DistributionName> <InstallLocation> <FileName>
        Imports the specified tar file as a new distribution.
        The filename can be - for standard input.

    --list, -l [Options]
        Lists distributions.

        Options:
            --all
                List all distributions, including distributions that are currently
                being installed or uninstalled.

            --running
                List only distributions that are currently running.

    -setdefault, -s <DistributionName>
        Sets the distribution as the default.

    --terminate, -t <DistributionName>
        Terminates the distribution.

    --unregister <DistributionName>
        Unregisters the distribution.

    --upgrade <DistributionName>
        Upgrades the distribution to the WslFs file system format.

    --help
        Display usage information.
WSL - 18277

Published by benhillis almost 6 years ago

Build 18277

For general Windows information on build 18277 visit the Windows blog.

WSL

  • Fix "no such interface supported" error introduced in build 18272 [GH 3645]
  • Ignore the MNT_FORCE flag for umount syscall [GH 3605]
  • Switch WSL interop to use the official CreatePseudoConsole API
  • Maintain no timeout value when FUTEX_WAIT restarts
WSL - 18272

Published by benhillis almost 6 years ago

Build 18272

For general Windows information on build 18272 visit the Windows blog.

WSL

  • WARNING: There is an issue in this build that makes WSL inoperable. When trying to launch your distribution you will see a “No such interface supported” error. The issue has been fixed and will be in next week's Insider Fast build. If you've installed this build you can roll back to the previous Windows build using “Go back to the previous version of Windows 10” in Settings->Update & Security->Recovery.
WSL - 18267

Published by benhillis almost 6 years ago

Build 18267

For general Windows information on build 18267 visit the Windows blog.

WSL

  • Fix issue where zombie process may not be reaped and remain indefinitely.
  • WslRegisterDistribution hangs if error message exceeds max length [GH 3592]
  • Allow fsync to succeed for read-only files on DrvFs [GH 3556]
  • Ensure that /bin and /sbin directories exist before creating symlinks inside [GH 3584]
  • Added an instance termination timeout mechanism for WSL instances. The timeout is currently set to 15 seconds, meaning the instance will terminate 15 seconds after the last WSL process exits. To terminate a distribution immediately, use:
wslconfig.exe /terminate <DistributionName>
WSL - 1809

Published by benhillis about 6 years ago

Build 17763 (1809)

For general Windows information on build 17763 visit the Windows Blog.

WSL

  • Setpriority syscall permission check too strict for changing same thread priority [GH 1838]
  • Ensure that unbiased interrupt time is used for boot time to avoid returning negative values for clock_gettime(CLOCK_BOOTTIME) [GH 3434]
  • Handle symlinks in the WSL binfmt interpreter [GH 3424]
  • Better handling of threadgroup leader file descriptor cleanup.
  • Switch WSL to use KeQueryInterruptTimePrecise instead of KeQueryPerformanceCounter to avoid overflow [GH 3252]
  • Ptrace attach may cause bad return value from system calls [GH 1731]
  • Fix several AF_UNIX related issues [GH 3371]
  • Fix issue that could cause WSL interop to fail if the current working directory is less than 5 characters long [GH 3379]
  • Avoid one second delay failing loopback connections to non-existent ports [GH 3286]
  • Add /proc/sys/fs/file-max stub file [GH 2893]
  • More accurate IPV6 scope information.
  • PR_SET_PTRACER support [GH 3053]
  • Pipe filesystem inadvertently clearing edge-triggered epoll event [GH 3276]
  • Win32 executable launched via NTFS symlink doesn't respect symlink name [GH 2909]
  • Improved zombie support [GH 1353]
  • Add wsl.conf entries for controlling Windows interop behavior [GH 1493]
      [interop]
    
      enabled=false # enable launch of Windows binaries; default is true
    
      appendWindowsPath=false # append Windows path to $PATH variable; default is true
    
  • Fix for getsockname not always returning UNIX socket family type [GH 1774]
  • Add support for TIOCSTI [GH 1863]
  • Non-blocking sockets in the process of connecting should return EAGAIN for write attempts [GH 2846]
  • Support interop on mounted VHDs [GH 3246, 3291]
  • Fix permission checking issue on root folder [GH 3304]
  • Limited support for TTY keyboard ioctls KDGKBTYPE, KDGKBMODE and KDSKBMODE.
  • Windows UI apps should execute even when launched in the background.
  • Add wsl -u or --user option [GH 1203]
  • Fix WSL launch issues when fast startup is enabled [GH 2576]
  • Unix sockets need to retain disconnected peer credentials [GH 3183]
  • Non-blocking Unix sockets failing indefinitely with EAGAIN [GH 3191]
  • case=off is the new default drvfs mount type [GH 2937, 3212, 3328]
    • See blog for more information.
  • Add wslconfig /terminate to stop running distributions.
  • Fix issue with the WSL shell context menu entries that do not correctly handle paths with spaces.
  • Expose per-directory case sensitivity as an extended attribute
  • ARM64: Emulate cache maintenance operations. Resolve dotnet issue.
  • DrvFs: only unescape characters in the private range that correspond to an escaped character.
  • Fix off-by-one error in ELF parser interpreter length validation [GH 3154]
  • WSL absolute timers with a time in the past do not fire [GH 3091]
  • Ensure newly created reparse points are listed as such in the parent directory.
  • Atomically create case sensitive directories in DrvFs.
  • Fixed an additional issue where multithreaded operations could return ENOENT even though the file exists. [GH 2712]
  • Fixed WSL launch failure when UMCI is enabled. [GH 3020]
  • Add explorer context menu to launch WSL [GH 437, 603, 1836]. To use, hold shift and right-click when in an explorer window.
  • Fix Unix socket non-blocking behavior [GH 2822, 3100]
  • Fix hanging NETLINK command as reported in GH 2026.
  • Add support for mount propagation flags [GH 2911].
  • Fix issue with truncate not causing inotify events [GH 2978].
  • Add --exec option for wsl.exe to invoke a single binary without a shell.
  • Add --distribution option for wsl.exe to select a specific distro.
  • Limited support for dmesg. Applications can now log to dmesg. WSL driver logs limited information to dmesg. In future, this can be extended to carry other information/diagnostics from the driver.
    • Note: dmesg is currently supported through the /dev/kmsg device interface. syslog syscall interface is not yet supported. And, so, some of the dmesg command line options such as -S, -C don't work.
  • Change default gid and mode of serial devices to match native [GH 3042]
  • DrvFs now supports extended attributes.
    • Note: DrvFs has some limitations on the name of extended attributes. Some characters (like '/', ':' and '*') are not allowed, and extended attribute names are not case sensitive on DrvFs
WSL - 18252

Published by benhillis about 6 years ago

Build 18252 (Skip Ahead)

For general Windows information on build 18252 visit the Windows Blog.

WSL

  • Move init and bsdtar binaries out of lxssmanager dll and into a separate tools folder
  • Fix race around closing file descriptor when using CLONE_FILES
  • Handle optional fields in /proc/pid/mountinfo when translating DrvFs paths
  • Allow DrvFs mknod to succeed without metadata support for S_IFREG
  • Readonly files created on DrvFs should have the readonly attribute set [GH 3411]
  • Add /sbin/mount.drvfs helper to handle DrvFs mounting
  • Use POSIX rename in DrvFs.
  • Allow path translation on volumes without a volume GUID.
WSL - 17738

Published by benhillis about 6 years ago

Build 17738 (Fast)

For general Windows information on build 17738 visit the Windows Blog.

WSL

  • Setpriority syscall permission check too strict for changing same thread priority [GH 1838]
  • Ensure that unbiased interrupt time is used for boot time to avoid returning negative values for clock_gettime(CLOCK_BOOTTIME) [GH 3434]
  • Handle symlinks in the WSL binfmt interpreter [GH 3424]
  • Better handling of threadgroup leader file descriptor cleanup.
WSL - 17728

Published by benhillis about 6 years ago

Build 17728 (Fast)

For general Windows information on build 17728 visit the Windows Blog.

WSL

  • Switch WSL to use KeQueryInterruptTimePrecise instead of KeQueryPerformanceCounter to avoid overflow [GH 3252]
  • Ptrace attach may cause bad return value from system calls [GH 1731]
  • Fix a number of AF_UNIX related issues [GH 3371]
  • Fix issue that could cause WSL interop to fail if the current working directory is less than 5 characters long [GH 3379]
WSL - 18204

Published by benhillis about 6 years ago

Build 18204 (Skip Ahead)

For general Windows information on build 18204 visit the Windows Blog.

WSL

  • Pipe filesystem inadvertenly clearing edge-triggered epoll event [GH 3276]
  • Win32 executable launched via NTFS symlink doesn't respect symlink name [GH 2909]
WSL - 17723

Published by benhillis about 6 years ago

Build 17723 (Fast)

For general Windows information on build 17723 visit the Windows Blog.

WSL

  • Avoid one second delay failing loopback connections to non-existent ports [GH 3286]
  • Add /proc/sys/fs/file-max stub file [GH 2893]
  • More accurate IPV6 scope information.
  • PR_SET_PTRACER support [GH 3053]
  • Pipe filesystem inadvertenly clearing edge-triggered epoll event [GH 3276]
  • Win32 executable launched via NTFS symlink doesn't respect symlink name [GH 2909]
WSL - 17713

Published by Brian-Perkins over 6 years ago

Build 17713

For general Windows information on build 17713 visit the Windows Blog.

WSL

  • Improved zombie support [GH 1353]
  • Add wsl.conf entries for controlling Windows interop behavior [GH 1493]
    [interop]
    enabled=false # enable launch of Windows binaries; default is true
    appendWindowsPath=false # append Windows path to $PATH variable; default is true
  • Fix for getsockname not always returning UNIX socket family type [GH 1774]
  • Add support for TIOCSTI [GH 1863]
  • Non-blocking sockets in the process of connecting should return EAGAIN for write attempts [GH 2846]
  • Support interop on mounted VHDs [GH 3246, 3291]
  • Fix permission checking issue on root folder [GH 3304]
  • Limited support for TTY keyboard ioctls KDGKBTYPE, KDGKBMODE and KDSKBMODE.
  • Windows UI apps should execute even when launched in the background.
WSL - 17704

Published by Brian-Perkins over 6 years ago

Build 17704

For general Windows information on build 17704 visit the Windows Blog.

WSL

  • Add wsl -u or --user option [GH 1203]
  • Fix WSL launch issues when fast startup is enabled [GH 2576]
  • Unix sockets need to retain disconnected peer credentials [GH 3183]
  • Non-blocking Unix sockets failing indefinitely with EAGAIN [GH 3191]
  • case=off is the new default drvfs mount type [GH 2937, 3212, 3328]
    • See blog for more information.
  • Add wslconfig /terminate to stop running distributions.
WSL - 17692

Published by benhillis over 6 years ago

Build 17692

For general Windows information on build 17692 visit the Windows Blog.

WSL

  • Fix issue with the WSL shell context menu entries that do not correctly handle paths with spaces.
  • Expose per-directory case sensitivity as an extended attribute
  • ARM64: Emulate cache maintenance operations. Resolve dotnet issue.
  • DrvFs: only unescape characters in the private range that correspond to an escaped character.
WSL - 17686

Published by benhillis over 6 years ago

Build 17686

For general Windows information on build 17686 visit the Windows Blog.

WSL

  • Fix off-by-one error in ELF parser interpreter length validation [GH 3154]
  • WSL absolute timers with a time in the past do not fire [GH 3091]
  • Ensure newly created reparse points are listed as such in the parent directory.
  • Atomically create case sensitive directories in DrvFs.
WSL - 17666

Published by Brian-Perkins over 6 years ago

Build 17666

For general Windows information on build 17666 visit the Windows Blog.

WSL

WARNING: There is an issue preventing WSL from running on some AMD chipsets [GH 3134]. A fix is ready and making its way to the Insider Build branch.

  • Add explorer context menu to launch WSL [GH 437, 603, 1836]. To use hold shift and right-click when in an explorer window.
  • Fix unix socket non-blocking behavior [GH 2822, 3100]
  • Fix hanging NETLINK command as reported in GH 2026.
  • Add support for mount propagation flags [GH 2911].
  • Fix issue with truncate not causing inotify events [GH 2978].
  • Add --exec option for wsl.exe to invoke a single binary without a shell.
  • Add --distribution option for wsl.exe to select a specific distro.
WSL - 17627

Published by Brian-Perkins over 6 years ago

Build 17627

For general Windows information on build 17627 visit the Windows Blog.

WSL

  • Add support for the futex pi-aware operations. [GH 1006]
    • Note that priorities are not currently a supported WSL feature so there are limitations, but standard usage should be unblocked.
  • Windows firewall support for WSL processes. [GH 1852]
    • For example, to allow the WSL python process to listen on any port, use the elevated Windows cmd:
      netsh.exe advfirewall firewall add rule name=wsl_python dir=in action=allow program="C:\users\<username>\appdata\local\packages\canonicalgrouplimited.ubuntuonwindows_79rhkp1fndgsc\localstate\rootfs\usr\bin\python2.7" enable=yes
    • For additional details on how to add firewall rules, see link
  • Respect user's default shell when using wsl.exe. [GH 2372]
  • Report all network interfaces as ethernet. [GH 2996]
  • Better handling of corrupt /etc/passwd file. [GH 3001]

Console

  • No fixes.

LTP Results:

Testing in progress.

WSL - 17618

Published by benhillis over 6 years ago

Build 17618

For general Windows information on build 17618 visit the Windows Blog.

WSL

  • Introduce pseudoconsole functionality for NT interop [GH 988, 1366, 1433, 1542, 2370, 2406].
  • The legacy install mechanism (lxrun.exe) has been deprecated. The supported mechanism for installing distributions is through the Microsoft Store.

Console

  • No fixes.

LTP Results:

Testing in progress.

WSL - 17110

Published by Brian-Perkins over 6 years ago

Build 17110

For general Windows information on build 17110 visit the Windows Blog.

WSL

  • Allow /init to be terminated from Windows [GH 2928].
  • DrvFs now uses per-directory case sensitivity by default (equivalent to the “case=dir” mount option).
    • Using “case=force” (the old behavior) requires setting a registry key. Run the following command to enable “case=force” if you need to use it: reg add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1
    • If you have existing directories created with WSL in older version of Windows which need to be case sensitive, use fsutil.exe to mark them as case sensitive: fsutil.exe file setcasesensitiveinfo enable
  • NULL terminate strings returned from the uname syscall.

Console

  • No fixes.

LTP Results:

Testing in progress.

WSL - 17107

Published by Brian-Perkins over 6 years ago

Build 17107

For general Windows information on build 17107 visit the Windows Blog.

WSL

  • Support TCSETSF and TCSETSW on master pty endpoints [GH 2552].
  • Starting simultaneous interop processes can result in EINVAL [GH 2813].
  • Fix PTRACE_ATTACH to show proper tracing status in /proc/pid/status.
  • Fix race where short-lived processes cloned with both the CLEARTID and SETTID flags could exit without clearing the TID address.
  • Display a message when upgrading the Linux file system directories
    when moving from a pre-17093 build. For more details on the 17093 file system changes, see the release notes for 17093.

Console

  • No fixes.

LTP Results:

Testing in progress.