If Windows 7 doesn't support WSL, then what is "Subsystem for UNIX-based Applications"?

Everyone says, that Linux subsystem,or WSL, IS only supported in windows 10.

Everyone is absolutely correct. Windows Linux Subsystem does not exist and cannot be enabled/installed on Windows 7.

Subsystem for UNIX-based Applications has nothing to do with the Windows 10 feature. It was also known as Interix before it was discontinued with the release of Windows 10.

Interix was an optional, POSIX-conformant Unix subsystem for Windows NT operating systems. Interix was a component of Windows Services for UNIX, and a superset of the Microsoft POSIX subsystem.

The tools that were supported were recompiled versions. The tools contained within a WSL instance are the same tools that run on Linux.

Unlike in the past the actual Linux distribution, is compiled into a UWP application, which interfaces with the Linux Subsystem allowing virtually any Linux distribution to now be compatible.

We distribute Linux distros for WSL as UWP applications through the Microsoft Store. You can install those applications that will then run on WSL - the subsystem that sits in the Windows kernel. This delivery mechanism has many benefits as discussed in an earlier blog post.

Source: Creating a Custom Linux Distro for WSL

There is an inherited limitation dealing with Linux kernel level drivers (they are not supported) so all devices interface indirectly with the Windows device driver.

Source: Interix


TL;DR

There were many Unix subsystems in Windows in the past, providing POSIX APIs for compiling Unix code without porting to Windows

WSL is a new subsystem in Windows 10 for running Linux ELF files directly without recompilation


In the 1980s the US federal government required that certain types of government purchases be POSIX-compliant, therefore MS had to include a POSIX subsystem in Windows

Microsoft POSIX subsystem is one of four subsystems shipped with the first versions of Windows NT. (The other three being the Win32 subsystem which provided the primary programming API for Windows NT, plus the OS/2 and security subsystems.)

https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem

That was one of the reasons of POSIX filename support in NTFS, and the existence of the registry key HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ObCaseInsensitive for compatibility with case-sensitive file names in POSIX subsystem and on the network

  • How do you make Windows 7 fully case-sensitive with respect to the filesystem?
  • Enable case sensitive behavior with Windows XP and Interix Subsystem or SFU

However the POSIX subsystem only implements POSIX.1 which doesn't include command line tools. In Windows XP / Windows Server 2003 it has been replaced with Windows Services for UNIX (SFU) which is what you see. It's much more powerful and was later renamed to Subsystem for UNIX-based Applications in Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2

Subsystem for UNIX-based Applications (SUA) is a source-compatibility subsystem for compiling and running custom UNIX-based applications on a computer running a Microsoft® Windows® server-class operating system. You can make your UNIX applications fully interoperable with Windows in SUA with little or no change to your original source code.

Subsystem for UNIX-based Applications

SUA was removed in Windows 8 and Windows Server 2012


Unlike WSL in Windows 10, those subsystems are not meant for running Linux ELF executable files directly, therefore you'll have to recompile for that subsystem if you want to run under it

Further reading:

  • POSIX and UNIX Support in Windows
  • Services for UNIX – Interoperability
  • Features Removed or Deprecated in Windows Server 2012
  • Subsystem for UNIX-based Applications in Windows 7