SFU rides again!
Fri Apr 1 23:13:00 GMT 2016
No, it’s not an April Fool’s joke; this was announced a few days ago:
Basically, it seems they’ve replaced the old, deprecated, Interix-originated SFU with an Ubuntu-based replacement with all of the same limitations and advantages of SFU, except that it’s now Ubuntu-based instead of a bare-bones POSIX userland:
- Uses the NT subsystem mechanism, so processes are isolated. Running ELF binaries don’t show up in Windows Task Manager, and Ubuntu’s ps can’t see Windows processes.
- Similarly, the userlands are entirely isolated. You can’t run notepad.exe from bash.exe, and you can’t run a Bash shell script from PowerShell. But, you could write out a Bash shell script from a PowerShell script, then Alt-Tab over to your Bash console and run it, because the two userlands share a filesystem…
- …kind of. The Windows Bash shell sees drive letters as /mnt/c and such, so it can see any file visible in Windows Explorer, but the Ubuntu userland is isolated under your %APPDATA% folder, so you *might* not be able to write files to it from outside.
- It doesn’t seem to have AD/SAM integration. Each Windows user gets a separate Ubuntu environment, and users created within that environment are separate from Windows users.
- Windows 10 only.
- According to the video, 64-bit only, but that might just be the developer misunderstanding the question.
- No X11. Only command line apps will work.
- According to the video, their pty emulation is currently weak, so that tmux, sshd, etc. don’t yet work well, if at all. But, it sounds like they want to have that fixed PDQ.
- Currently, you’re running with Admin privileges, shown as root inside the Ubuntu environment. But, they say there will be proper privilege separation by ship time, some time this summer. They even claim to be working on sudo!
Same-Same Relative to Cygwin:
- Provides /dev, /proc, etc.
- The Ubuntu home directories are segregated from the Windows home directories, by default. You could probably edit /etc/passwd to merge them.
- By default, it ships using the native Windows console, but I suspect you could get MinTTY to tie into this, so I’m calling it same-same. If not, then this switches to a disadvantage, since even with the vast improvements in the Windows 10 console relative to earlier Windows, it’s still not on par with MinTTY.
- Because it’s using the same NTFS filesystem, it’s case-preserving but case-insenstitive.
- Compiles to ELF binaries which make direct WSL (Windows Subsystem for Linux) syscalls into the NT kernel, which are translated in-kernel to NT kernel calls, so it’ll probably be a lot faster than Cygwin, and probably more secure, too.
- The Ubuntu package repo is probably larger than Cygwin’s by several times. Maybe an order of magnitude.
- According to the video, they’ve got about a dozen people working on this full-time, and they’re leveraging the Ubuntu package repo and userland tools, so you can’t count the Cygwin package maintainers in our corner. That pretty much makes the battle Microsoft vs. Corinna, one with a ~20 year head start, but the other coming up real fast on her six. The only question in my mind is how far they’ll push this before they reassign those developers. How many years did they let SFU stagnate, again?
- APT vs setup.exe. Sorry, setup.exe devs, but APT’s got you smoked.
- Does it do POSIX permissions and ACLs correctly?
- Although they claim no X11, it should still let you host GUI apps on an X11 server running outside the WSL subsystems, since the two worlds share a network stack. That is, if you start Cygwin’s X server, I suspect this will work: DISPLAY=:0.0 xeyes Because it’s localhost, it might not need any monkeying with xhost.
- The video claims the Windows 10 console host will be getting VT100 emulation to support all this. I suspect that’s not quite true, and that it’s really yet another ANSI X3.64 variant, closer to TERM=linux than to =vt100. It must be, since they showed colored text.
More information about the Cygwin-talk