Skip to content

Releases: MicrosoftDocs/WSL

17101

15 Feb 00:58
6a1eb05
Compare
Choose a tag to compare
17101 Pre-release
Pre-release

Build 17101

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

WSL

  • Support for signalfd. [GH 129]
  • Support file-names containing illegal NTFS characters by encoding them as private Unicode characters. [GH 1514]
  • Auto mount will fallback to read-only when write is not supported. [GH 2603]
  • Allow pasting of Unicode surrogate pairs (like emoji characters). [GH 2765]
  • Pseudo-files in /proc and /sys should return read and write ready from select, poll, epoll, et al. [GH 2838]
  • Fix issue that could cause service to go into infinite loop when the registry has been tampered with or is corrupt.
  • Fix netlink messages to work with newer (upstream 4.14) version of iproute2.

Console

  • No fixes.

LTP Results:

Testing in progress

17093

07 Feb 23:44
88a7101
Compare
Choose a tag to compare
17093 Pre-release
Pre-release

Build 17093

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

Important:

When starting WSL for the first time after upgrading to this build, it needs to perform some work upgrading the Linux file system directories. This may take up to several minutes, so WSL may appear to start slowly. This should only happen once for each distribution you have installed from the store.

  • Improved case sensitivity support in DrvFs.
    • DrvFs now supports per-directory case sensitivity. This is a new flag that can be set on directories to indicate all operations in those directories should be treated as case sensitive, which allows even Windows applications to correctly open files that differ only by case.
    • DrvFs has new mount options controlling case sensitivity on a per-directory basis
      • case=force: all directories are treated as case sensitive (except for the drive root). New directories created with WSL are marked as case sensitive. This is the legacy behavior except for marking new directories case sensitive.
      • case=dir: only directories with the per-directory case sensitivity flag are treated as case sensitive; other directories are case insensitive. New directories created with WSL are marked as case sensitive.
      • case=off: only directories with the per-directory case sensitivity flag are treated as case sensitive; other directories are case insensitive. New directories created with WSL are marked as case insensitive.
    • Note: directories created by WSL in previous releases do not have this flag set, so will not be treated as case sensitive if you use the “case=dir” option. A way to set this flag on existing directories is coming soon.
    • Example of mounting with these options (for existing drives, you must first unmount before you can mount with different options): sudo mount -t drvfs C: /mnt/c -o case=dir
    • For now, case=force is still the default option. This will be changed to case=dir in the future.
  • You can now use forward slashes in Windows paths when mounting DrvFs, e.g.: sudo mount -t drvfs //server/share /mnt/share
  • WSL now processes the /etc/fstab file during instance start [GH 2636].
    • This is done prior to automatically mounting DrvFs drives; any drives that were already mounted by fstab will not be remounted automatically, allowing you to change the mount point for specific drives.
    • This behavior can be turned off using wsl.conf.
  • The mount, mountinfo and mountstats files in /proc properly escape special characters like backslashes and spaces [GH 2799]
  • Special files created with DrvFs such as WSL symbolic links, or fifos and sockets when metadata is enabled, can now be copied and moved from Windows.

WSL is more configurable with wsl.conf

We added a method for you to automatically configure certain functionality in WSL that will be applied every time you launch the subsystem. This includes automount options and network configuration. Learn more about it in our blog post at: https://aka.ms/wslconf

AF_UNIX allows socket connections between Linux processes on WSL and Windows native processes

WSL and Windows applications can now communicate with each other over Unix sockets. Imagine you want to run a service in Windows and make it available to both Windows and WSL apps. Now, that’s possible with Unix sockets. Read more in our blog post at https://aka.ms/afunixinterop

WSL

  • Support mmap() with MAP_NORESERVE [GH 121, 2784]
  • Support CLONE_PTRACE and CLONE_UNTRACED [GH 121, 2781]
  • Handle non-SIGCHLD termination signal in clone [GH 121, 2781]
  • Stub /proc/sys/fs/inotify/max_user_instances and /proc/sys/fs/inotify/max_user_watches [GH 1705]
  • Error loading ELF binaries that contain load headers with non-zero offsets [GH 1884]
  • Zero out trailing page bytes when loading images.
  • Reduce cases where execve silently terminates process

Console

  • No fixes.

LTP Results:

Testing in progress.

17083

24 Jan 21:26
d096b67
Compare
Choose a tag to compare
17083 Pre-release
Pre-release

Build 17083

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

WSL

  • Fixed bugcheck related to epoll [GH 2798, 2801, 2857]
  • Fixed hangs when turning off ASLR [GH 1185, 2870]
  • Ensure mmap operations appear atomic [GH 2732]

Console

  • No fixes.

LTP Results:

Testing in progress.

17074

12 Jan 17:32
318a2ba
Compare
Choose a tag to compare
17074 Pre-release
Pre-release

Build 17074

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

WSL

  • Fixed storage format of DrvFs metadata [GH 2777]

    Important: DrvFs metadata created before this build will show up incorrectly or not at all. To fix affected files, use chmod and chown to re-apply the metadata.
  • Fixed issue with multiple signals and restartable syscalls.

Console

  • No fixes.

LTP Results:

Testing in progress.

17063

19 Dec 22:27
Compare
Choose a tag to compare
17063 Pre-release
Pre-release

Build 17063

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

WSL

  • DrvFs supports additional Linux metadata. This allows setting the owner and mode of files using chmod/chown, and also the creation of special files such as fifos, unix sockets and device files.

    This is disabled by default for now. To enable, mount DrvFs with the metadata option (to enable it on an existing mount, you must first unmount it):

    mount -t drvfs C: /mnt/c -o metadata

    Linux permissions are added as additional metadata to the file; they do not affect the Windows permissions. Remember, editing a file using a Windows editor may remove the metadata. In this case, the file will revert to its default permissions.

  • Added mount options to DrvFs to control files without metadata.

    • uid: the user ID used for the owner of all files.
    • gid: the group ID used for the owner of all files.
    • umask: an octal mask of permissions to exclude for all files and directories.
    • fmask: an octal mask of permissions to exclude for all regular files.
    • dmask: an octal mask of permissions to exclude for all directories.

    For example:

    mount -t drvfs C: /mnt/c -o uid=1000,gid=1000,umask=22,fmask=111
    

    Combine with the metadata option to specify default permissions for files without metadata.

  • Introduced a new environment variable, WSLENV, to configure how environment variables flow between WSL and Win32.

    For example:

    WSLENV=GOPATH/l:USERPROFILE/pu:DISPLAY 

    WSLENV is a colon-delimited list of environment variables that can be included when launching WSL processes from Win32 or Win32 processes from WSL. Each variable can be suffixed with a slash followed by flags to specify how it is translated.

    • p: The value is a path that should be translated between WSL paths and Win32 paths.
    • l: The value is a list of paths. In WSL, it is a colon-delimited list. In Win32, it is a semicolon-delimited list.
    • u: The value should only be included when invoking WSL from Win32
    • w: The value should only be included when invoking Win32 from WSL

    You can set WSLENV in .bashrc or in the custom Windows environment for your user.

  • drvfs mounts correctly preserves timestamps from tar, cp -p (GH 1939)

  • drvfs symlinks report the correct size (GH 2641)

  • read/write works for very large IO sizes (GH 2653)

  • waitpid works with process group IDs (GH 2534)

  • significantly improved mmap performance for large reserve regions; improves ghc performance (GH 1671)

  • personality supports for READ_IMPLIES_EXEC; fixes maxima and clisp (GH 1185)

  • mprotect supports PROT_GROWSDOWN; fixes clisp (GH 1128)

  • page fault fixes in overcommit mode; fixes sbcl (GH 1128)

  • clone supports more flags combinations

  • Support select/epoll of epoll files (previously a no-op).

  • Notify ptrace of unimplemented syscalls.

  • Ignore interfaces that are not up when generating resolv.conf nameservers [GH 2694]

  • Enumerate network interfaces with no physical address. [GH 2685]

  • Additional bug fixes and improvements.

Linux tools available to developers on Windows

  • Windows Command line Toolchain includes bsdtar (tar) and curl.
    Read this blog to learn more about the addition of these two new tools and see how they’re shaping the developer experience on Windows.

  • AF_UNIX is available in the Windows Insider SDK (17061+).
    Read this blog to learn more about AF_UNIX and how developers on Windows can use it.

Console

  • No fixes.

LTP Results:

Testing in progress.

17046

22 Nov 18:46
0a35415
Compare
Choose a tag to compare
17046 Pre-release
Pre-release

Build 17046

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

Fixed

WSL

  • Allow processes to run without an active terminal. [GH 709, 1007, 1511, 2252, 2391, et al.]
  • Better support of CLONE_VFORK and CLONE_VM. [GH 1878, 2615]
  • Skip TDI filter drivers for WSL networking operations. [GH 1554]
  • DrvFs creates NT symlinks when certain conditions are met. [GH 353, 1475, 2602]
    • The link target must be relative, must not cross any mount points or symlinks, and must exist.
    • The user must have SE_CREATE_SYMBOLIC_LINK_PRIVILEGE (this normally requires you to launch wsl.exe elevated), unless Developer Mode is turned on.
    • In all other situations, DrvFs still creates WSL symlinks.
  • Allow running elevated and non-elevated WSL instances simultaneously.
  • Support /proc/sys/kernel/yama/ptrace_scope
  • Add wslpath to do WSL<->Windows path conversions. [GH 522, 1243, 1834, 2327, et al.]
    wslpath usage:
      -a    force result to absolute path format
      -u    translate from a Windows path to a WSL path (default)
      -w    translate from a WSL path to a Windows path
      -m    translate from a WSL path to a Windows path, with ‘/’ instead of ‘\\’

      EX: wslpath ‘c:\users’

Console

  • No fixes.

LTP Results:

Testing in progress.

17040

17 Nov 18:24
ff0b2e4
Compare
Choose a tag to compare
17040 Pre-release
Pre-release

Build 17040

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

Fixed

WSL

  • No fixes since 17035.

Console

  • No fixes since 17035.

LTP Results:

Testing in progress.

17035

09 Nov 17:43
755fac3
Compare
Choose a tag to compare
17035 Pre-release
Pre-release

Build 17035

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

Fixed

WSL

  • Accessing files on DrvFs could occasionally fail with EINVAL. [GH 2448]

Console

  • Some color loss when inserting/deleting lines in VT mode.

LTP Results:

Testing in progress.

17025

26 Oct 00:10
Compare
Choose a tag to compare
17025 Pre-release
Pre-release

Build 17025

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

Fixed

WSL

  • Start initial processes in a new foreground process group [GH 1653, 2510].
  • SIGHUP delivery fixes [GH 2496].
  • Generate default virtual bridge name if none provided [GH 2497].
  • Implement /proc/sys/kernel/random/boot_id [GH 2518].
  • More interop stdout/stderr pipe fixes.
  • Stub syncfs system call.

Console

  • Fix input VT translation for third party consoles [GH 111]

LTP Results:

Testing in progress.

17017

17 Oct 15:06
Compare
Choose a tag to compare
17017 Pre-release
Pre-release

Build 17017

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

Fixed

WSL

  • Ignore empty ELF program headers [GH 330].
  • Allow LxssManager to create WSL instances for non-interactive users (ssh and scheduled task support) [GH 777, 1602].
  • Support WSL->Win32->WSL ("inception") scenarios [GH 1228].
  • Limited support for termination of console apps invoked via interop [GH 1614].
  • Support mount options for devpts [GH 1948].
  • Ptrace blocking child startup [GH 2333].
  • EPOLLET missing some events [GH 2462].
  • Return more data for PTRACE_GETSIGINFO.
  • Getdents with lseek gives incorrect results.
  • Fix some Win32 interop app hangs, waiting for input on a pipe that has no more data.
  • O_ASYNC support for tty/pty files.
  • Additional improvements and bug fixes

Console

  • No Console related changes in this release.

LTP Results:

Testing in progress.