O Interix / SFU / SUA é um subsistema leve, substituindo apenas a camada Win32 do userspace por algo como um Unix libc - embora exista um "driver de subsistema" (psxss) para certas tarefas, ainda usa executáveis do Windows PE (.exe), a libc ainda usa os syscalls do kernel NT, os processos Interix são quase inteiramente parecidos com processos Win32 ou nativos, e eles têm o mesmo acesso ao sistema de arquivos.
O Cygwin é semelhante mas mais simples; é construído inteiramente como uma biblioteca de tempo de execução do espaço do usuário no topo do Win32 (com a chamada NT ocasional). Como resultado, os aplicativos Cygwin são realmente apenas aplicativos Win32 que usam uma libc muito estranha.
Em comparação, o WSL é muito mais extenso do que o SUA - o driver Lxss reimplementa o syscalls do kernel Linux em vez das funções de biblioteca do userspace, e pode executar binários ELF não modificados (o sistema WSL padrão é o Ubuntu). O ambiente WSL é praticamente auto-contido e é praticamente uma máquina virtual "User-mode Linux", com muito pouca interação com o sistema operacional host. Embora os processos do WSL apareçam na árvore de processos compartilhados, você não pode simplesmente executar / bin / sh diretamente - você tem que inicializar todo o sistema WSL, o que é feito por bash.exe
nos bastidores. (Houve uma postagem no blog sobre isso.)