WSL

Source code behind the Windows Subsystem for Linux documentation.

OTHER License

Stars
1.9K

Bot releases are hidden (Show)

WSL - 16215

Published by benhillis over 7 years ago

Build 16215

For general Windows information on build 16215 visit the Windows Blog.
To track or report an issue visit our Github page.

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].
WSL - 16193

Published by benhillis over 7 years ago

Build 16193

For general Windows information on build 16193 visit the Windows Blog.
To track or report an issue visit our Github page.

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.
WSL - 16184

Published by jackchammons over 7 years ago

Build 16184

For general Windows information on build 16184 visit the Windows Blog.
To track or report an issue visit our Github page.

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]
WSL - 16179

Published by jackchammons over 7 years ago

Build 16179

For general Windows information on build 16179 visit the Windows Blog.
To track or report an issue visit our Github page.

Fixed

  • No WSL changes this week.
WSL - 16176

Published by jackchammons over 7 years ago

Build 16176

For general Windows information on build 16176 visit the Windows Blog.
To track or report an issue visit our Github page.

  • 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
WSL - 16170

Published by jackchammons over 7 years ago

Build 16170

For general Windows information on build 16170 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 15031

Published by jackchammons over 7 years ago

Build 15031

For general Windows information on build 15031 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 15025

Published by jackchammons over 7 years ago

Build 15025

For general Windows information on build 15025 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 15019

Published by jackchammons over 7 years ago

Build 15019

For general Windows information on build 15019 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 15014

Published by jackchammons over 7 years ago

Build 15014

For general Windows information on build 15014 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 15007

Published by jackchammons almost 8 years ago

Build 15007

For general Windows information on build 15007 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 15002

Published by russalex almost 8 years ago

Build 15002

For general Windows information on build 15002 visit the Windows Blog.
To track or report an issue visit our Github page.

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
WSL - 14986

Published by russalex almost 8 years ago

Build 14986

For general Windows information on build 14986 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 14965

Published by russalex almost 8 years ago

Build 14965

For general Windows information on build 14965 visit the Windows Blog.
To track or report an issue visit our Github page.

Fixed

  • Support for Netlink sockets NETLINK_ROUTE protocol's RTM_GETLINK and RTM_GETADDR (GH #468)
    • Enables ifconfig and ip commands for network enumeration
  • /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

WSL - 14959

Published by russalex almost 8 years ago

Build 14959

For general Windows information on build 14959 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 14951

Published by russalex about 8 years ago

Build 14951

For general Windows information on build 14951 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 14946

Published by russalex about 8 years ago

Build 14946

For general Windows information on build 14946 visit the Windows Blog.
To track or report an issue visit our Github page.

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:
  • 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

WSL - 14942

Published by russalex about 8 years ago

Build 14942

For general Windows information on build 14942 visit the Windows Blog.
To track or report an issue visit our Github page.

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

WSL - 14936

Published by russalex about 8 years ago

Build 14936

For general Windows information on build 14936 visit the Windows Blog.
To track or report an issue visit our Github page.

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
  • 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

WSL - 14926

Published by russalex about 8 years ago

Build 14926

For general Windows information on build 14926 visit the Windows Blog.
To track or report an issue visit our Github page.

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