Look how far we've come. Linux was the alternative OS just ~15 years ago. Now it's one of the mainstream OSes.
TBH, I'd like to see one of the BSDs to become one of the mainstream OSes too. :)
edit: Except macOS ofc. :)
For userspace what matters is ART, ISO C, ISO C++ and Android NDK APIs.
But other than having more claim to the UNIX title than Linux and having some BSD userland, it's really not technically a BSD at all. I'll grant you it's arguably a distant descendant of BSD under the surface or in your shell.
It's cool that the Mac community used some BSD code way back when — that's why we use a permissive license — but they've forked whatever they took; they never work to integrate their changes back upstream. To the extent that they're a BSD, they're a very very divergent fork of a historical BSD. And that's fine, for them. I don't know if that makes them a BSD or not in some ontological sense.
This is why I personally force GPLv3 licenses in my own projects, even if it's fairly small.
MIT is a beautiful license but, unfortunately this happens when idealism collides head-on with private corporations.
The limited exception is Clang/LLVM, where to some extent they are the upstream.
(A clarification: I also like the MIT license, but the majority of BSD is published under the so-named BSD license, with some number of other clauses. You might already know that, and if so, sorry for repeating the explanation; I wasn't sure from your comment. They're both permissive, but not identical licenses.)
Some old people keep talking about the crazy idea of owning computers and installing OSes.
IIRC, they recently discontinued the link and related data sharing though.
...on servers. It's still far, far from "mainstream" for desktops.
Still, that's a really big deal. I work for what is firmly a Microsoft shop, and nobody bat's an eyelid now if we use Linux VMs (as long as they're cloud-based).
I think 3 things in particular have driven the rise of Linux as a mainstream server OS:
1. docker/containerisation. Sure, Windows containers exist, but have you ever seen one in the wild?
2. The shift to the cloud, in conjunction with (3)
3. The rise of DevOps, in tandem with (2)
I have. What is done on .NET stays on Windows, for UNIX like OSes we get to use Java.
Yes there is .NET Core, it is the future, not all MS shops are buying into it due to the current limitations, waiting to see how .NET 5 will actually look like.
I'm also very surprised you'd claim that not all Microsoft shops are buying into dotnet core - I've seen the very opposite; every client I've worked with has known dotnet framework has been superceded by core, and has been eager to move. A decent portion of this is driven by certain containerisation, which (realistically) means dotnet on Linux.
The only real limitation with dotnet core has been the lack of managed C++ support - a niche use case, and only relevant on Windows, but even this has been resolved in dotnet core 3.1.
Considering the not insubstantial performance improvements in dotnet core, and of course the benefit of cross-platform code, I'm really interested to hear about the limitations of dotnet core you've found (the switch for me and all the enterprise clients I've worked with has been great)?
The kind of enterprises where deployments on IIS, with AD infrastructure on premises, Windows on all company layers are still the name of the game, with some Linux servers for running SAP and a couple of other Java based services.
What is missing from .NET Core 3.1?
Besides what I have listed above, EF 6 on Core doesn't support the Visual Studio graphical tooling nor the EF 6 .NET Framework EF providers, WPF/Forms designers are still WIP and have issues with commercial component libraries, WCF well, no one is looking forward to rewrite their working code with gRPC.
And many are still a little burned with Silverlight and how the whole WinRT, UAP, UWP story went.
Back in the .NET Code 2.0 days, I had a project to rewrite a .NET Application into Java, because the customer in question saw a better business value in doing so than investing in .NET Core. Mainly because .NET Core didn't had support for some critical libraries being used in the .NET Application, while the libraries vendor did support a Java counterpart for them.
Yes, they will eventually move to .NET Core, when it makes business sense to allocate budget to do so.
That is just my experience, others will vary.
Desktops themselves are far from mainstream! The vast majority must be owned by gamers and video editors; both groups use predominantly non-Linux for reasons mostly unrelated to support that is or isn't in the kernel.
(and macOS can't really be called a BSD derivative; it is a mostly different OS that has taken some of its code from FreeBSD)
Some people are motivated by the allure of fringe projects. There's usually a lot of exploration and learning involved with those projects, which can be very rewarding. Not to mention you gain a deeper appreciation for the unbelievable amount of work that goes into the projects.