Release Notes

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.

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.

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.

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.

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.

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 since it's still experimental. Note: We fixed a bug in the metadata format used by DrvFs. While metadata works on this build for experimentation, future builds will not correctly read metadata created by this build. You might need to manually update owner for modified files and devices with a custom device ID will have to be recreated.

    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.

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.

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.

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.

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.

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.

Fall Creators Update

Build 16288

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

Fixed

WSL

  • Correctly initialize and report uid, gid, and mode for socket file descriptors [GH 2490]
  • Additional improvements and bug fixes

Console

  • No Console related changes in this release.

LTP Results:

No change since 16273

Build 16278

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

Fixed

WSL

  • Explicitly unmap mapped views of file backed sections when tearing down LX MM state [GH 2415]
  • Additional improvements and bug fixes

Console

  • No Console related changes in this release.

LTP Results:

No change since 16273

Build 16275

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

Fixed

WSL

  • No WSL related changes in this release.

Console

  • No Console related changes in this release.

LTP Results:

No change since 16273

Build 16273

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

Fixed

WSL

  • Fixed an issue where DrvFs sometimes reported the wrong file type for directories [GH 2392]
  • Allow creation of NETLINK_KOBJECT_UEVENT sockets to unblock programs that use uevent [GH 1121, 2293, 2242, 2295, 2235, 648, 637]
  • Add support for non-blocking connect [GH 903, 1391, 1584, 1585, 1829, 2290, 2314]
  • Implement CLONE_FS clone system call flag [GH 2242]
  • Fix issues around not handling tabs or quotes correctly in NT interop [GH 1625, 2164]
  • Resolve access denied error when trying to re-launch WSL instances [GH 651, 2095]
  • Implement futex FUTEX_REQUEUE and FUTEX_CMP_REQUEUE operations [GH 2242]
  • Fix permissions for various SysFs files [GH 2214]
  • Fix Haskell stack hang during setup [GH 2290]
  • Implement binfmt_misc 'C' 'O' and 'P' flags [GH 2103]
  • Add /proc/sys/kernel /shmmax /shmmni & /threads-max [GH 1753]
  • Add partial support for ioprio_set system call [GH 498]
  • Stub SO_REUSEPORT & adding support for SO_PASSCRED for netlink sockets [GH 69]
  • Return different error codes from RegisterDistribuiton if a distribution is currently being installed or uninstalled.
  • Allow unregistration of partially installed WSL distributions via wslconfig.exe
  • Fix python socket test hang from udp::msg_peek
  • Additional improvements and bug fixes

Console

  • No Console related changes in this release.

LTP Results:

Total Tests: 1904
Total Skipped Tests: 209
Total Failures: 229
LTP Test Run Logs

Build 16257

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

Fixed

WSL

  • Implement prlimit64 system call
  • Add support for ulimit -n (setrlimit RLIMIT_NOFILE) [GH 1688]
  • Stub MSG_MORE for TCP sockets [GH 2351]
  • Fix invalid AT_EXECFN auxiliary vector behavior [GH 2133]
  • Fix copy/paste behavior for console/tty, and add better full buffer handling [GH 2204, 2131]
  • Set AT_SECURE in auxiliary vector for set-user-ID and set-group-ID programs [GH 2031]
  • Psuedo-terminal master endpoint not handling TIOCPGRP [GH 1063]
  • Fix lseek does to rewind directories in LxFs [GH 2310]
  • /dev/ptmx locks up after heavy usage [GH 1882]
  • Additional improvements and bug fixes

Console

LTP Results:

No change since 16251

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

prlimit64

Known Issues

GitHub Issue 2392: Windows Folders not recognized by WSL ...

In build 16257, WSL has issues when enumerating Windows files/folders via /mnt/c/.... This issue has been fixed and should be released in Insiders build during week commencing 8/14/2017.


Build 16251

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

Fixed

WSL

  • Remove beta tag from WSL optional component, see blog post for details.
  • Correctly initialize saved-set uid and gid for set-user-ID and set-group-ID binaries on exec [GH 962, 1415, 2072]
  • Added support for ptrace PTRACE_O_TRACEEXIT [GH 555]
  • Added support for ptrace PTRACE_GETFPREGS and PTRACE_GETREGSET with NT_FPREGSET [GH 555]
  • Fixed ptrace to stop on ignored signals
  • Additional improvements and bug fixes

Console

  • No Console related changes in this release.

LTP Results:

Number of Passing Tests: 768
Number of Failing Tests: 244
Number of Skipped Tests: 96
LTP Test Run Logs


Build 16241

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

Fixed

WSL

  • No WSL related changes in this release.

Console

  • Fix for outputting the wrong character for the crossing-lines DEC, originally reported here
  • Fix for no output text being displayed in codepage 65001 (utf8)
  • Do not transfer changes made to one color's RGB values to other parts of the palette on selection change. This will make the console properties sheet a lot easier to use.
  • Ctrl+S doesn't appear to work correctly
  • Un-Bold/-Dim completely absent from ANSI escape codes [GH 2174]
  • Console doesn't correctly support Vim color themes [GH 1706]
  • Cannot paste particular characters [GH 2149]
  • Reflow resize interacts strangely with resizing a bash window when stuff is on the edit/command line [GH ConEmu 1123]
  • Ctrl-L leaves the screen dirty [GH 1978]
  • Console rendering bug when displaying VT on HDPI [GH 1907]
  • Japansese characters look strange with Unicode Character U+30FB [GH 2146]
  • Additional improvements and bug fixes


Build 16237

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

Fixed

  • Use default attributes for files without EAs in lxfs (root, root, 0000)
  • Added support for distributions that use extended attributes
  • Fix padding for entries returned by getdents and getdents64
  • Fix permissions check for the shmctl SHM_STAT system call [GH 2068]
  • Fixed incorrect initial epoll state for ttys [GH 2231]
  • Fix DrvFs readdir not returning all entries [GH 2077]
  • Fix LxFs readdir when files are unlinked [GH 2077]
  • Allow unlinked drvfs files to be reopened through procfs
  • Added global registry key override for disabling WSL features (interop / drive mounting)
  • Fix incorrect block count in "stat" for DrvFs (and LxFs) [GH 1894]
  • Additional improvements and bug fixes


Build 16232

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

Fixed

  • No WSL related changes in this release.


Build 16226

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

Fixed

  • xattr related syscalls support (getxattr, setxattr, listxattr, removexattr).
  • security.capablity xattr support.
  • Improved compatibility with certain file systems and filters, including non-MS SMB servers. [GH #1952]
  • Improved support for OneDrive placeholders, GVFS placeholders, and Compact OS compressed files.
  • Additional improvements and bug fixes


Build 16215

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

Fixed

  • WSL no longer requires developer mode.
  • Support directory junctions in drvfs.
  • Handle uninstalling of WSL distribution appx packages.
  • Update procfs to show private and shared mappings.
  • Add ability for wslconfig.exe to clean up distributions that are partially installed or uninstalled.
  • Added support for IP_MTU_DISCOVER for TCP sockets. [GH 1639, 2115, 2205]
  • Infer protocol family for routes to AF_INADDR.
  • Serial device improvements [GH 1929].


Build 16199

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

Fixed

  • No WSL related changes in these releases.


Build 16193

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

Fixed

  • Race condition between sending SIGCONT and a threadgroup terminating [GH 1973]
  • change tty and pty devices to report FILE_DEVICE_NAMED_PIPE instead of FILE_DEVICE_CONSOLE [GH 1840]
  • SSH fix for IP_OPTIONS
  • Moved DrvFs mounting to init daemon [GH 1862, 1968, 1767, 1933]
  • Added support in DrvFs for following NT symlinks.


Build 16184

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

Fixed

  • Removed apt package maintenance task (lxrun.exe /update)
  • Fixed output not showing up in from Windows processes in node.js [GH 1840]
  • Relax alignment requirements in lxcore [GH 1794]
  • Fixed handling of the AT_EMPTY_PATH flag in a numer of system calls.
  • Fixed issue where deleting DrvFs files with open handles will cause the file to exhibit undefined behavior [GH 544,966,1357,1535,1615]
  • /etc/hosts will now inherit entries from the Windows hosts file (%windir%\system32\drivers\etc\hosts) [GH 1495]


Build 16179

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

Fixed

  • No WSL changes this week.


Build 16176

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

Fixed

  • Enabled serial support
  • Added IP socket option IP_OPTIONS [GH 1116]
  • Implemented pwritev function (while uploading file to nginx/PHP-FPM) [GH 1506]
  • Added IP socket options IP_MULTICAST_IF & IPV6_MULTICAST_IF [GH 990]
  • Support for socket option IP_MULTICAST_LOOP & IPV6_MULTICAST_LOOP [GH 1678]
  • Added IP(V6)_MTU socket option for apps node, traceroute, dig, nslookup, host
  • Added IP socket option IPV6_UNICAST_HOPS
  • Filesystem Improvements
    • Allow mounting of UNC paths
    • Enable CDFS support in drvfs
    • Correctly handle permissions for network file systems in drvfs
    • Add support for remote drives to drvfs
    • Enable FAT support in drvfs
  • Additional fixes and Improvements

LTP Results

No changes since 15042


Build 16170

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

We released a new blog post discussing our efforts to test WSL.

Fixed

  • Support socket option IP_ADD_MEMBERSHIP & IPV6_ADD_MEMBERSHIP [GH 1678]
  • Add support for PTRACE_OLDSETOPTIONS. [GH 1692]
  • Additional fixes and improvements

LTP Results

No changes since 15042


Build 15046 to Windows 10 Creators Update

There are no more WSL fixes or features planned for inclusion in the Creators Update to Windows 10. Release notes for WSL will resume in the coming weeks for additions targeting the next major Windows Update. For general Windows information on build 15046 and future Insider releases visit the Windows Blog.


Build 15042

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

Fixed

  • Fix for a deadlock when removing a path ending in ".."
  • Fixed an issue where FIONBIO not returning 0 on success [GH 1683]
  • Fixed issue with zero-length reads of inet datagram sockets
  • Fix possible deadlock due to race condition in drvfs inode lookup [GH 1675]
  • Extended support for unix socket ancillary data; SCM_CREDENTIALS and SCM_RIGHTS [GH 514, 613, 1326]
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 737
Number of non-Passing (failing, skipped, etc…): 255


Build 15031

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

Fixed

  • Fixed a bug where time(2) would sporadically misbehave.
  • Fixed and issue where *SIGPROCMASK syscalls could corrupt signal mask.
  • Now return full command line length in WSL process creation notification. [GH 1632]
  • WSL now reports thread exit through ptrace for GDB hangs. [GH 1196]
  • Fixed bug where ptys would hang after heavy tmux IO. [GH 1358]
  • Fixed timeout validation in many system calls (futex, semtimedop, ppoll, sigtimedwait, itimer, timer_create)
  • Added eventfd EFD_SEMAPHORE support [GH 452]
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 737
Number of non-Passing (failing, skipped, etc…): 255
LTP Test Run Logs


Build 15025

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

Fixed

  • Fix for bug that broke grep 2.27 [GH 1578]
  • Implemented EFD_SEMAPHORE flag for eventfd2 syscall [GH 452]
  • Implemented /proc/[pid]/net/ipv6_route [GH 1608]
  • Signal driven IO support for unix stream sockets [GH 393, 68]
  • Support F_GETPIPE_SZ and F_SETPIPE_SZ [GH 1012]
  • Implement recvmmsg() syscall [GH 1531]
  • Fixed bug where epoll_wait() wasn't waiting [GH 1609]
  • Implement /proc/version_signature
  • Tee syscall now returns failure if both file descriptors refer to the same pipe
  • Implemented correct behavior for SO_PEERCRED for Unix sockets
  • Fixed tkill syscall invalid parameter handling
  • Changes to increase the preformace of drvfs
  • Minor fix for Ruby IO blocking
  • Fixed recvmsg() returning EINVAL for the MSG_DONTWAIT flag for inet sockets [GH 1296]
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 732
Number of non-Passing (failing, skipped, etc…): 255
LTP Test Run Logs


Build 15019

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

Fixed

  • Fixed bug that incorrectly reported CPU usage in procfs for tools like htop (GH 823, 945, 971)
  • When calling open() with O_TRUNC on an existing file inotify now generates IN_MODIFY before IN_OPEN
  • Fixes to unix socket getsockopt SO_ERROR to enable postgress [GH 61, 1354]
  • Implement /proc/sys/net/core/somaxconn for the GO language
  • Apt-get package update background task now runs hidden from view
  • Clear scope for ipv6 localhost (Spring-Framework(Java) failure).
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 714
Number of non-Passing (failing, skipped, etc…): 249
LTP Test Run Logs


Build 15014

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

Fixed

  • Ctrl+C now works as intended
  • htop and ps auxw now show correct resource utilization (GH #516)
  • Basic translation of NT exceptions to signals. (GH #513)
  • fallocate now fails with ENOSPC when running out of space instead of EINVAL (GH #1571)
  • Added /proc/sys/kernel/sem.
  • Implemented semop and semtimedop system calls
  • Fixed nslookup errors with IP_RECVTOS & IPV6_RECVTCLASS socket option (GH 69)
  • Support for socket options IP_RECVTTL and IPV6_RECVHOPLIMIT
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 709
Number of non-Passing (failing, skipped, etc…): 255
LTP Test Run Logs

Syscall Summary

Total Syscalls: 384
Total Implemented: 235
Total Stubbed: 22
Total Unimplemented: 127
Detailed Breakdown


Build 15007

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

Known Issue

  • There is a known bug where the console does not recognize some Ctrl + input. This includes the ctrl-c command which will act as a normal ‘c’ keypress.

    • Workaround: Map an alternate key to Ctrl+C. For example, to map Ctrl+K to Ctrl+C do: stty intr \^k. This mapping is per terminal and will have to be done every time bash is launched. Users can explore the option to include this in their .bashrc

Fixed

  • Corrected the issue where running WSL would consume 100% of a CPU core
  • Socket option IP_PKTINFO, IPV6_RECVPKTINFO now supported. (GH #851, 987)
  • Truncate network interface physical address to 16 bytes in lxcore (GH #1452, 1414, 1343, 468, 308)
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 709
Number of non-Passing (failing, skipped, etc…): 255
LTP Test Run Logs


Build 15002

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

Known Issue

Two known issues:

  • There is a known bug where the console does not recognize some Ctrl + input. This includes the ctrl-c command which will act as a normal ‘c’ keypress.

    • Workaround: Map an alternate key to Ctrl+C. For example, to map Ctrl+K to Ctrl+C do: stty intr \^k. This mapping is per terminal and will have to be done every time bash is launched. Users can explore the option to include this in their .bashrc
  • While WSL is running a system thread will consume 100% of a CPU core. The root cause has been addressed and fixed internally.

Fixed

  • All bash sessions must now be created at the same permission level. Attempting to start a session at a different level will be blocked. This means admin and non-admin consoles cannot run at the same time. (GH #626)
  • Implemented the following NETLINK_ROUTE messages (requires Windows admin)
    • RTM_NEWADDR (supports ip addr add)
    • RTM_NEWROUTE (supports ip route add)
    • RTM_DELADDR (supports ip addr del)
    • RTM_DELROUTE (supports ip route del)
  • Scheduled task checking for packages to update will no longer run on a metered connection (GH #1371)
  • Fixed error where piping gets stuck i.e. bash -c "ls -alR /" | bash -c "cat" (GH #1214)
  • Implemented TCP_KEEPCNT socket option (GH #843)
  • Implemented IP_MTU_DISCOVER INET socket option (GH #720, 717, 170, 69)
  • Removed legacy functionality to run NT binaries from init with NT path lookup. (GH #1325)
  • Fix mode of /dev/kmsg to allow group / other read access (0644) (GH #1321)
  • Implemented /proc/sys/kernel/random/uuid (GH #1092)
  • Corrected error where process start time was showing as year 2432 (GH #974)
  • Switched default TERM environment variable to xterm-256color (GH #1446)
  • Modified the way that process commit is calculated during process fork. (GH #1286)
  • Implemented /proc/sys/vm/overcommit_memory. (GH #1286)
  • Implemented /proc/net/route file (GH #69)
  • Fixed error where shortcut name was incorrectly localized (GH #696)
  • Fixed elf parsing logic that is incorrectly validating the program headers must be less than (or equal to) PATH_MAX. (GH #1048)
  • Implemented statfs callback for procfs, sysfs, cgroupfs, and binfmtfs (GH #1378)
  • Fixed AptPackageIndexUpdate windows that won’t close (GH #1184, also discussed in GH #1193)
  • Added ASLR personality ADDR_NO_RANDOMIZE support. (GH #1148, 1128)
  • Improved PTRACE_GETSIGINFO, SIGSEGV, for proper gdb stack traces during AV (GH #875)
  • Elf parsing no longer fails for patchelf binaries. (GH #471)
  • VPN DNS propagated to /etc/resolv.conf (GH #416, 1350)
  • Improvements to TCP close for more reliable data transfer. (GH #610, 616, 1025, 1335)
  • Now return correct error code when too many files are opened (EMFILE). (GH #1126, 2090)
  • Windows Audit log now reports the image name in process create audit.
  • Now gracefully fail when launching bash.exe from within a bash window
  • Added error message when interop is unable to access a working directory under LxFs (i.e. notepad.exe .bashrc)
  • Fixed issue where Windows path was truncated in WSL
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 690
Number of non-Passing (failing, skipped, etc…): 274
LTP Test Run Logs


Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

shmctl
shmget
shmdt
shmat

Build 14986

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

Fixed

  • Fixed bugchecks with Netlink and Pty IOCTLs
  • Kernel version now reports 4.4.0-43 for consistency with Xenial
  • Bash.exe now launches when input directed to 'nul:' (GH #1259)
  • Thread IDs now reported correctly in procfs (GH #967)
  • IN_UNMOUNT | IN_Q_OVERFLOW | IN_IGNORED | IN_ISDIR flags now supported in inotify_add_watch() (GH #1280)
  • Implement timer_create and related system calls. This enables GHC support (GH #307)
  • Fixed issue where ping returned a time of 0.000ms (GH #1296)
  • Return correct error code when too many files are opened.
  • Fixed issue in WSL where Netlink request for network interface data would fail with EINVAL if the interface's hardware address is 32-bytes (such as the Teredo interface)
    • Note that the Linux "ip" utility contains a bug where it will crash if WSL reports a 32-byte hardware address. This is a bug in "ip", not WSL. The “ip” utility hard-codes the length of the string buffer used to print the hardware address, and that buffer is too small to print a 32-byte hardware address.
  • Additional fixes and improvements

LTP Results:

Number of Passing Test: 669
Number of non-Passing (failing, skipped, etc…): 258
LTP Test Run Logs


Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

timer_create
timer_delete
timer_gettime
timer_settime

Build 14971

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

Fixed

  • Due to circumstances beyond our control there are no updates in this build for the Windows Subsystem for Linux. Regularly scheduled updates will resume on the next release.

LTP Results:

Unchanged from 14965
Number of Passing Test: 664
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs


Build 14965

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

Fixed

  • Support for Netlink sockets NETLINK_ROUTE protocol's RTM_GETLINK and RTM_GETADDR (GH #468)
    • Enables ifconfig and ip commands for network enumeration
    • More information can be found in our WSL Networking blog post.
  • /sbin is now in the user's path by default
  • NT user path now appended to the WSL path by default (i.e. you can now type notepad.exe without adding System32 to the Linux path)
  • Added support for /proc/sys/kernel/cap_last_cap
  • NT Binaries can now be launched from WSL when the current working directory contains non-ansi characters (GH #1254)
  • Allow shutdown on disconnected unix stream socket.
  • Added support for PR_GET_PDEATHSIG.
  • Added support for CLONE_PARENT
  • Fixed error where piping gets stuck i.e. bash -c "ls -alR /" | bash -c "cat" (GH #1214)
  • Handle requests to connect to the current terminal.
  • Mark /proc//oom_score_adj as writable.
  • Add /sys/fs/cgroup folder.
  • sched_setaffinity should return number of affinity bits mask
  • Fix ELF validation logic which incorrectly assumes interpreter paths must be less than 64 characters long. (GH #743)
  • Open file descriptors can keep console window open (GH #1187)
  • Fixeed error where rename() failed with trailing slash on target name (GH #1008)
  • Implement /proc/net/dev file
  • Fixed 0.000ms pings due to timer resolution.
  • Implemented /proc/self/environ (GH #730)
  • Additional bugfixes and improvements

LTP Results:

Number of Passing Test: 664
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs


Build 14959

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

Fixed

  • Improved Pico Process notification for Windows. Additional information found on the WSL Blog.
  • Improved stability with Windows interoperability
  • Fixed error 0x80070057 when launching bash.exe when Enterprise Data Protection (EDP) is enabled
  • Additional bugfixes and improvements

LTP Results:

Number of Passing Test: 665
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs


Build 14955

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

Fixed

  • Due to circumstances beyond our control there are no updates in this build for the Windows Subsystem for Linux. Regularly scheduled updates will resume on the next release.

LTP Results:

Number of Passing Test: 665
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs


Build 14951

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

New Feature: Windows / Ubuntu Interoperability

Windows binaries can now be invoked directly from the WSL command line. This gives users the ability to interact with their Windows environment and system in a way that has not been possible. As a quick example, it is now possible for users to run the following commands:

```
$ export PATH=$PATH:/mnt/c/Windows/System32
$ notepad.exe
$ ipconfig.exe | grep IPv4 | cut -d: -f2
$ ls -la | findstr.exe foo.txt
$ cmd.exe /c dir
```

More information can be found at:

Fixed

  • Ubuntu 16.04 (Xenial) is now installed for all new WSL instances. Users with existing 14.04 (Trusty) instances will not be automatically upgraded.
  • Locale set during install is now displayed
  • Terminal improvements including bug where redirecting a WSL process to a file does not always work
  • Console lifetime should be tied to bash.exe lifetime
  • Console window size should use visible size, not buffer size
  • Additional bugfixes and improvements

LTP Results:

Number of Passing Test: 665
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs


Build 14946

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

Fixed

  • Fixed an issue that prevented creating WSL user accounts for users with NT usernames that contain spaces or quotes.
  • Change VolFs and DrvFs to return 0 for directory's link count in stat
  • Support IPV6_MULTICAST_HOPS socket option.
  • Limit to a single console I/O loop per tty. Example: the following command is possible:
    • bash -c "echo data" | bash -c "ssh user@example.com 'cat > foo.txt'"
  • replace spaces with tabs in /proc/cpuinfo (GH #1115)
  • DrvFs now appears in mountinfo with a name that matches mounted Windows volume
  • /home and /root now appear in mountinfo with correct names
  • Additional bugfixes and improvements

LTP Results:

Number of Passing Test: 665
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs


Build 14942

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

Fixed

  • A number of bugchecks addressed, including the “ATTEMPTED EXECUTE OF NOEXECUTE MEMORY” networking crash which was blocking SSH
  • inotifiy support for notifications generated from Windows applications on DrvFs is now in
  • Implement TCP_KEEPIDLE and TCP_KEEPINTVL for mongod. (GH #695)
  • Implement the pivot_root system call
  • Implement socket option for SO_DONTROUTE
  • Additional bugfixes and improvements

LTP Results:

Number of Passing Test: 665
Number of non-Passing (failing, skipped, etc…): 263
LTP Test Run Logs

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

pivot_root

Build 14936

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

Note: WSL will install Ubuntu version 16.04 (Xenial) instead of Ubuntu 14.04 (Trusty) in an upcoming release. This change will apply to Insiders installing new instances (lxrun.exe /install or first run of bash.exe). Existing instances with Trusty will not be upgraded automatically. Users can upgrade their Trusty image to Xenial using the do-release-upgrade command.

Known Issue

WSL is experiencing an issue with some socket implementations. The bugcheck manifests itself as a crash with the error “ATTEMPTED EXECUTE OF NOEXECUTE MEMORY”. The most common manifestation of this issue is a crash when using ssh. The root cause is fixed on internal builds and will be pushed to Insiders at the earliest opportunity.

Fixed

  • Implemented the chroot system call
  • Improvements in inotify including support for notifications generated from Windows applications on DrvFs
    • Correction: Inotify support for changes originating from Windows applications not available at this time.
  • Socket binding to IPV6:: now supports IPV6_V6ONLY (GH #68, #157, #393, #460, #674, #740, #982, #996)
  • WNOWAIT behavior for waitid systemcall implemented (GH #638)
  • Support for IP socket options IP_HDRINCL and IP_TTL
  • Zero-length read() should return immediately (GH #975)
  • Correctly handle filenames and filename prefixes that don't include a NULL terminator in a .tar file.
  • epoll support for /dev/null
  • Fix /dev/alarm time source
  • Bash -c now able to redirect to a file
  • Additional bugfixes and improvements

LTP Results:

Number of Passing Test: 664
Number of non-Passing (failing, skipped, etc…): 264
LTP Test Run Logs

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

chroot

Build 14931

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

Fixed

  • Due to circumstances beyond our control there are no updates in this build for the Windows Subsystem for Linux. Regularly scheduled updates will resume in the next release.


Build 14926

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

Fixed

  • Ping now works in consoles which do not have administrator privileges
  • Ping6 now supported, also without administrator privileges
  • Inotify support for files modified through WSL. (GH #216)
    • Flags supported:
      • inotify_init1: LX_O_CLOEXEC, LX_O_NONBLOCK
      • inotify_add_watch events: LX_IN_ACCESS, LX_IN_MODIFY, LX_IN_ATTRIB, LX_IN_CLOSE_WRITE, LX_IN_CLOSE_NOWRITE, LX_IN_OPEN, LX_IN_MOVED_FROM, LX_IN_MOVED_TO, LX_IN_CREATE, LX_IN_DELETE, LX_IN_DELETE_SELF, LX_IN_MOVE_SELF
      • inotify_add_watch attributes: LX_IN_DONT_FOLLOW, LX_IN_EXCL_UNLINK, LX_IN_MASK_ADD, LX_IN_ONESHOT, LX_IN_ONLYDIR
      • read output: LX_IN_ISDIR, LX_IN_IGNORED
    • Known issue: Modifying files from Windows applications does not generate any events
  • Unix socket now supports SCM_CREDENTIALS

LTP Results:

Number of Passing Test: 651
Number of non-Passing (failing, skipped, etc…): 258
LTP Test Run Logs


Build 14915

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

Fixed

  • Socketpair for unix datagram sockets (GH #262)
  • Unix socket support for SO_REUSEADDR
  • UNIX socket support for SO_BROADCAST (GH #568)
  • Unix socket support for SOCK_SEQPACKET (GH #758, #546)
  • Adding support for unix datagram socket send, recv and shutdown
  • Fix bugcheck due to invalid mmap parameter validation for non-fixed addresses. (GH #847)
  • Support for suspend / resume of terminal states
  • Support for TIOCPKT ioctl to unblock the Screen utility (GH #774)
    • Known issue: Function keys not operational
  • Corrected a race in TimerFd that could cause a freed member 'ReaderReady' to be accessed by LxpTimerFdWorkerRoutine (GH #814)
  • Enable restartable system call support for futex, poll, and clock_nanosleep
  • Added bind mount support
  • unshare for mount namespace support
    • Known issue: When creating a new mount namespace with unshare(CLONE_NEWNS) the current working directory will continue to point to the old namespace
  • Additional improvements and bug fixes


Build 14905

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

Fixed

  • Restartable system calls are now supported (GH #349, GH #520)
  • Symlinks to directories ending in / now operational (GH #650)
  • Implemented RNDGETENTCNT ioctl for /dev/random
  • Implemented the /proc/[pid]/mounts, /proc/[pid]/mountinfo and /proc/[pid]/mountstats files
  • Additional bugfixes and improvements


Build 14901

First Insider build for the post Windows 10 Anniversary Update release.

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

Fixed

  • Fixed trailing slash issue
    • Commands such as $ mv a/c/ a/b/ now work
  • Installing now prompts if Ubuntu locale should be set to Windows locale
  • Procfs support for ns folder
  • Added mount and unmount for tmpfs, procfs and sysfs file systems
  • Fix mknod[at] 32-bit ABI signature
  • Unix sockets moved to dispatch model
  • INET socket recv buffer size set using the setsockopt should be honored
  • Implement MSG_CMSG_CLOEXEC unix socket receive message flag
  • Linux process stdin/stdout pipe redirection (GH #2)
    • Allows for piping of bash -c commands in CMD. Example: >dir | bash -c "grep foo"
  • Bash can now be installed on systems with multiple pagefiles (GH #538, #358)
  • Default INET Socket buffer size should match that of default Ubuntu setup
  • Align xattr syscalls to listxattr
  • Only return interfaces with a valid IPv4 address from SIOCGIFCONF
  • Fix signal default action when injected by ptrace
  • implement /proc/sys/vm/min_free_kbytes
  • Use machine context register values when restoring context in sigreturn
    • This resolves the issue where java and javac were hanging for some users
  • Implement /proc/sys/kernel/hostname

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

waitid
epoll_pwait


Build 14388 to Windows 10 Anniversary Update

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

Fixed

  • Fixes to prepare for the Windows 10 Anniversary Update on 8/2
    • More information about WSL in the Anniversary Update can be found on our blog


Build 14376

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

Fixed

  • Removed some instances where apt-get hangs (GH #493)
  • Fixed an issue where empty mounts were not handled correctly
  • Fixed an issue where ramdisks were not mounted correctly
  • Change unix socket accept to support flags (partial GH #451)
  • Fixed common network related bluescreen
  • Fixed bluescreen when accessing /proc/[pid]/task (GH #523)
  • Fixed high CPU utilization for some pty scenarios (GH #488, #504)
  • Additional bugfixes and improvements


Build 14371

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

Fixed

  • Corrected timing race with SIGCHLD and wait() when using ptrace
  • Corrected some behavior when paths have a trailing / (GH #432)
  • Fixed issue with rename/unlink failing due to open handles to children
  • Additional bugfixes and improvements


Build 14366

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

Fixed

  • Fix in file creation through symlinks
  • Added listxattr for Python (GH 385)
  • Additional bugfixes and improvements

Syscall Support

  • Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

listxattr

Build 14361

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

Fixed

  • DrvFs is now case sensitive when running in Bash on Ubuntu on Windows.
    • Users may case.txt and CASE.TXT on their /mnt/c drives
    • Case sensitivity is only supported within Bash on Ubuntu on Windows. When outside of Bash NTFS will report the files correctly, but unexpected behavior may occur interacting with the files from Windows.
    • The root of each volume (i.e. /mnt/c) is not case sensitive
    • More information on handling these files in Windows can be found here.
  • Greatly enhanced pty / tty support. Applications like TMUX now supported (GH #40)
  • Fixed install issue where user accounts not always created
  • Optimized command line arg structure allowing for extremely long argument list. (GH #153)
  • Now able to delete and chmod read_only files from DrvFs
  • Fixed some instances where the terminal hangs on disconnect (GH #43)
  • chmod and chown now work on tty devices
  • Allow connection to 0.0.0.0 and :: as localhost (GH #388)
  • Sendmsg/recvmsg now handle an IO vector length of >1 (partial GH #376)
  • Users can now opt-out of auto-generated hosts file (GH #398)
  • Automatically match Linux locale to the NT locale during install (GH #11)
  • Added the /proc/sys/vm/swappiness file (GH #306)
  • strace now exits correctly
  • Allow pipes to be reopened through /proc/self/fd (GH #222)
  • Hide directories under %LOCALAPPDATA%\lxss from DrvFs (GH #270)
  • Better handling of bash.exe ~. Commands like “bash ~ -c ls” now supported (GH #467)
  • Sockets now notify epoll read available during shutdown (GH #271)
  • lxrun /uninstall does a better job of deleting the files and folders
  • Corrected ps -f (GH #246)
  • Improved support for x11 apps such as xEmacs (GH #481)
  • Updated initial thread stack size to match default Ubuntu setting and reporting the size correctly to the get_rlimit syscall (GH #172, #258)
  • Improved reporting of pico process image names (e.g., for auditing)
  • Implemented /proc/mountinfo for df command
  • Fixed symlink error code for child name . and ..
  • Additional improvements bugfixes and improvements

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

GETTIMER
MKNODAT
RENAMEAT
SENDFILE
SENDFILE64
SYNC_FILE_RANGE

Build 14352

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

Fixed

  • Fixed issue where large files were not downloaded / created correctly. This should unblock npm and other scenarios (GH #3, GH #313)
  • Removed some instances where sockets hang
  • Corrected some ptrace errors
  • Fixed issue with WSL allowing filenames longer than 255 characters
  • Improved support for non-English characters
  • Add current Windows timezone data and set as default
  • Unique device id’s for each mount point (jre fix – GH #49)
  • Correct issue with paths containing “.” and “..”
  • Added Fifo support (GH #71)
  • Updated format of resolv.conf to match native Ubuntu format
  • Some procfs cleanup
  • Enabled ping for Administrator consoles (GH #18)

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

FALLOCATE
EXECVE
LGETXATTR
FGETXATTR

Build 14342

For general Windows information on build 14342 the Windows Blog.

Information on VolFs and DriveFs can be found on the WSL Blog.

Fixed

  • Fixed install issue when the Windows user had Unicode characters in the username
  • The apt-get update udev workaround in the FAQ is now provided by default on first run
  • Enabled symlinks in DriveFs (/mnt/) directories
  • Symlinks now work between DriveFs and VolFs
  • Addressed top level path parsing issue: ls .// will now work as expected
  • npm install on DriveFs and the -g options are now working
  • Fixed issue preventing PHP server from launching
  • Updated default environment values, such as $PATH to closer match native Ubuntu
  • Added a weekly maintenance task in Windows to update the apt package cache
  • Fixed issue with ELF header validation, WSL now supports all Melkor options
  • Zsh shell is functional
  • Precompiled Go binaries are now supported
  • Prompting on Bash.exe first run is now localized correctly
  • /proc/meminfo now returns correct information
  • Sockets now supported in VFS
  • /dev now mounted as tempfs
  • Fifo now supported
  • Multi-core systems now showing correctly in /proc/cpuinfo
  • Additional improvements and error messages downloading during first run
  • Syscall improvements and bugfixes. Supported syscall list below.
  • Additional bugfixes and improvements

Known Issues

  • Not resolving ‘..’ correctly on DriveFs in some cases

Syscall Support

Below are a list of new or enhanced syscalls that have some implementation in WSL. The syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

FCHOWNAT
GETEUID
GETGID
GETRESUID
GETXATTR
PTRACE
SETGID
SETGROUPS
SETHOSTNAME
SETXATTR

Build 14332

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

Fixed

  • Better resolv.conf generation including prioritizing DNS entries
  • Issue with moving files and directories between /mnt and non-/mnt drives
  • Tar files can now be created with symlinks
  • Added default /run/lock directory on instance creation
  • Update /dev/null to return proper stat info
  • Additional errors when downloading during first run
  • Syscall improvements and bugfixes. Supported syscall list below.
  • Additional improvements bugfixes and improvements

Syscall Support

Below is the new syscall that has some implementation in WSL. The syscall on this list is supported in at least one scenario, but may not have all parameters supported at this time.

READLINKAT

Build 14328

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

New Features

  • Now support Linux users. Installing Bash on Ubuntu on Windows will prompt for creation of a Linux user. For more information, visit http://aka.ms/wslusers
  • Hostname is now set to the Windows computer name, no more @localhost
  • For more information on build 14328, visit: http://aka.ms/wip14328

Fixed

  • Symlink improvements for non /mnt/ files
    • npm install now works
    • jdk / jre now installable using instructions found here.
    • known issue: symlinks do not work for Windows mounts. Functionality will be available in a later build
  • top and htop now display
  • Additional error messages for some install failures
  • Syscall improvements and bugfixes. Supported syscall list below.
  • Additional improvements bugfixes and improvements

Syscall Support

Below is a list of syscalls that have some implementation in WSL. Syscalls on this list are supported in at least one scenario, but may not have all parameters supported at this time.

ACCEPT
ACCEPT4
ACCESS
ALARM
ARCH_PRCTL
BIND
BRK
CAPGET
CAPSET
CHDIR
CHMOD
CHOWN
CLOCK_GETRES
CLOCK_GETTIME
CLOCK_NANOSLEEP
CLONE
CLOSE
CONNECT
CREAT
DUP
DUP2
DUP3
EPOLL_CREATE
EPOLL_CREATE1
EPOLL_CTL
EPOLL_WAIT
EVENTFD
EVENTFD2
EXECVE
EXIT
EXIT_GROUP
FACCESSAT
FADVISE64
FCHDIR
FCHMOD
FCHMODAT
FCHOWN
FCHOWNAT
FCNTL64
FDATASYNC
FLOCK
FORK
FSETXATTR
FSTAT64
FSTATAT64
FSTATFS64
FSYNC
FTRUNCATE
FTRUNCATE64
FUTEX
GETCPU
GETCWD
GETDENTS
GETDENTS64
GETEGID
GETEGID16
GETEUID
GETEUID16
GETGID
GETGID16
GETGROUPS
GETPEERNAME
GETPGID
GETPGRP
GETPID
GETPPID
GETPRIORITY
GETRESGID
GETRESGID16
GETRESUID
GETRESUID16
GETRLIMIT
GETRUSAGE
GETSID
GETSOCKNAME
GETSOCKOPT
GETTID
GETTIMEOFDAY
GETUID
GETUID16
GETXATTR
GET_ROBUST_LIST
GET_THREAD_AREA
INOTIFY_ADD_WATCH
INOTIFY_INIT
INOTIFY_RM_WATCH
IOCTL
IOPRIO_GET
IOPRIO_SET
KEYCTL
KILL
LCHOWN
LINK
LINKAT
LISTEN
LLSEEK
LSEEK
LSTAT64
MADVISE
MKDIR
MKDIRAT
MKNOD
MLOCK
MMAP
MMAP2
MOUNT
MPROTECT
MREMAP
MSYNC
MUNLOCK
MUNMAP
NANOSLEEP
NEWUNAME
OPEN
OPENAT
PAUSE
PERF_EVENT_OPEN
PERSONALITY
PIPE
PIPE2
POLL
PPOLL
PRCTL
PREAD64
PROCESS_VM_READV
PROCESS_VM_WRITEV
PSELECT6
PTRACE
PWRITE64
READ
READLINK
READV
REBOOT
RECV
RECVFROM
RECVMSG
RENAME
RMDIR
RT_SIGACTION
RT_SIGPENDING
RT_SIGPROCMASK
RT_SIGRETURN
RT_SIGSUSPEND
RT_SIGTIMEDWAIT
SCHED_GETAFFINITY
SCHED_GETPARAM
SCHED_GETSCHEDULER
SCHED_GET_PRIORITY_MAX
SCHED_GET_PRIORITY_MIN
SCHED_SETAFFINITY
SCHED_SETPARAM
SCHED_SETSCHEDULER
SCHED_YIELD
SELECT
SEND
SENDMMSG
SENDMSG
SENDTO
SETDOMAINNAME
SETGID
SETGROUPS
SETHOSTNAME
SETITIMER
SETPGID
SETPRIORITY
SETREGID
SETRESGID
SETRESUID
SETREUID
SETRLIMIT
SETSID
SETSOCKOPT
SETTIMEOFDAY
SETUID
SETXATTR
SET_ROBUST_LIST
SET_THREAD_AREA
SET_TID_ADDRESS
SHUTDOWN
SIGACTION
SIGALTSTACK
SIGPENDING
SIGPROCMASK
SIGRETURN
SIGSUSPEND
SOCKET
SOCKETCALL
SOCKETPAIR
SPLICE
STAT64
STATFS64
SYMLINK
SYMLINKAT
SYNC
SYSINFO
TEE
TGKILL
TIME
TIMERFD_CREATE
TIMERFD_GETTIME
TIMERFD_SETTIME
TIMES
TKILL
TRUNCATE
TRUNCATE64
UMASK
UMOUNT
UMOUNT2
UNLINK
UNLINKAT
UNSHARE
UTIME
UTIMENSAT
UTIMES
VFORK
WAIT4
WAITPID
WRITE
WRITEV