It's certainly worth playing with, but I'm not sure I'd depend on it actually working for any given task yet. YMMV of course, but you really want to give it a spin before you put any purchasing choices behind it.
e.g., for my uses, I am constantly running into 'rough edges'. Huge swathes of /proc are missing, which breaks a lot of tools I simply expect to work. As an example, I have a very simple script for tooling with my raspberry pis. It does an ipv6 broadcast ping (ff02::1) on my ethernet interface, and ssh's to the address that returns. Nice easy way to solve the chicken & egg of sshing to a device that has no address configured yet.
On 'Bash on Ubuntu on Windows', it fails because I can't use the -I(interface) option with either ping or ping6 - setsockopt(SO_BINDTODEVICE): Protocol not available. (and you can't broadcast without that, because the broadcast address is the same on every interface, so it can't figure it out itself).
Then I can't list my own IP address, either the new way (ip addr show - SO_SNDBUF: Invalid Argument) or the traditional way (ifconfig - /proc/net/dev doesn't exist), which was my script's other requirement - because if I broadcast on my own interfaces, I'll also reply to them, so I need to know my own address to exclude it from the replies.
Most of this may be very situational, or may be me doing things the wrong way, and may not affect what you expect to run on a linux subsystem. But it did hammer home for me quite quickly, that this isn't a unix environment - it's a very shallow veneer.
e.g., for my uses, I am constantly running into 'rough edges'. Huge swathes of /proc are missing, which breaks a lot of tools I simply expect to work. As an example, I have a very simple script for tooling with my raspberry pis. It does an ipv6 broadcast ping (ff02::1) on my ethernet interface, and ssh's to the address that returns. Nice easy way to solve the chicken & egg of sshing to a device that has no address configured yet.
On 'Bash on Ubuntu on Windows', it fails because I can't use the -I(interface) option with either ping or ping6 - setsockopt(SO_BINDTODEVICE): Protocol not available. (and you can't broadcast without that, because the broadcast address is the same on every interface, so it can't figure it out itself).
Then I can't list my own IP address, either the new way (ip addr show - SO_SNDBUF: Invalid Argument) or the traditional way (ifconfig - /proc/net/dev doesn't exist), which was my script's other requirement - because if I broadcast on my own interfaces, I'll also reply to them, so I need to know my own address to exclude it from the replies.
Most of this may be very situational, or may be me doing things the wrong way, and may not affect what you expect to run on a linux subsystem. But it did hammer home for me quite quickly, that this isn't a unix environment - it's a very shallow veneer.