Microsoft publishes Release Notes for Bash on Windows 10 v1809

Microsoft has introduced a ton of new things in Bash for Linux on Windows 10 v1809. As per the details published by Microsoft, here is that is new with this software component inside of Windows 10 version 1809.

Bash on Windows 10 v1809

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

  • 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.
  • 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.
  • Fixed an issue where multithreaded operations could return ENOENT even though the file exists. [GH 2712]
  • 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
  • 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.
  • 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 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]
  • Pipe filesystem inadvertenly clearing edge-triggered epoll event [GH 3276]
  • Win32 executable launched via NTFS symlink doesn’t respect symlink name [GH 2909]
  • 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]
  • 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]
  • 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.
  • 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 sycall interface is not yet supported. And, so, some of the dmesg command line options such as -S-C don’t work.
  • Fixed an issue where multithreaded operations could return ENOENT even though the file exists. [GH 2712]
  • 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. In particular, some characters (like ‘/’, ‘:’ and ‘*’) are not allowed, and extended attribute names are not case sensitive on DrvFs

You can read more this release on microsoft.com.

If you would learn more about the Bash shell on Windows 10, you can start by learning how to run Bash on Windows 10.

Posted by with Tags
Ayush has been a Windows enthusiast since the day he got his first PC with Windows 98SE. He is an active Windows Insider since Day 1 and is now a Windows Insider MVP. He has been testing pre-release services on his Windows 10 PC, Lumia, and Android devices.