Always thought WSL was named backwards. This also.

"DOS Subsystem for Linux" sounds to me like something that runs a DOS environment in Linux. When it's actually the opposite.

Absolutely is. I think I remember reading the theory it was to do with MS naming it such that Windows came first, and Linux last, regardless how confusing.

I bet it’s for legal reasons.

With “Linux Subsystem for Windows”, the owner of the Linux trademark could hypothetically sue Microsoft arguing that consumers could misinterpret the name as meaning a part of Linux, or an official Linux product.

“Windows Subsystem for Linux” unambiguously implies only that the software is compatible with Linux, not that it’s affiliated with it. (It still uses the trademark, but in a way that would be considered descriptive fair use.)

It’s not like there’s any real chance the trademark owner in question, the Linux Foundation, would actually sue Microsoft over this, but lawyers tend to prefer safe over sorry.

Then how do you explain "Rust for Windows"?

Same as "PHP for Windows", it's not a problem if the trademark owner agrees. And they typically would if the thing is the actual Rust / PHP running on Windows.

The problem with "Linux subsystem for Windows" is that the Linux people were not involved and the thing isn't a normal Linux. So there is much more risk of a trademark dispute in that case.

If I'm not mistaken, the "rust people" were not involved in "Rust for windows". It's just a normal rust crate which wraps the windows API, developed by Microsoft.

That's part of what makes this kind of naming so confusing. "Rust for Windows" sounds like some kind of development in the rust language in the direction of supporting windows, but it's just a library.

I can imagine a trademark holder taking issue with something like this. For instance, imagine the Ford auto compnay marketed their USB port, which you can plug an iPhone into, as "iPhone for Ford Trucks".

edit:

Look at the title in the Rust for Windows github: https://github.com/microsoft/windows-rs

> Rust for the Windows SDK

What does that even mean? "Rust implementation of the Windows SDK API", or "Rust Wrapper for the Windows SDK" would make sense, but this phrasing is completely foreign to anyone doing software.