Hacker News new | ask | show | jobs
by thedelanyo 72 days ago
Someone said - in Linux, everything is a file. In Microsoft, everything is a copilot. Lol.
6 comments

I'd just like to interject for a moment. What you're referring to as Linux is in fact not the origin of the "everything is a file". More properly, "everything is a file" is a Unix concept and Unix's creators deserve credit for the idea. Though Plan9 carries it out much better: Unix networking isn't file-based, Plan9's is.

Sorry, I couldn't resist.

I was thinking more along the lines of "what you're referring to as Windows is in fact Copilot/Windows"....
SlopPilot/NT?

> I'd just like to interject for a moment. What you're referring to as Windows, is in fact, NT/SlopPilot+Windows, or as I've recently taken to calling it, Copilot plus Copilot plus Copilot.

Plan 9 implements some sort of "everything has a directory entry" concept. Sockets are files already in Unix. "Everything is a file" in Unix means they have a uniform treatment as file descriptors. Its perfection is probably in Capsicum where when you create a new process, you get a process file descriptor referring to it instead of a PID.
Sockets really aren't files im Unix though, you don't create them with (f)open, and you don't read/write with (f)read/(f)write
As much as I like bsd I think the socket interface is their biggest failure, don't get me wrong, the socket interface is not bad, it is an amazing accomplishment that most of the internet is based on. The reason I regard it as a failure is because it is so close but not quite touching. A core unix idea is to have a single namespace registry and a simple universal api(open, seek, read, write, close) to access resources on this registry. and you can tell the bsd socket team was trying(like I said it's close) but they failed to close the loop and shipped an api that did not match the core unix api.

And for free, a rant, I think this is why Microsoft's registry is so bad. On paper it sounds great "a single place to put all your config" I could totally sell it. But in practice it is miserable to use. When proposed nobody said "we already have a hierarchical namespace where all our config can go and it already has pretty great tooling, lets just make it better" so they invented a custom one that required custom special access patterns and custom special tooling and custom special api's, and... it sort of sucks to use. I guess in their defense they were not fully onboard the idea that you could have one tree(they liked their many trees A: B: C:)

> but they failed to close the loop and shipped an api that did not match the core unix api.

What exactly is the thing, that you think is lacking, though?

You do read sockets with read/write, that's the point of saying 'everything is a file'. You can basically can do read/write/close on things that are a socket.
While UNIX is famous for everything is a file, in reality this concept is only true in Plan 9, in UNIX IPC not everything is a file.

Sorry, I couldn't resist. :)

did you remember to push your glasses up your nose bridge before writing your comment
It also flashes white for a brief moment and you can hear a faint chi-wii sound.
No sorry, I forgot (i.e. I don't wear glasses (yet)).
Not everything is a file, in linux or unix.
We are still missing "Windows Subsystem for Copilot".
Never understood this about Windows Subsystem for Linux naming, nor its predecessor Windows Services for Unix. Surely Linux is the subsystem running on Windows? Should we now reinterpret Windows for Workgroups as a means of astrally projecting your organization inside Windows 3.11?! The dative only works ONE way, Microsoft!

I guess they really just didn't want a product name to start with the name of a competitor's product. I bet Copilot can fix this...

A "Windows subsystem" is a specific interface between user-mode applications and the Windows kernel. It's a technical notion that exists in Windows. So there are different Windows subsystems for different types of applications. The naming convention is "Windows subsystem for <application type>". It makes more sense when you read it as "Windows subsystem for [running] Linux [applications]".

WSL2 deviates from the native concept of what a Windows subsystem is; it is named that way because it is the successor of the original WSL.

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).

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.

Subsystem isn't used as a random English word here, "Windows Subsystem" is already a fixed term. So you wouldn't introduce a possessive relation into the term when using it.
Or a colon:

    Windows Subsystem for: Linux
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.
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.
This, and it may have also been a legal thing. "Product for Third-Party OS" has been accepted as a descriptive use of a third-party trademark for decades, requiring only proper attribution rather than a license, whereas marketing a product that didn't even originally use the Linux kernel as a "Linux Subsystem" might have been considered riskier by Microsoft's lawyers in spite of the nonstandard use of the former.
It could be even more simple. Microsoft would want to their own product, Windows, to come before Linux in the name.

I read through the brand guidelines where I work, and we have a similar stipulation. Maybe there is some law mixed in there, but from a pure branding play, a company will never want to put someone else first.

WSL was a traditional subsystem in the Windows NT tradition, it just never worked properly.

WSL2 runs real Linux in a virtual machine.

Actually no, that is what many without Windows background think.

WSL 1.0 was based on Drawbridge research project of library OSes, also used to port SQL Server into Linux.

See https://news.ycombinator.com/item?id=46110904

Microsoft had to warn users that they would corrupt the original WSL subsystem if they touched Linux files using Windows tools:

> DO NOT, under ANY circumstances, access, create, and/or modify Linux files inside of your `%LOCALAPPDATA%` folder using Windows apps, tools, scripts, consoles, etc.

They did overcome that problem eventually, but by then everyone had moved on to WSL2.

> It makes more sense when you read it as "Windows subsystem for [running] Linux [applications]".

You can't have ellipsis when the shortened version already has its own meaning.

X for Y when both X and Y are nouns means that X is part of Y, not that Y is part of X.

e.g. "I bought new tyres for my car". The tyres are part of my car. You can't flip it and say "I bought new my car for tyres", it's just not how the word "for" works.

Grammatically it has to be "Linux for Windows subsystem", or "Windows subsystem for running Linux" as you said. The verb is essential for it to parse correctly.

There are many exceptions to what you state as an ironclad rule: i bought a display case for my baseball, i bought an album for my photos, etc. “for” can go in either direction.
It's a Windows subsystem. For running Linux.
Sub for system Windows Linux.

It’s a proper noun, there are no rules.

It's the subsystem of X for Y. The US department for health is not a medicine product called 'department' produced by 'US'.
> Surely Linux is the subsystem running on Windows?

Only in version 2. WSL1 didn't run a Linux kernel, just provided binary compatibility to run Linux userspace programs.

> I guess they really just didn't want a product name to start with the name of a competitor's product.

Probably, but I doubt linux wants it either. People might think it's some official linux product.

The thing they “didn’t want to [do]” was infringe on the Linux trademark.
Copilot Subsystem for Copilot
Copilot Copilot for Copilot
Someone can probably make a valid "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo" out of Copilot.

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

You're talking about the aladeen or that aladeen? I don't understand which aladeen you are talking about.
You could try Copilot Copilot for Windows with Windows Copilot. I know it's still got Copilot in it, but not as much as Copilot Copilot Copilot Copilot MS Office for Windows Copilot.
But I don't like Copilot!
Copilot Copilot Copilot Copilot
I guess it does sort of work as a "grammatical infinity" idea https://medium.com/luminasticity/cardinality-and-growth-rate...

Like an imperative, because copilot can exist as a verb, I copilot a plane, and Copilot can exist as a software product, and as a helper in a software product that is itself a software product that helps you use the software product it is a helper to

So Copilot copilot! could be an imperative for Copilot to Copilot, and Copilot Copilot could be a description of a software product that helps people use a software product named Copilot, but the second is not really grammatically correct as a sentence, whereas the imperative is.

So in the end I guess you could have a Copilot Copilot..[infinite Copilots]..copilot!

Copilot copilots Copilot copilots copilot copilot Copilot copilots
Woah that actually works...

Microsoft-Copilot-branded copilots, which other Microsoft-Copilot-branded copilots assist, themselves assist Microsoft-Copilot-branded copilots.

I just woke up, please for the love of ai slop, stop before you break my definition of the word copilot!

(Fun fact: If you repeat a word sufficiently, it will lose its meaning..)

Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
Copilot OS
Pssh.. your joke surely won't be a joke inside Microsoft..
It’s IBM 15 yers ago when everything was Watson
We see how that worked out for them.
Halo Cortana AI: Copilot for Combat 2026
At some point there was an "AI" assistant in windows called Cortana. I think it was a lovely little joke and a nod to their fun side. Unique name, easy to remember. Like Apple's Siri.

I'm sad they replaced it with copilot.

Microsoft .NET Copilot
Microsoft Azure .NET Copilot 365
I’ve been wondering lately if the next Xbox will have “copilot” in the name. With an easy to accidentally press dedicated button on the controller that interrupts the game you’re playing to start an AI chat.
A valid use case would be AI pretending to be the second player so that you can pretend you're having friends over while actually you're alone. Schizophrenia-as-a-Service.
Haha, actually funny.
And of course it doesn't even work on Xbox.
They have that on windows game bar. Then you press the xbox button there’s a copilot “for games” there
Microsoft Azure .NET Core Copilot 355
Microsoft Azure .NET Core Copilot 355 (classic)
Microsoft Azure .NET Core Copilot 365 (classic) Professional Edition
You jest but there is the Office Hub that seemed like a solution in search of a problem and it was renamed into Microsoft Copilot 365 and has basically the same icon as Copliot. The 365 is paid the non is not.
Make it a cloud, on premisses and a desktop versions. All different.
Live Ultimate Edition for Developers.
Microsoft Azure .NET Copilot 365 Series X
MS Power Azure Copilot 365
Microsoft .Copilot ?
> Microsoft .NET Copilot

Not to be confused with "Microsoft Copilot .NET". :-)

or Microsoft Copilot for .NET Core
.NET Core does not exist anymore: it was renamed to .NET with .NET 5.0 (skipping version 4.0):

> https://en.wikipedia.org/w/index.php?title=.NET&oldid=134276...

That's because .Net 4 has been the .Net Framework's current version since 2010. It's basically the same reason they never made Windows 9.

They dropped the Core designation because they're still trying to encourage people to migrate so they can take .Net Framework out behind the shed where Silverlight went. v5 was a convenient time to start that whole process of re-integration.

> That's because .Net 4 has been the .Net Framework's current version since 2010. [...] They dropped the Core designation because they're still trying to encourage people to migrate so they can take .Net Framework out behind the shed where Silverlight went.

Good points/considerations.

loool