Remix.run Logo
dataflow 14 hours ago

I believe you're almost entirely wrong unfortunately. It is true that Windows has subsystems as a technical feature, yes. However, I don't think it's true that WSL (v1, let alone v2) was part of that architecture, despite the name. AFAIK that existing subsystem notion was a user-mode one, where each subsystem was built mostly in user-mode on top of the NT ("native") subsystem, with binaries in the PE format. WSL just completely ignored the whole thing, and even the existing notion of processes, and came up with a separate new thing called "picoprocesses" that it (barely?) wired through some critical kernel components via a custom driver that executed Linux binaries intact, implementing the Linux syscalls.

If you want a list of actual subsystems Windows recognizes, this should be pretty accurate:

https://learn.microsoft.com/en-us/windows/win32/debug/pe-for...

The real reason for calling it a subsystem was almost entirely for familiarity with the previous concept of running Linux programs on Windows, which were based on that subsystem feature (the POSIX subsystem and the Subsystem for UNIX-based Applications).

lxgr 7 hours ago | parent | next [-]

That doesn't seem like a contradiction to the idea that "Windows subsystem" is (at least after WSL 1 and especially 2) a description for a functionality (i.e. running binaries targeting a different OS's interfaces), not an implementation.

dataflow 3 hours ago | parent [-]

No, as I explained, that's not what the actual subsystem architecture did. The binaries very much targeted Windows and did not target any other OSes. They weren't (say) ELF files targeting Linux, they were PE files targeting Windows, and you had to compile them from source with special flags to target those subsystems on Windows. You could not run those binaries on other OSes. The compatibility was at the source level, not at the binary level.

rusk 7 hours ago | parent | prev [-]

It needs an apostrophe then it makes more sense “Windows’ Subsystem for Linux”

It is a Windows Subsystem, that caters to running Linux.

It’s a functional title not an architectural one.

Jenk 7 hours ago | parent [-]

Or a colon:

    Windows Subsystem for: Linux