> In addition, for several years now, Microsoft's WSL developers have been working on mapping Linux API calls to Windows and vice-versa. A lot of the work needed for Windows apps to run without modification on Linux has already been done.
This argument makes little sense: that "vice versa" is wholly unsubstantiated and without it the rest collapses. Making Linux binaries work on NT (which already has a subsystem concept; Interix proved that this could be done) in a way where they interact little with the Windows desktop, and making not just NT binaries but Win32 binaries work smoothly on Linux, are almost entirely unrelated problems.
It is true that MS owns the code necessary to make this happen, that WINE is an existence proof that it can be done shockingly well even without that code, and that there is both code and expertise at MS for stuffing Linux concepts and NT concepts in the same kernel. But that's about it.
On the other hand, Microsoft has been trying for years to get developers off win32 and onto .NET. Windows S mode was an experiment where they didn't support win32 at all. Much of .NET is already open source. One could argue they are ready to make a .NET shell around a linux kernel and ship MS Linux.
But ... why would they? The only reasoning I can see is if they could stop maintaining the windows kernel, like how the move to chromium means they have one less thing to maintain. But they have to keep maintaining it for all those enterprise windows deployments which are tied hard to win32 apps. So I think there's nothing here but clickbait. And yes, I clicked.
Yeah the article is just plain wrong about WSL being relevant here. WSL is running Linux binaries on an NT kernel. This article wants to run Win32 binaries on a Linux kernel. Totally different problems. I like WSL, but it's not part of the solution here.
(Also WSL's IO performance problems suggest this kind of emulation approach has significant costs.)
NT has the capabilities to run different API "Personalities". This was pretty major. WIN32 was only one of the APIs NT supported. IBM also did the same with Workplace OS, but it failed.
NT could have been a lot of things, if the competitive landscape was different.
From Wikipedia:
A main design goal of NT was hardware and software portability. Various versions of NT family operating systems have been released for a variety of processor architectures, initially IA-32, MIPS, and DEC Alpha, with PowerPC, Itanium, x86-64 and ARM supported in later releases. The idea was to have a common code base with a custom Hardware Abstraction Layer (HAL) for each platform. However, support for MIPS, Alpha, and PowerPC was later dropped in Windows 2000. Broad software compatibility was achieved with support for several API "personalities", including Windows API, POSIX,[11] and OS/2 APIs[12] – the latter two were phased out starting with Windows XP.[13] Partial MS-DOS compatibility was achieved via an integrated DOS Virtual Machine – although this feature is being phased out in the x86-64 architecture.[14] NT supported per-object (file, function, and role) access control lists allowing a rich set of security permissions to be applied to systems and services.
Here's a dopey idea: What if Microsoft open-sourced the Windows NT kernel? (While retaining some proprietary drivers, etc..)
If handled well, a community would blossom around "NT," with multiple "unofficial" distros (maybe one with full POSIX compatibility), and lots and lots of happy developers. If things went really well, they might even achieve the resources necessary to create Windows Phone 2.0.
Microsoft could still make money from consumer/enterprise support plans (i.e. AppleCare), and via commissions on sales in the Windows app store. And an open-source Windows could lead to growth as a cloud OS, driving revenue for MS Azure.
Open sourcing the Windows kernel would be the ultimate culmination of Microsoft's turnaround, and IMHO a fair penance for evil deeds past. Nothing could do more to invigorate the open-source community. I would be so delighted I might even start to use Bing! It's never going to happen, but it is a very pleasant dream. Far better than "One Kernel to Rule them All!"
Amazon and Google are likely to make cloud-ready NT distros, cutting off Microsoft's last cash lifeline on rival clouds. So it would have significant costs.
On the other hand, Flash once had API dominance and lost it as they (fortunately!) abdicated to HTML5. MS is now extremely aware that Win32 isn't the future - they even cut the OS into pieces and reorg'd NT under us (Azure.)
.NET Core is the way forward for the company. I could totally see us releasing "NT Core" without the Win32 userland, and WSL, Modern and .NET Core as the official personalities.
We could even release the shell that way. But it would pull a bunch of developers away from new scenarios to put onto an ever-shrinking desktop market.
Most likely we'll just see all new products become cross-platform and the execs will wait until a new "iPhone moment" comes along to get ahead with consumer OS.
This is commonly suggested and I don't even think from a business revenue standpoint it would be a big deal for them. The biggest issue is that it is a 20 year code base with 20 year old bugs and open sourcing the whole thing would immediately generate open season on Windows boxes from a security standpoint.
You'll see Microsoft open source new things as they go, and probably smaller components as they rework them, but I doubt you'll ever see a truly fully open source Windows, just because of the amount of work involved.
Even shared source would be great. You can see the code, you can audit it for security or privacy issues, disable parts you don't like and distribute modified versions to people who already have a licensed copy of Windows.
That won't dry up Microsoft's revenue stream, and is a great middle ground between open and closed source.
There would be nothing to stop anyone else launching their own app stores, and other cloud vendors would immediately be better able to compete with Azure, so both those streams of revenue would be dramatically weakened, not strengthened.
Enterprise support contracts are mainly about OS upgrades and patches. That would probably stay the same for MS, they would dominate in the same way Red Hat dominates the Linux enterprise. I don’t think this would be strengthened in any way though. It would be pros and cons.
I suspect not legally possible. There is a lot of code in the NT kernel from various other companies that at least at one point was under NDA, and a lot probably still is.
I don't think you need an open source kernel for POSIX compatibility, afair NT allows different OS "personalities" to coexist and you could write a POSIX compatible one as a kernel module.
But I don't think that has more interest than a Linux compatible subsystem, which they already have.
I'd like to use linux, and install it from time to time, but am always eventually worn down by problems, some trivial & some less so, that could mostly be solved, but at the cost of research & fiddling time I'm not interested in spending.
The issues largely fall into two categories - missing software, and missing or undercooked hardware support. If Microsoft did signal to the market an increased long-term support for Linux with a concomitant warning about Windows' longevity, I suspect these issues would be mitigated. Bring it on.
I'm in the same boat and have the same thoughts. I'm essentially trapped on OSX, and have been for a decade - sure, with enough pain and effort I might be able to kinda-sorta get by on linux, but in practise the barrier is just too high. And windows has never really even been an option until fairly recently.
I'd love to see real competition in the OS space for people who need both a decent app ecosystem and open source developer tools.
Having had a decent go at all three major OSes (windows, osx and Linux) in the past few years, I've found all of them to have a whole bunch of annoyances that stop me being able to do what I want, how I want it.
> The issues largely fall into two categories - missing software, and missing or undercooked hardware support.
I've trying every Fedora release for about two years, with a view to switching (back) from macOS. Everybody has their priorities, but Fedora is now there on software and features for my uses. If I switch back now, I'll lose the official Google Drive client, but that's it.
In the past, I've run Linux desktops without hardware issues by buying slightly older ex-corporate laptops with Intel CPUs and graphics. Today, there seem to be a bunch of vendors offering Linux preloaded, so I don't expect to this to be a big problem.
Yep. My problem is always the same - lack of documentation and transparency for the desktop side of things.
Example - I installed latest ubuntu on my laptop. Few days later, I needed to share my internet connection from wifi to ethernet. Ok, no problem, I'll just google it. Answer says it's easy as anything, you just open the connection manager, tick two boxes and done. Except....on latest version of ubuntu, the connection manager looks nothing like the one shown in screenshots, and doesn't have that option. Ok, so I start digging(and it's not easy, because almost every result on google shows me something that doesn't exist anymore). Finally, I find a command to open the old network manager, because of course it still exists - and voila, it works straight away. Except that I wanted to set up some filtering where only certain ports would be allowed through...no issue, I'll just use iptables. Fine. But since the last time I used Linux, someone had a moronic idea to change the interface names from easily understandable (eth0 for ethernet, wl0 for lan) they are now all something like eb239xsd83d, because of course that's easier to remember and type. And there is no way to instinctively tell what is ethernet and what is wifi anymore. Lovely.
Like, this is all extremely minor and easy to fix with some googling, but it feels like every damn time I want to do anything on Linux, I have to use the terminal. Ughhhh.
I suggested on Mini-Microsoft about 10 years ago that Microsoft do an 'Apple'. Apple took a free OS from BSD and put their own GUI over the top of it. I suggested that MSFT do the same sort of thing, that being to put their Windows GUI on top of the Linux OS instead of using the Linux X11 GUIs.
This had the advantage that the underlying OS base would no longer need maintaining by Microsoft, and all their coding efforts could be allocated to the Windows GUI, thus permitting Windows versions to be released far more often than every 5 years as was the case back then.
Being full of Softies, the crowd on Mini-Microsoft dismissed my suggestion out of hand, it being sacrilege of course to even think of marrying the 'upstart' Linux with the 'sacred' Windows code.
Naturally, today I am smiling to myself that MSFT could have taken my idea and run with it, but were too hidebound to do so and have lost 10 years in the process.
I agree with the skepticism here regarding the ease of getting Windows software working on Linux. The Wine and CrossOver folks are doing the Lord's work but even they have their limits.
Linux software tends to not rely on much. Linux makes it really hard to rely on much. The internals change often and the kernel is not nice to people who try to rely on implementation details, of what you can from usermode. You can hardly rely on libc when you are on Linux, and many try not to, to be more portable.
Windows software on the other hand is wild. Just look at the myriad of techniques used by anti-debugging and anti-reverse-engineering tools. A Linux binary wouldn't dream of reimplementing the runtime linker itself, but that's exactly what many packers do on Windows, to obscure the import address table and make patching/debugging harder. Did you know you can write into another processes address space with WriteProcessMemory? Why do we even have that lever!?
That's only considering usermode. But apps are just as eager to rely on kernel mode implementation details too, in the past it was even common to patch the SSDT to modify syscall behavior. Anti-cheat in video games can still do evil things even on Windows 10; nProtect GameGuard's kernel module seems to hide its usermode processes somehow. I'm pretty sure Linux kernel modules can't easily do that.
I'd love better Windows compatibility on Linux. Heck, I'm excited by what Valve is doing with Proton too. But in the end, I think much of the Windows software library is just too deeply ingrained in the Windows legacy.
The Windows NT kernel has better hardware support and Microsoft is showing that they can run a full Linux userland on top of it. What do they gain from shipping Linux for the desktop?
When one of these companies realizes they can create a polished Linux distribution, using the absurd amount of funds they have, the future of desktop computing is theirs.
And the funny thing is it is probably less work than maintaining their current solution.
Also I don’t think it has to be an either or situation. There is nothing stopping MS from supporting NT systems and putting future development into Linux systems. Similar to how they’re doing .NET and .NET Core. Over time they can port their office suite and other programs and drivers to the Linux system and the users will come with them.
And at this point they’ve already started to drive developers away from NT because of their Linux offerings. Let’s be honest, most developers would pick Unix in a heartbeat over NT (to develop in and deploy to) and now they have that option.
Also if anyone with power at Microsoft is reading this and this is a path the company ever takes: don’t make a ChromeOS, make an Ubuntu.
While desktop platform control is important and probably has a positive ROI, the article argues that desktop OSs are already "good enough", and that Microsoft can probably find more profitable alternatives for their engineering effort.
This is the same motive behind the switch to Chromium, that browsers are "good enough" and that the marginal gains of platform independence aren't worth the heavy investment.
I honestly don't think Microsoft cares about the Windows Desktop platform anymore. Certainly their actions regarding Windows 10 don't suggest that they do.
My bet is that if they release a Linux distro, it will be Microsoft's take on ChromeOS, tied to Azure and Office 365 and all that, with any other stuff shunted off somewhere in a container or VM. Oh, you can install your own software from other sources at will, you'll just have to compile it yourself or rely on a network of repos and maintainers. It'll be the death of everything I actually like about computing and I'm not looking forward to it.
No. They just plan to use developer tools (chrome based browser + vstudio) to push their one-push-publish-to-cloud.
embrace (chromium), extend (dev tool features that will only work with vsStudio but is awesome), extinguish (tool now only work with vsstudio when serving from azure because they are moving faster than open standards.)
I don't think this is happening, Visual Studio is basically a legacy product at this point. Still developed and maintained, but not a major focus for MS, and they want to push Azure adoption as much as possible so I don't think we'll see IDE lock in like you're talking about.
They could even use WSL to put Linux on top of the NT kernel. It'd be called Microsoft GNU/Windows.
Or they could ditch the GNU part and go for a non-GNU libc and userland like the article suggests. That wouldn't save nearly as much money as the article speculates because the Windows userland is humongous - NT is a small part of the whole, much like the Linux kernel is a vanishingly small part of the distributed effort of building desktop Linux distros.
If 2 of the biggest Linux distributors get owned by giants with their intention of trying to save themselves than save the market is going to be a bad ride.
What other commercially supported option do we have for those concerned?
Back when Windows 8 was causing all sorts of problems I did my annual top ten list of what's coming in the following year. One of my predictions was that Microsoft would move Windows to using Linux as the back end.
Overall Windows would become much more stable, they might be able to get some Mac users to switch and they could put more people on getting the UI right. Like a lot of my bolder predictions on each years list I got it way wrong.
In my defense I didn't know anyone at Microsoft at the time to run my idea by. Still think it makes some sense though in a way they ended up giving Windows at the *nix command line as a gift to Mac developers. I'm happy with Windows 10, for me it's just good enough.
Overall Windows would become much more stable, they might be able to get some Mac users to switch and they could put more people on getting the UI right. Like a lot of my bolder predictions on each years list I got it way wrong.
Why would you think they would do this? NT is the architecturally more modern kernel. People should read up on the history of the NT kernel [1]. And if they should do this for non-technical reasons, I think it is more likely that they go for some permissively-licensed kernel (e.g. FreeBSD) to avoid the GPL.
In the end, Microsoft did exactly the opposite: make it possible to run Linux binaries on Windows. Windows Subsystem for Linux is a testament to the strengths of the NT kernel. NT supports multiple 'personalities' and Win32 is just one personality, the Linux ABI is another personality. One could say that the Linux ABI is almost as native to the core NT kernel as the Win32 ABI is.
At any rate, I think that the Windows desktop is getting less and less important to them. So rather than going through the massive work of porting Window on top of the Linux kernel, I think it is more likely that they put Windows in maintenance mode and make/fork something along the lines of ChromeOS or Android for client systems.
(Disclaimer: I haven't seriously used Windows since Windows 3.1. It just bothers me when people misrepresent Windows or the NT kernel.)
I've thought the same thing for a long time (10+ years, I must be wrong). It makes sense from a business perspective as well. I still think it will happen, but not sure when. The addition of Ubuntu shell was a pretty interesting move.
Well, Steam [1] is probably a good measure of "desktop" as it's usually home users that install on their personal computers?
So, by that measure Linux has ¼ of the users of MacOS.
The significance of that for you is not my call though.
Steam's top seller in 2017 was PUBG at $600 Million, so assuming equal spread of revenue that 0.8% represents $4.8M you're leaving on the table. With less competition on Linux then there's possibly a higher revenue to be gained there for AAA titles? It might be worth risking a bit of dicking around with Proton/WINE to get your game working for a few extra mega-dollars?
NetMarketShare.com gives similar ratios for Linux : Mac on desktop, giving Linux 2% of desktop/laptop installs.
Microsoft is always a business not IT. In fact, underlying the whole IT revolution they are the key to transform it to business to the horror of the whole industry. Software as a business is not a model even for ibm. We have share/guide then and even now you can run Ibm os on pc.
Hence the question what is the business model. It is nothing to do with technology. It is as godfather have taught it - nothing personal but business.
The article mentioned about azure, here Xbox, guess pc side the old business they do os and oem do hw (vs iphone and mac mode of integrated business down to make apple cpu), rental model ...
Hence the question is not about whether it can but how.
It is all business to Microsoft and google. A bit different on apple side in the past ...
That is why we should be worry. The old embrace, extend and extinct is logical path for all business and empire.
Anyway, they are moving and get that here and there like github. But would they worry as a buisness about java and android model.
If Microsoft has an OS based on Linux and with good UI and MS support this rocks! Today it's not about OS, but about cloud services and Software used by users.... Email, Calendar, something more valuable... Anyway, Linux is about free configuration, make API for anything you wish, that is important for a user or (heavy-user). iOS and Apple already done this I think. (in some way, You can't change Apple Binary code, but You have API-s to change the behavior of MAC-OS in real world). It's complicated story anyway.
If it happens, it would be the most jaw dropping event of the decade.
But MS has a room to keep their own ecosystem as losing it will have less diversity as we've seen when they dropped Edge not to mention the world will come to a halt without Windows that can run apps from the last 20 years.
Having a UNIX kernel at the core would be really nice which would make developers easy to port apps between OS but how would the world deal with all the irreplaceable apps on Windows?
I think that such a product, even if developed internally, it would be stopped by the business team. The reason being it would be better than Windows in many aspects.
I'm a long time Linux user, but got an ultraportable lately and kept windows on a small partition (mostly for BIOS updates).
Linux was installed without any issues, everything except the fingerprint reader works. The interesting thing is that it does not just work, it works better. The most pronounced difference is the touchpad. On windows it is frequently stuck —and it's not palm rejection because I never had an issue in Linux. The 3 finger click that is paste or _open in new tab_ in Linux, in Windows opens Cortana. With Linux battery lasts longer. With Windows, the fan starts turning without any reason while the process manager says _no process is running_. Very annoying. Windows constantly nug me because I used my skype account which, according to them, does not have an associated email. Applications go into full screen without any indication on how to close them. I have to search for software on the internet, via my browser. The other day I wanted to start Windows for a Lync meeting and it decided it has to install updates and restarted a couple times before allowing me to continue with my life.
Perhaps the most infuriating thing was the candy crash tiles that greeted me when I first booted the computer.
I'm not saying you should use Linux, but you should ask for better Windows.
[+] [-] geofft|7 years ago|reply
This argument makes little sense: that "vice versa" is wholly unsubstantiated and without it the rest collapses. Making Linux binaries work on NT (which already has a subsystem concept; Interix proved that this could be done) in a way where they interact little with the Windows desktop, and making not just NT binaries but Win32 binaries work smoothly on Linux, are almost entirely unrelated problems.
It is true that MS owns the code necessary to make this happen, that WINE is an existence proof that it can be done shockingly well even without that code, and that there is both code and expertise at MS for stuffing Linux concepts and NT concepts in the same kernel. But that's about it.
[+] [-] Joeri|7 years ago|reply
But ... why would they? The only reasoning I can see is if they could stop maintaining the windows kernel, like how the move to chromium means they have one less thing to maintain. But they have to keep maintaining it for all those enterprise windows deployments which are tied hard to win32 apps. So I think there's nothing here but clickbait. And yes, I clicked.
[+] [-] halbritt|7 years ago|reply
https://cloudblogs.microsoft.com/sqlserver/2016/12/16/sql-se...
[+] [-] NelsonMinar|7 years ago|reply
(Also WSL's IO performance problems suggest this kind of emulation approach has significant costs.)
[+] [-] unixhero|7 years ago|reply
From Wikipedia:
A main design goal of NT was hardware and software portability. Various versions of NT family operating systems have been released for a variety of processor architectures, initially IA-32, MIPS, and DEC Alpha, with PowerPC, Itanium, x86-64 and ARM supported in later releases. The idea was to have a common code base with a custom Hardware Abstraction Layer (HAL) for each platform. However, support for MIPS, Alpha, and PowerPC was later dropped in Windows 2000. Broad software compatibility was achieved with support for several API "personalities", including Windows API, POSIX,[11] and OS/2 APIs[12] – the latter two were phased out starting with Windows XP.[13] Partial MS-DOS compatibility was achieved via an integrated DOS Virtual Machine – although this feature is being phased out in the x86-64 architecture.[14] NT supported per-object (file, function, and role) access control lists allowing a rich set of security permissions to be applied to systems and services.
[+] [-] lukeh|7 years ago|reply
[+] [-] gingerbread-man|7 years ago|reply
If handled well, a community would blossom around "NT," with multiple "unofficial" distros (maybe one with full POSIX compatibility), and lots and lots of happy developers. If things went really well, they might even achieve the resources necessary to create Windows Phone 2.0.
Microsoft could still make money from consumer/enterprise support plans (i.e. AppleCare), and via commissions on sales in the Windows app store. And an open-source Windows could lead to growth as a cloud OS, driving revenue for MS Azure.
Open sourcing the Windows kernel would be the ultimate culmination of Microsoft's turnaround, and IMHO a fair penance for evil deeds past. Nothing could do more to invigorate the open-source community. I would be so delighted I might even start to use Bing! It's never going to happen, but it is a very pleasant dream. Far better than "One Kernel to Rule them All!"
[+] [-] sterlind|7 years ago|reply
On the other hand, Flash once had API dominance and lost it as they (fortunately!) abdicated to HTML5. MS is now extremely aware that Win32 isn't the future - they even cut the OS into pieces and reorg'd NT under us (Azure.)
.NET Core is the way forward for the company. I could totally see us releasing "NT Core" without the Win32 userland, and WSL, Modern and .NET Core as the official personalities.
We could even release the shell that way. But it would pull a bunch of developers away from new scenarios to put onto an ever-shrinking desktop market.
Most likely we'll just see all new products become cross-platform and the execs will wait until a new "iPhone moment" comes along to get ahead with consumer OS.
[+] [-] ocdtrekkie|7 years ago|reply
You'll see Microsoft open source new things as they go, and probably smaller components as they rework them, but I doubt you'll ever see a truly fully open source Windows, just because of the amount of work involved.
[+] [-] aasasd|7 years ago|reply
[+] [-] kartickv|7 years ago|reply
That won't dry up Microsoft's revenue stream, and is a great middle ground between open and closed source.
[+] [-] zozbot123|7 years ago|reply
ReactOS exists today, and how many people care about it? Does NT even matter, except as a basic layer for the Win32 and UWP platforms?
[+] [-] simonh|7 years ago|reply
Enterprise support contracts are mainly about OS upgrades and patches. That would probably stay the same for MS, they would dominate in the same way Red Hat dominates the Linux enterprise. I don’t think this would be strengthened in any way though. It would be pros and cons.
[+] [-] dbcurtis|7 years ago|reply
[+] [-] riffraff|7 years ago|reply
But I don't think that has more interest than a Linux compatible subsystem, which they already have.
[+] [-] crispinb|7 years ago|reply
The issues largely fall into two categories - missing software, and missing or undercooked hardware support. If Microsoft did signal to the market an increased long-term support for Linux with a concomitant warning about Windows' longevity, I suspect these issues would be mitigated. Bring it on.
[+] [-] sho|7 years ago|reply
I'd love to see real competition in the OS space for people who need both a decent app ecosystem and open source developer tools.
[+] [-] askvictor|7 years ago|reply
[+] [-] sjellis|7 years ago|reply
I've trying every Fedora release for about two years, with a view to switching (back) from macOS. Everybody has their priorities, but Fedora is now there on software and features for my uses. If I switch back now, I'll lose the official Google Drive client, but that's it.
In the past, I've run Linux desktops without hardware issues by buying slightly older ex-corporate laptops with Intel CPUs and graphics. Today, there seem to be a bunch of vendors offering Linux preloaded, so I don't expect to this to be a big problem.
[+] [-] gambiting|7 years ago|reply
Example - I installed latest ubuntu on my laptop. Few days later, I needed to share my internet connection from wifi to ethernet. Ok, no problem, I'll just google it. Answer says it's easy as anything, you just open the connection manager, tick two boxes and done. Except....on latest version of ubuntu, the connection manager looks nothing like the one shown in screenshots, and doesn't have that option. Ok, so I start digging(and it's not easy, because almost every result on google shows me something that doesn't exist anymore). Finally, I find a command to open the old network manager, because of course it still exists - and voila, it works straight away. Except that I wanted to set up some filtering where only certain ports would be allowed through...no issue, I'll just use iptables. Fine. But since the last time I used Linux, someone had a moronic idea to change the interface names from easily understandable (eth0 for ethernet, wl0 for lan) they are now all something like eb239xsd83d, because of course that's easier to remember and type. And there is no way to instinctively tell what is ethernet and what is wifi anymore. Lovely.
Like, this is all extremely minor and easy to fix with some googling, but it feels like every damn time I want to do anything on Linux, I have to use the terminal. Ughhhh.
[+] [-] simonblack|7 years ago|reply
This had the advantage that the underlying OS base would no longer need maintaining by Microsoft, and all their coding efforts could be allocated to the Windows GUI, thus permitting Windows versions to be released far more often than every 5 years as was the case back then.
Being full of Softies, the crowd on Mini-Microsoft dismissed my suggestion out of hand, it being sacrilege of course to even think of marrying the 'upstart' Linux with the 'sacred' Windows code.
Naturally, today I am smiling to myself that MSFT could have taken my idea and run with it, but were too hidebound to do so and have lost 10 years in the process.
[+] [-] jchw|7 years ago|reply
Linux software tends to not rely on much. Linux makes it really hard to rely on much. The internals change often and the kernel is not nice to people who try to rely on implementation details, of what you can from usermode. You can hardly rely on libc when you are on Linux, and many try not to, to be more portable.
Windows software on the other hand is wild. Just look at the myriad of techniques used by anti-debugging and anti-reverse-engineering tools. A Linux binary wouldn't dream of reimplementing the runtime linker itself, but that's exactly what many packers do on Windows, to obscure the import address table and make patching/debugging harder. Did you know you can write into another processes address space with WriteProcessMemory? Why do we even have that lever!?
That's only considering usermode. But apps are just as eager to rely on kernel mode implementation details too, in the past it was even common to patch the SSDT to modify syscall behavior. Anti-cheat in video games can still do evil things even on Windows 10; nProtect GameGuard's kernel module seems to hide its usermode processes somehow. I'm pretty sure Linux kernel modules can't easily do that.
I'd love better Windows compatibility on Linux. Heck, I'm excited by what Valve is doing with Proton too. But in the end, I think much of the Windows software library is just too deeply ingrained in the Windows legacy.
[+] [-] cwyers|7 years ago|reply
[+] [-] viraptor|7 years ago|reply
There are still missing features. There's a lot of userland working, not nearly 100%.
[+] [-] marsrover|7 years ago|reply
And the funny thing is it is probably less work than maintaining their current solution.
Also I don’t think it has to be an either or situation. There is nothing stopping MS from supporting NT systems and putting future development into Linux systems. Similar to how they’re doing .NET and .NET Core. Over time they can port their office suite and other programs and drivers to the Linux system and the users will come with them.
And at this point they’ve already started to drive developers away from NT because of their Linux offerings. Let’s be honest, most developers would pick Unix in a heartbeat over NT (to develop in and deploy to) and now they have that option.
Also if anyone with power at Microsoft is reading this and this is a path the company ever takes: don’t make a ChromeOS, make an Ubuntu.
[+] [-] overgard|7 years ago|reply
crickets
[+] [-] DylanDmitri|7 years ago|reply
This is the same motive behind the switch to Chromium, that browsers are "good enough" and that the marginal gains of platform independence aren't worth the heavy investment.
[+] [-] AnIdiotOnTheNet|7 years ago|reply
My bet is that if they release a Linux distro, it will be Microsoft's take on ChromeOS, tied to Azure and Office 365 and all that, with any other stuff shunted off somewhere in a container or VM. Oh, you can install your own software from other sources at will, you'll just have to compile it yourself or rely on a network of repos and maintainers. It'll be the death of everything I actually like about computing and I'm not looking forward to it.
[+] [-] TheSpiceIsLife|7 years ago|reply
[+] [-] qwerty456127|7 years ago|reply
Because in every other aspect but the very kernel (and the UI perhaps) Windows is a disaster. Windows Update especially.
[+] [-] gcbw2|7 years ago|reply
embrace (chromium), extend (dev tool features that will only work with vsStudio but is awesome), extinguish (tool now only work with vsstudio when serving from azure because they are moving faster than open standards.)
[+] [-] jrs95|7 years ago|reply
[+] [-] rbanffy|7 years ago|reply
Or they could ditch the GNU part and go for a non-GNU libc and userland like the article suggests. That wouldn't save nearly as much money as the article speculates because the Windows userland is humongous - NT is a small part of the whole, much like the Linux kernel is a vanishingly small part of the distributed effort of building desktop Linux distros.
[+] [-] titanix2|7 years ago|reply
[+] [-] paxys|7 years ago|reply
[+] [-] h1d|7 years ago|reply
What other commercially supported option do we have for those concerned?
[+] [-] setquk|7 years ago|reply
https://youtu.be/H27rfr59RiE
[+] [-] devoply|7 years ago|reply
[+] [-] crimsonalucard|7 years ago|reply
[+] [-] rmason|7 years ago|reply
Overall Windows would become much more stable, they might be able to get some Mac users to switch and they could put more people on getting the UI right. Like a lot of my bolder predictions on each years list I got it way wrong.
In my defense I didn't know anyone at Microsoft at the time to run my idea by. Still think it makes some sense though in a way they ended up giving Windows at the *nix command line as a gift to Mac developers. I'm happy with Windows 10, for me it's just good enough.
[+] [-] microtonal|7 years ago|reply
Why would you think they would do this? NT is the architecturally more modern kernel. People should read up on the history of the NT kernel [1]. And if they should do this for non-technical reasons, I think it is more likely that they go for some permissively-licensed kernel (e.g. FreeBSD) to avoid the GPL.
In the end, Microsoft did exactly the opposite: make it possible to run Linux binaries on Windows. Windows Subsystem for Linux is a testament to the strengths of the NT kernel. NT supports multiple 'personalities' and Win32 is just one personality, the Linux ABI is another personality. One could say that the Linux ABI is almost as native to the core NT kernel as the Win32 ABI is.
At any rate, I think that the Windows desktop is getting less and less important to them. So rather than going through the massive work of porting Window on top of the Linux kernel, I think it is more likely that they put Windows in maintenance mode and make/fork something along the lines of ChromeOS or Android for client systems.
(Disclaimer: I haven't seriously used Windows since Windows 3.1. It just bothers me when people misrepresent Windows or the NT kernel.)
[1] https://www.itprotoday.com/compute-engines/windows-nt-and-vm...
[+] [-] simpsond|7 years ago|reply
[+] [-] jaclaz|7 years ago|reply
https://www.linspirelinux.com/
[0] https://en.wikipedia.org/wiki/Microsoft_Corp._v._Lindows.com....
[1] https://en.wikipedia.org/wiki/Linspire
[+] [-] karmasimida|7 years ago|reply
[+] [-] pbhjpbhj|7 years ago|reply
So, by that measure Linux has ¼ of the users of MacOS.
The significance of that for you is not my call though.
Steam's top seller in 2017 was PUBG at $600 Million, so assuming equal spread of revenue that 0.8% represents $4.8M you're leaving on the table. With less competition on Linux then there's possibly a higher revenue to be gained there for AAA titles? It might be worth risking a bit of dicking around with Proton/WINE to get your game working for a few extra mega-dollars?
NetMarketShare.com gives similar ratios for Linux : Mac on desktop, giving Linux 2% of desktop/laptop installs.
[1] https://store.steampowered.com/hwsurvey
[2] https://www.gamesindustry.biz/articles/2018-03-23-valves-gen...
[3] https://www.netmarketshare.com/operating-system-market-share...
[+] [-] ngcc_hk|7 years ago|reply
Hence the question what is the business model. It is nothing to do with technology. It is as godfather have taught it - nothing personal but business.
The article mentioned about azure, here Xbox, guess pc side the old business they do os and oem do hw (vs iphone and mac mode of integrated business down to make apple cpu), rental model ...
Hence the question is not about whether it can but how.
It is all business to Microsoft and google. A bit different on apple side in the past ...
That is why we should be worry. The old embrace, extend and extinct is logical path for all business and empire.
Anyway, they are moving and get that here and there like github. But would they worry as a buisness about java and android model.
Let us see.
[+] [-] thomasdd|7 years ago|reply
[+] [-] h1d|7 years ago|reply
But MS has a room to keep their own ecosystem as losing it will have less diversity as we've seen when they dropped Edge not to mention the world will come to a halt without Windows that can run apps from the last 20 years.
Having a UNIX kernel at the core would be really nice which would make developers easy to port apps between OS but how would the world deal with all the irreplaceable apps on Windows?
[+] [-] TheSpiceIsLife|7 years ago|reply
[+] [-] andmarios|7 years ago|reply
I'm a long time Linux user, but got an ultraportable lately and kept windows on a small partition (mostly for BIOS updates). Linux was installed without any issues, everything except the fingerprint reader works. The interesting thing is that it does not just work, it works better. The most pronounced difference is the touchpad. On windows it is frequently stuck —and it's not palm rejection because I never had an issue in Linux. The 3 finger click that is paste or _open in new tab_ in Linux, in Windows opens Cortana. With Linux battery lasts longer. With Windows, the fan starts turning without any reason while the process manager says _no process is running_. Very annoying. Windows constantly nug me because I used my skype account which, according to them, does not have an associated email. Applications go into full screen without any indication on how to close them. I have to search for software on the internet, via my browser. The other day I wanted to start Windows for a Lync meeting and it decided it has to install updates and restarted a couple times before allowing me to continue with my life. Perhaps the most infuriating thing was the candy crash tiles that greeted me when I first booted the computer.
I'm not saying you should use Linux, but you should ask for better Windows.