Microsoft is not rebasing Windows to Linux
boxofcables.dev
boxofcables.dev
Everyone who thinks that using the Linux Kernel is better than NT is already using Linux. Everyone who needs some sort of intermediary support uses Dualboot/WSL/etc. Windows would never sacrifice it's backwards compatibility. This is the company that won't change the bug that makes excel think 1900 is a leap year so that it doesn't break people's spreadsheets. [0] Not to mention porting windows would take a LOT of work.
[0] https://docs.microsoft.com/en-us/office/troubleshoot/excel/w...
I wish I could believe this, but the way Windows has been trending since 10 leaves me skeptical that the old Windows philosophies of catering to the user, keeping things consistent, and being backwards compatible are being smothered by whoever the fuck is working on it today.
On the desktop/workstation line though, let's take a trip down memory lane and remember all these upgrades together: Windows 3.11 -> 95 -> 98 -> Me -> XP -> Vista -> 7 -> 8 -> 10.
I am having a really hard time seeing how one can infer from that timeline that Microsoft's desktop OS line follows a philosophy of "catering to the user, keeping things consistent, and being backwards compatible." Windows 98 didn't cause much hassle, but, at least from my experience, that was really it. Windows 7 had its share of hassles, too. Particularly, as I recall, in the backwards compatibility department. We just remember it fondly because it was sandwiched in between Windows Vista and Windows 8.
The introduction of WDDM along with the new sound and networking driver architectures caused some headache in Vista, but were ultimately significant improvements over the way things had been.
10, on the other hand, made automatic updates mandatory, and pushed itself on everybody through dark patterns. It puts ads in the start menu and on the lock screen. It started, but didn't finish, implementing new interfaces nobody asked for while deprecating the old ones they still hand't entirely replicated. Today, they're doing their damnedest to hide the fact that you don't need a Microsoft account to set up your computer.
Pretty sure the same stands for Android.
Sure I would say this would make it more of a feature phone but the device itself is quite usable without an iCloud account.
macOS is also quite a capable workstation OS that needs no account other than a local account.
Windows 10 Home you cannot even create a local account without having the Internet disconnected.
In the simple sense that you can run ancient Win 95 applications in any of these later versions (if not 3.11 and DOS too).
In theory, according to MS. In reality we all have seen old applications die when windows updates. Security-related applications are notorious for this. What once worked perfectly well with Win8 now goes into total panic mode when it sees Win10 doing its thing in unexpected ways.
I wouldn't expect "security related" applications to work (e.g. some antivirus), as they use bizarro / too low level APIs.
But you can still run 15+ year old games, office apps, and whatever...
One reason for this, interestingly, is that NT had less of a past to deal with - it was a clean-sheet design by one of the most experienced OS kernel designers on the planet (David Cutler, from DEC) - Linux was still trying to be "Unix-like" and maintain (more or less) POSIX compatibility (though to be fair, POSIX didn't show up until about the time Linux grew out of its hobbyist toy phase...)
- https://devblogs.microsoft.com/oldnewthing/20030828-00/?p=42...
- https://devblogs.microsoft.com/oldnewthing/20050118-00/?p=36...
- https://devblogs.microsoft.com/oldnewthing/20051026-44/?p=33...
- https://devblogs.microsoft.com/oldnewthing/20060109-27/?p=32...
- https://devblogs.microsoft.com/oldnewthing/20060110-17/?p=32...
- https://devblogs.microsoft.com/oldnewthing/20070723-00/?p=25...
- https://devblogs.microsoft.com/oldnewthing/20200526-00/?p=10...
They had an incredible focus on backwards compatibility. That no longer seems to be the case.
Windows Desktop Evangelism playbook hasn't changed since 2000.
Perfect backwards compatibility means a perfect inability to fix any mistakes of the past.
With UAC and WDM -> WDF, they finally established an intent to deprecate older (and insecure / poorly-designed) functionality.
That said, imho, the user-mode / UI/X compatibility is an absolute !*&$ show with respect to predictability. Especially in the "utility program -> app" transition, wherein the latter still aren't feature-complete. Whoever PMs over those teams should be fired.
It's disabled the VirtualBox install that I've been running for a year or so with no issues, on the basis that it's "old software".
This certainly shows the true face of the new Microsoft.
And in about 10 years pretend that the road started by Sinosfky on Windows 8 never happened.
They wouldn't necessarily need to sacrifice backwards compatibility. They would just have to ensure that the new OS fully supports all of their APIs from the past.
Imagine Wine but 10 times better, built into the OS natively, and built by 500 engineers with full-time pay. I'm sure it could be pulled off, if they wanted to.
But they probably don't want to.
They did add that. With the initial Windows 7 release. In 2009.
I have a hard time doing that, Wine is already so good. I can certainly imagine better but even 2x better is kinda hard to picture.
The decor and fonts look like Windows 95. Unicode characters don't display and show as boxes. Input methods don't work. Lots of hardware doesn't work. There's no obvious way to configure all the things you can usually configure in Windows. GPU accelerations don't work properly in things like Adobe's products.
It has come very far but only if you judge it by the fact that everyone is doing work for it for free.
Actually, there is a company called CodeWeavers[1], which sells software based on Wine. CodeWeavers's Wiki page says "The CrossOver version of Wine is regularly refreshed with the latest free Wine patches; likewise, patches from the company are sent back to the Wine project almost immediately. CodeWeavers is a major contributor to the Wine project ... hosts the project's website, and employs the project's maintainer, Alexandre Julliard, as their CTO."
Alexandre Julliard has his own Wikipedia page, also saying "He now works full-time on Wine for CodeWeavers."[2] If you look at Wine's changelogs like in https://www.winehq.org/announce/5.19 , you see his name on a bunch of commits. Piotr and Jacek Caban are names I also recognize as having been prominent contributors for years, and googling quickly shows they are CodeWeavers employees as well. So it seems true. I'm tempted to go buy CrossOver just to support their effort.
That is basically what WSL1 is: WINE, but backwards.
Background: I have a Customer who needed to maintain Windows 7 support for a legacy application on a single computer. For $175 to get 3 more years out of a paid-for critical application it was a "no-brainer" (and 3 more years to figure out a replacement strategy). Obviously, not all situations will be as simple.
Win10 -- which I also own -- has horrible UI and takes the simplicity + familiarity out of Windows, and I just don't want to move any active work to it.
Not to mention Windows 8 came out in October 2012 (with 8.1 the next year) and Windows 10 came out July 2015. I think it’s reasonable for Microsoft to want people to upgrade within 11 years at least once. Especially since Windows 10’s been out for over five years.
https://docs.microsoft.com/en-us/lifecycle/faq/extended-secu...
* Server products and cloud services: 41 (in 2020), 26 (in 2018)
* Office products and cloud services: 35 (in 2020), 28 (in 2018)
* Windows: 22 (in 2020), 19 (in 2018)
* Gaming: 12 (in 2020), 10 (in 2018)
Windows continues to be important (probably a defensive revenue stream), but strategically I wonder what the advantage is of switching to a Linux kernel. So many things would break (the 3rd party driver ecosystem for one would have to turn over several times to catch up), plus MS would lose full control over the direction of kernel development. It also doesn't really help or hinder their Azure strategy -- a large percentage of VMs on Azure are Linux VMs. But I'll stop pontificating without real knowledge and just leave it at that.
[1] https://microsoft.gcs-web.com/static-files/4e7064ed-bbf7-414...
The times have changed, it's not 2008 anymore. Microsoft doesn't really sell Windows upgrades anymore. They don't need to convince the user to purchase a new version of Windows by saying it won't break their programs. Now it's all Windows 10.
Microsoft will update the operating system users use and if it breaks something, oh well. There is no real competition to Windows anymore. Previously, the competition was staying on the previous version of Windows. macOS? This breaks programs even more often. Linux? Good luck getting an user to use that.
Haha, no. There are _tons_ of business running old versions (xp, 7, 8, vista not to mention different builds of 10).
There are also tons of people still using Windows CE who they're trying to woo over to Windows 10 IoT.
The hypothesis is that users would not even know. API compatibility would be retained through emulation layers, or perhaps hosting legacy Windows inside a VM.
Not proposing that Windows Subsystem On Linux (WSoL) is going to be real, but this attack seems out of touch to me with the technics of the matter. I don't think it is so unimaginable for Microsoft to create a non-disruptive rebase of their OS platform APIs onto another environment. Many have already, in their free time, done just that, quite successfully, albeit Microsoft would have to go further.
Remarkably apt. Mobile and the competition and especially the web have stripped the primacy of the desktop OS way back. There's mostly just inertia, a lot of legacy, keeping Windows moving forwards. And that legacy, as we keep seeing, is not that radically difficult to emulate or translate. The gui itself has expected behaviors, but I would not say they are loved? There are like 4 different sound control panels in modern windows. The legacy has kept piling up, but in a way that has never become more distinct, or more meaningful: it's chaotic & senseless. Whereas folks like Gnome can ship a radical 3.0, some radical shifts in their long 3.x series, and then go build a 4.0.
Beyond comparison to other gui computing systems, the greater trend wiping Windows relevance off the map is the cloud, is that we no longer want to care about individual computers & computing in isolation. Where we want to go today is across a panoply of systems, into a highly networked well connected cloud, albeit clouds that in practice have been alas radically infantile in ways ("Internet of Shit"), lacking much of the "PC-compatible" spirit of portability & consistency that supported & enabled the rise to the desktop. None the less, Marc has ended up being pretty spot on. Computing is multi-system, multi-device, computing is connected, & we expect most of our experiences to have online impact & usability: this is something that Windows has never really adapted to, never rebased around, despite attempts like Microsoft Live, Microsoft InfoCards, Microsoft OneDrive.
This Andreessen quote also highlights what Microsoft would gain by switching to Linux: far better debugged drivers. Instead of needing to write a Driver Development Kit (DDK)/Windows Driver Kit (WDK) with a bunch of ideas & hope people pick good ways to use the DDK & build robust support, sometimes stepping in themselves if they are desperate for better support. Often it's up to OEMs to fight with their hardware vendors to make the stuff work right. Where-as on Linux, best practices for devices drivers can evolve organically: as one device drivers learns & adapts & figures out good ways of, for example, playing sound, other device drivers can adapt & follow the lead. Common patterns can be surfaced & enshrined. The kernel is it's own documentation for how to move forwards, a nearly complete corpus of what it takes to compute. Windows on the other hand inherently lacks this ability to debug, to find sense for the developers on the platform, for those developers cannot relate with one another: they can only relate & share with Microsoft, whose time & support is limited.
What is Windows's purpose for existence? It reached such vast heights, but now what role does it have, what mission does it have? It's meaning is degraded by a world where devices are now, as Marc pointed out in 1995, terminals to a greater world, & it's distinction among operating systems is fuzzy, uncertain.
As this Chris Wilson's key "History of the Web" slide title declares, "The Web as universal platform"[1] has largely become true (among other erstwhile desktop competitors like native mobile apps). If Microsoft can gain better technical underpinnings, that is easier to support & make fast, by porting their environment & their platform APIs on top Linux, then they can perhaps better focus on finding real distinction & advantage for themselves, finding ways to reach out & regain relevance & connectivity from a more share-able, embraceable, knowable, & connective base (Linux). I think it would be a great advantage to Microsoft to build themselves atop the known & adoptable, with better drivers, better subsystems, & it would be better for us the consumers by far measure. This is why I think, although unlikely, Microsoft should rebase onto Linux.
> Who's doing exciting/ambitious desktop OS work? While mobile gets all the attention, we still spend a lot of time in front of our computers, and it feels like the host environment could be doing a lot more heavy lifting (particularly as a meta tool for thought) than it is.
https://mobile.twitter.com/patrickc/status/13164754712033607...
you be the judge based on follow-up replies!
Obviously Windows isn't going away - but how many of Microsoft's customers would know that their kernel has been swapped out when the UI and all the applets look identical? As far as they're concerned the switch could have already happened! All they care is the look-and-feel is the same and their applications still run. They don't care about the kernel.
It's not a matter of better, it's a matter of good enough and saving on expenses. Presumably those engineers could be better utilized somewhere that's generating more revenue.
That's the bottom line.
> Obviously Windows isn't going away - but how many of Microsoft's customers would know that their kernel has been swapped out when the UI and all the applets look identical
Right. Because it's just a simple switch to flip when changing kernels, and all of the Windows software will just go on working as it before.
On the flip side as Azure becomes more significant for MS the role of Linux becomes more significant. At some point the cost of working on two kernels is going to outweigh the benefit of transitioning Windows over to Linux.
Or maybe not. It's hard to predict things. Especially about the future.
This is really anecdotal, as I sadly did not find the article I have this information from, but IIRC, the core NT Kernel team isn't as big as one would expect, about a dozen to two dozens maximum (big emphasis on "if I recall correctly").
Also I believe Microsoft employs somewhere around 50.000 engineers, a good amount of whom work on and maintain low-level systems. I find it unlikely they'd have a shortage of sourcing talent for one of their core projects.
If the NT kernel is in maintenance mode that might be because they are planning on replacing it.
And, there a definite feature differences in how the kernels behave, so they will have to rewrite major sections of Windows to fall in line with the Linux way of doing things.
And on top of that they will have to support Wine, or their own equivalent of it. In order to make decades of Windows only applications work. Sure Wine works pretty decently now, but not at an acceptable level.
They appear to be working on getting Direct X to work on WSL, but not sure how that will work if its on raw Linux. I don't think it does.
And Windows handles drivers completely differently than Linux. There was a thread here in the last few days about the AMD drivers being ~10% of the lines of code in the Linux kernel. There is all kinds of specialized hardware that take advantage of Windows drivers. Which would now probably need to all be in the Linux kernel.
And how about Active Directory? Thats a huge part of the Enterprise use of Windows. Need to translate all those features and controls over to Linux too.
So even if you save a few Engineers on the kernel dev directly, you probably have hundreds of new jobs to deal with the migration. If not thousands.
Well, except - of course - if they need to use one of the multitudes more "programs" created just for Windows, which won't run on Linux.
Management bonuses > any technical knowlidge or reason
The whole IT progress was destroyed by this fact, from OSes to the cloud, from irc to fb, from cats videos to having live cat. From optimal protocols for the task to http. From native gui to html/js abomination,... from laundry machines that live 20 years to the ones that get broken in few years... It gets destroyed when complete analphabets drive the decision about progress trough their vision of getting more money.
At the end you will be running windows. With its look and feel, but with linux as kernel.
(I know that I am not great for anyone here, feel free to downvote me, but do take time to think about it. Consumerism destroyed the computer science and it is not getting any better)
What if Wine/Proton achieves 100% compatibility? How would it affect Linux user space? There would be much less friction to migrate, critical hardware just works.
How so? Maybe at least state something, not just put it in like an "undeniable fact".
> we need to pay large sums of money to kernel dev. depart
IIRC, their kernel (core) department is rather small - I really do not think that has anything to do with it.
They also hire already Linux kernel devs, and if they want to shape it for their OS stack, they'd need to do even more so.
And I'm really not sure how the mixed rant about planned obsolesce and replacement of the native clients, which are very hard to maintain for multiple OS, with using a cross platform technology instead, for better or worse, has to do anything with the initial stuff.
> It gets destroyed when complete analphabets drive the decision about progress trough their vision of getting more money.
So using the Linux kernel would be equivalent of the decision of an Illiterate?
Further, as you seem to care about IT progress, how does fare the NT kernel with that compared to the Linux Kernel?
The last time I looked the NT one lacked a lot of features, from control groups, to checkpoint restore whole processes, varying amount of namespaces, scheduling (CPU, IO, realtime, ...), highly sophisticated Filesystems with lots of research going on there and in other areas.
Linux is multiple order of magnitudes more diverse and accepting for research, features, new design approaches, ... in comparison to the NT kernel, so please, don't make yourself look stupid by stating as it would be the other way around.
> How so? Maybe at least state something, not just put it in like an "undeniable fact".
There are two areas where I would say the Linux kernel is obviously inferior:
* Process management. Everything from creating processes, inspecting them, debugging them, querying process status, etc., is just better on NT kernel.
Take process creation. On Linux, to do advanced stuff, you fork() (or clone() if you want to get a couple extra process args) the process, then potentially call several other syscalls in the child process to do things like change security parameters, enable debugging, close file descriptors (!), before calling exec() to actually invoke the new process image. And if any of those things error out for some reason, you need to have a backchannel back to the parent process to inform it of those errors, which you have to set up yourself. And since fork() only forks a single thread but keeps all other non-existent threads in the same state (e.g., held locks), it doesn't really work in multithreaded applications unless you're extremely careful. On Windows, it's CreateProcess() where one of the arguments is essentially a list of all the changes you want to make in the child process for capabilities.
If you want to do stuff like get a process memory map information, inspect remote environment, etc., on Linux, you get to parse procfs (and hope to hell you're not dealing with cross-namespace situations because things start to break down at that point). Procfs consists of a lot of files whose contents are in a textual format that has a lot of parsers which fail to handle edge cases correctly. On Windows, you get to use system calls like GetProcessInformation that returns a nice struct with all the relevant information in it--no parsing necessary!
Debugging is even more of a mess; Linux developers admit that ptrace is a broken API that needs to be gutted and replaced, but no one wants to touch it. Windows has things like CreateRemoteThread and editing remote memory maps without having to inject your code into the debuggee to call mmap.
* Handles. On Windows, everything is a handle, which means you can do things like wait for any relevant event in WaitForMultipleObjects. Linux has eventually gained a facsimile of this with the variety of file descriptors (e.g., signalfd, timerfd, pidfd) to coerce various kernel objects into things you can pass to poll, but this also runs into issues that file descriptors have properties that limit their utility, such as file descriptor exhaustion or their behavior with fork().
I'd also suggest that things like IOCP or the capability system in NT as things that may be superior to Linux, although io_uring may be a compelling alternative to the former, and the cgroup/namespace capabilities to the latter.
Like what kind of fucked up fantasy are these diehard Linux fans living in.
Don't forget, it was a long time ago but MS used to be quite cross-platform. My Commodore featured their BASIC "OS". They could be again. Will it happen today? Of course not. But it's not hard to imagine ten years in the future where NT is creaking from under-investment and finally abandoned in favor of much cheaper WINE/VM or ReactOS support. Operating systems and tools are now a commodity.
I can't at all see why either of those would indicate that Microsoft is gearing up to rebase Windows.
SWITCHAR='-'Tens of thousands of methods which power the majority of paid-for software. Microsoft has spent decades, and huge amount of man-power keeping all that software working, why would they flush all that away?
Leaving aside things which touch the GUI (which is a lot! You need a window to receive messages to use certain APIs!), the next big differences are the process API (no fork, starting processes is a lot more time consuming) and the advanced filesystem API (completion ports).
There are frankly a few pieces of the API that I would like to see go in the other direction, like WaitForMultipleObjects().
Countless times that codepage thing has haunted me when moving data from Windows workstations into automatic processing systems hosted on Linux.
If Windows goes to unicode by default, it will make things a lot worse because it won't be the same unicode.
Most programs assume it's all UTF-16, and it happens to work most of the time... at least until you encounter those sequences that are invalid.
Unfortunately I don't see that being common enough for data ingestion tools for this to be relevant for a very, very long time.
For now, it's just another pain point because you can't assume Windows == UTF-16 lookalike anymore.
There are situations in which for example VS Code will run git commands "behind the scenes" (without ever showing the command to the user). The way it is now, VS Code sometimes obtains a file name to be used as an argument to a git command from a Microsoft function that return the name with backslashes, gives the name to git, which doesn't consider a backslash a path separator, so git causes an error, "no file named foo\bar\bash," or such, and since that git command line (command with arguments) was never manually submitted or entered by the user, the user can't get past the error just by replacing some backslashes with slashes, then resubmitting the command line.
Microsoft could submit patches to the git project to make git recognize the backslash as a path separator, but there is no guarantee that the maintainers of git would accept the patches. So, Microsoft could end up choosing to bend (on the backslash issue) to make Windows more compatible with git -- and other Unix-centric projects.
Isn't Wine more like a hack?
Why would you want to have something like that when there's .NET Core? isn't it doing to solve problems that Wine tries to challenge once it supports crossplatform GUI? (so basically once MAUI is released)
* I'm not talking about Avalonia GUI framework which already exists and is crossplatform.
Not more so than Windows.
> Why would you want to have something like that when there's .NET Core? isn't it doing to solve problems that Wine tries to challenge once it supports crossplatform GUI?
No. .NET Core and Wine does not solve the same problem.
.NET Core only allows you to run applications written for .NET, which isn't most applications.
It’s a very nice tool, but the two dominant and old GUI frameworks for windows require win32 api for a bunch of stuff the last time i looked and there’s no getting away from it.
it is "A cross platform XAML Framework for .NET Framework, .NET Core and Mono."
So that is in a realm of possibility.
That said: (AFAIK) Both run on Wine in some versions.
But I would gladly pay Microsoft to have a wine like thing that supports a broader range of software better, because I prefer Linux to Windows.
AFAIK main revenue for MS is Azure and Office360, not Windows.
https://www.microsoft.com/en-us/store/b/windows
Windows 10 Home starts at $130, Pro is $200, and the business licenses start at $300. Given how much of Windows market share comes from business use, it’d be surprising they weren’t making a lot of money there. Since they’re a public company it’s easy to confirm that, yes, selling the most popular operating system in the world is profitable:
https://www.microsoft.com/en-us/Investor/earnings/FY-2020-Q2...
Even when Windows detected that the license was fake, it basically didn't do anything. Some occasional messaging and a black background was the worst of it. I figure Microsoft understood that pressure on not-rich home users would just beef up its competition.
You can use it, sure. But between the watermark that is always on top and lack of being able to customize the OS I wouldn't want to use "free windows".
Aside from that they are a an open source project, working on a open/libre alternative. Some people in the project certainly have issues with Microsoft, others don't.
*unless the games you play are online games with Anti-Cheat.
And it's funny you bring up anti-cheat, because my biggest success using Wine was Battlefield 2, which actually ran more smoothly on my machine under Linux than Windows, but then I tried to get online, and learned a harsh lesson.
The caveat is largely that not all games are solved by this [0], and the official Valve whitelist needs to be turned off in settings to use it for all games, but even with these it's still a marked improvement in Quality of Life and barrier to entry for running Windows games on Linux.
I'd give it a go if you have time/inclination. I can recommend it as someone who is now Linux only as a result of this.
[0] - www.protondb.com
Proton was a dramatic change for me. A few clicks to enable Proton for a particular game, and then it just seamlessly runs and works. Granted, not all games do (check ProtonDB) but all the games I've wanted to play for the last couple of years have worked. I'd say Proton is the most significant thing to ever happen for Linux gaming support, and it did more for me overnight than many years of trying with Wine.
Modern multiplayer games with anti-cheat are mostly broken, some popular ones like Rainbow Six Siege are impossible to play. But if you mostly play other games, give Proton a try.
Much rather against apple and chromebooks and they cannot buy them. So I doubt they do not buy cannonical because of fear of regulators.
ChromeOS is supposedly 6% of the desktop market share according to stat counter that I believe confusingly includes desktop/laptop under the same grouping. I'm guessing that about nobody is running chromeOS on a desktop so a reasonable guess is that their share of the laptop market is could easily be 10ish percent.
This would leave windows with somewhere between 70% and 80%
Red Hat and its enterprise focus would have been a better fit than the much, much smaller Canonical, so there's no reason to believe that MS would consider buying Canonical.
- They seem to be comfortable shipping that as the default WSL for a few years and this would allow them to integrate even deeper. - Ubuntu is one of the main systems people use in cloud based environments; including Microsoft's own Azure where it and other linux distros are more popular than Windows Server. Taking control of Ubuntu would allow them to take full control of that stack. The goal here would be to offer an alternative to the likes of Oracle and IBM for enterprises and make sure Azure retains its competitive edge over cloud platforms offered by those two. IBM just bought Red Hat; and Oracle ships its own Red Hat derivative. - On premise "cloud" is becoming a big deal. Owning Ubuntu, which is a player in that space too, would enable MS to make Azure on premise a better product.
The Desktop application market at this point is mostly split between creative tools and developer tools. MS is big into the latter and most of that targets Linux already. Creative tools are basically Adobe and similar companies. Most of those target Apple and MS. Finally there's office, which mostly already works in a browser. I doubt they are in a hurry to produce a Linux desktop version. It's a lot of work for basically no big return on investment. They already struggle with keeping the OSX version relevant.
Finally, there are games. PC Games are big drivers for MS Windows sales. It's what keeps home owners buying windows computers with the windows license. While in decline for years, that's still a lot of money for MS. Without gaming, they'd have been bleeding more users to Apple and Linux for years. Of course XBox is still Windows based. I'd say this is the main thing that is keeping Windows Desktop alive. So, I don't see them walking from that any time soon. They might however, transition X Box to a subscription based streaming service at some point. Various companies are already piloting solutions for this (Google, Amazon, NVidia). Linux might make sense here but it would require tight integration with hardware and software. I'd say forget about MS even attempting to support that at the level they currently support Windows. But, I wouldn't discount it for a future iteration of XBox though.
It has WSL for a terminal and Docker for projects with environmental assumptions (node, postgres, etc).
It's not without quirks, but for me, it matches the productivity of OSX and Ubuntu while opening up possibilities they lack (like straightforward gaming, game/VR development, building the machine into a desk so it's invisible in my office).
For server, I'm all-in on Linux - it's the perfect server OS.
But for desktop, I reckon Windows 10 is the best desktop OS by a stretch, and everything "just works" - whereas even on MacOS I have constant issues with multiple monitor and hi-DPI support, never mind Linux.
I prefer bash to the Windows command prompt or Powershell, and Git Bash fulfils pretty much all of my needs there. Otherwise I have WSL available.
For backend services used during development (postgres, rabbitmq, redis, whatever), there is Docker Desktop, which was a bit dodgy in the early years, but has worked marvellously for a long time now.
TBH, I'm struggling to think of anything Linux or MacOS has that Windows 10 doesn't...
The issues that still bug me are:
1. Less-useful keyboard navigation (I use Autohotkey to mitigate this)
2. Frustrating file system (I use WSL to `rm -rf` sometimes when Windows refuses to let me delete a file or folder)
3. Less coherent / polished app ecosystem (Linux distros use real package managers and OSX apps tend to be higher quality; Windows is a crapshoot)
2. OK, this does bite me rarely, where I can't delete a folder because of messed up permissions. Probably last time was a couple of years back
3. I disagree about the app ecosystem, but fully agree about package managers. The Windows installer system is horrible - I'd rather grate my face than have to build another MSI package...
You mean on Windows? The only driver issues I've had on linux were NVIDIA (fuck you NVIDIA) and (for a short time) AMD during their transition from driver in a package to driver in the kernel. That's it in a whole decade. Hunting down drivers for windows was way more annoying.
Been using Ubuntu Mate and stock before that for ten years+, and have not had any such issues. I am on a supported Dell however.
What I do see is techies confusing cutting edge distros such as Arch for 'Linux'. When you're running Windows, you're not using an internal MS build either, so that's the wrong comparison (which I see made often the techier people are). The proper comparison is Ubuntu LTS and Ubuntu LTS only.
If Microsoft come up with something new in operating system design, they don't have to answer to the community when adding it into the kernel.
And it gives Linux something to compare against.
Like CRLF newlines and "\" instead of "/" as path separator?
Jokes aside, MS is not the place I look for "something new" in OS design.
MS Research writes papers that are submitted to various journals (as does IBM, Intel, Google, all of whom have their own operating systems). An obvious example is the Midori project produced lots of novel research much of which has been used, even if the project itself was abandoned. https://en.wikipedia.org/wiki/Midori_(operating_system)
With Windows Phone, they did pioneer quite a bit. It was a phone first, and app running device second. Android and iOS feel like the phone part was a second-thought add-on in comparison. The Windows Phone did its best to make it so you could make a phone call or send a text, at the expense of email, running apps, etc. when the battery was low which took Android and iOS many years to implement. There were probably some other interesting things, but I don't remember them any more.
You'd be wrong, though...
The Linux kernel is great, but there is plenty of room for diverse opinions in user space.
Where did you get this idea? Companies shipping a Linux kernel never had to answer to the community, unless they want to. They can just ship a custom kernel only to their users and leave it at that.
Works really well for Google and Android where they offload handpicked versions of the Linux kernel to the phone vendors to maintain. In practice they don't bother with it so phones never get any updates after 1 year.
Maintaining custom Linux kernel fork is not possible if you want to keep it up with the upstream changes.
I don't understand what you mean here. It's my interpretation that keeping up with upstream is what was meant by answering to the community. It seems that the GP post was not concerned with this or with following the footsteps of Android. It certainly seems within Microsoft's means to deploy a custom kernel on Azure and then only periodically merge with upstream (I believe they are already doing this anyway).
It'd be much better if they upstreamed the changes instead of fragmenting the entire ecosystem with custom forks.
[1] https://www.zdnet.com/article/linus-torvalds-rejects-stupid-...
This reminds me of DirectX vs OpenGL in the late 1990s and through the 2000s. DirectX under Microsoft rule did not have to answer to any committee, thus the progress and groundbreaking technology that it enabled was really good. Meanwhile, The OpenGL consortium had to argue to get just one feature into the standard. It was very slow.
Another example was .NET vs Java. Even though Java was "driven" by Sun (and then Oracle) a lot of the new features were done via consortium and thus its development was slow. .NET instead got LINQ and other really nice improvements during that time. Now, I haven't programmed in .NET since around 2005 (I don´t do Windows), but I appreciate that they are pushing software technology.
You even get nice IDE features in VSCode.
C# is still a joy to develop with over Java, GoLang etc IMO.
Probably not what most expect from Linux on the Desktop. But hey, if you still can’t properly support 4K scaling in 2020, it’s never going to happen. It will probably always be a fringe group.
Unless something really changes within the mentality of the open-source / Linux community.
But hey, for some people linux will never do anything right.
Just like reporting Ubuntu bugs feels like shouting into the void, what are your chances as an end user of MS quickly fixing a bug you find?
In Windows land I don't have to know something very well to get reasonable help on it.
Besides which, I know from personal experience that Linux Desktop people will assume all sorts of things about you. Quite often I will ask something like "is it possible to make X do Y?" and the response will be something like "you shouldn't do Y. Why do you want to do Y? You should do Z instead, I've only ever needed to do Z".
> Quite often I will ask something like "is it possible to make X do Y?" and the response will be something like "you shouldn't do Y. Why do you want to do Y? You should do Z instead, I've only ever needed to do Z".
Ever seen the answers in Microsoft Community? It is either this, or a complete misdirection, so some Microsoft contractor could prove his productivity, and in the end solving nothing.
--- I'm using all three desktop systems: Linux, Mac and Windows. No, the grass is not greener on either side. Every single of them has its problems, and every one of them has its stronger points. However, "if you still can’t properly support 4K scaling in 2020" is complete nonsense.
Just reinstall Windows, that'll fix all your problems! (/s)
If I had a pound for the number of times I've had Windows issues, Googled the error code (because error code 0x800704cf is so intelligible) and found some mix of "I'm having the same problem, how do I fix it? ¯\_(ツ)_/¯" or "just reinstall".
0x8007 - warning in facility 7 (WIN32)
0x04c7 - 1231L - ERROR_NETWORK_UNREACHABLE
// MessageId: ERROR_NETWORK_UNREACHABLE
// MessageText:
// The network location cannot be reached. For information about network troubleshooting, see Windows Help.
#define ERROR_NETWORK_UNREACHABLE 1231L
> The experience of finding solutions to Windows problems, which is in fact a significant portion of my day job, is vastly superior
Second result for "0x800704cf windows 10" is this shambles on MS's own discussion site: https://answers.microsoft.com/en-us/windows/forum/windows_10... where the poster says they spent hours on the phone to MS trying to get support and on the way had done some insane registry fiddling to try to fix it before discovering it was an issue with their user account.
>if you still can’t properly support 4K scaling in 2020
To which this is an entirely reasonable response.
Sadly, a lot of zealous Linux Desktop Evangelists exist and are extremely vocal.
Please elaborate? I've been using KDE with scaling and 4K monitor plus a widescreen for the last few years.
1. X can't handle independent screen scaling of two different DPIs. I have 24" and 27" screens and on windows I can have the 24" one at 2x and the 27" one at 1.5x and it "just works". In X I have both at 1.5x.
2. Wayland supports independently scaling the two screens. Unfortunately programs that don't support wayland run through something called XWayland, which upscales them in a crude way that makes the fonts blurry. It's pretty much unusable because of this to have an XWayland app (this includes chrome, firefox, and emacs) running on a 4k screen in wayland, at least on KDE.
It's frustrating because it's SO CLOSE. There are WIP branches of both browsers running on wayland (but they're not stable for me) and once those land I think everything will finally work.
All this said I do still use KDE on X daily as my development environment, but every time I boot back into Windows I'm frustrated again by how much better the scaling is.
Given pretty much all laptop screens manufactured these days look best with about 125%-150% scaling, this is a pretty big issue.
But the success of WSL would seem to indicate they aren't really in the market for their own flavor of Linux.
The Linux Desktop Evangelist believes that this demonstrates that Linux Desktop is not difficult to use, but what it actually demonstrates is simply that Linux makes a really good appliance. As long as you don't ask more of it than one or two carefully accounted for use cases, you won't see a problem. Attempt to step out of the box though...
Do you have a concrete use case where Linux fails and Windows succeeds?
For instance, if I say I do something requiring an application for which there is no good OSS equivalent you'll tell me it isn't Linux's fault companies don't port their software to an OS with ludicrous levels of fragmentation that break compatibility nearly every release.
I have been in this argument many, many times over the past 2 decades. It is always the same. Deny there are problems, suggest insufficient alternatives, even recommend just changing their use case entirely. Anything to avoid saying "yeah, Linux actually isn't good for that".
I have a 4K Ubuntu laptop from Dell. The text and GUI automatically scaled to the right size (except for one old program). And I plugged in an external 4K monitor using HDMI and it just worked.
I'm sure there are hardware configurations that don't work as nicely, because Linux supports a ton of weird hardware. But it's easy to buy high-quality Linux systems.
Even someone like me has long since stopped reporting bugs to Linux Desktop projects because of the above, and the fact that a lot of times the bug is already in the issue tracker and has been for years so clearly no one gives a damn anyway.
Personally I bought a highly-recommended Windows laptop a few years ago and had to stop using the OS because both sleep and the Intel wifi drivers simply didn't work. Yet if I tried to use that experience to proclaim that that Windows was a non-functional, useless operating system developed by people who don't give a damn, I would not be taken seriously.
By the way have you considered what reporting bugs like this for Windows is like? You end up on one of those Microsoft support sites staffed by non-technical non-employee Community Experts who have absolutely nothing useful to add. Talking to real driver and OS developers directly on Linux bug reports is magical in comparison.
...because they have entangled their identity with their OS of choice such that they interpret "I had a problem with this and therefore don't use it" as some kind of personal attack. This is not only unhelpful, but an actively repellent behavior.
> Personally I bought a Windows laptop a few years ago and had to stop using the OS because both sleep and the Intel wifi drivers simply didn't work. Yet if I tried to use that experience to proclaim that that Windows was a non-functional, useless operating system developed by people who don't give a damn, I would not be taken seriously.
Case in point, who is saying Linux is useless? Useless for their particular use case or workflow, sure. Even people who like Windows generally, like myself, say the developers don't give a damn (see some of my other posts on the subject). Fact is, a lot of use would love to be using an OSS system, but the community actively fights us when we have issues with their stuff and their echo chamber of "our way is the best way!" remains unbreached, so our use cases and workflows are never accommodated and we, consequently, can't use it. This has been going on for about 20 years now. It's pretty damned tiring.
> By the way have you considered what reporting bugs like this for Windows is like?
I work supporting Windows systems, so I know how useless Microsoft support is. You know what I don't get when I talk about a Windows issue with other Windows admins though? "Well it works fine here..."
> Talking to real driver and OS developers directly on Linux bug reports is magical in comparison.
Sure, if they listen, which they often don't. Spend some time in Ubuntu's issue tracker if you don't believe me.
>they interpret "I had a problem with this and therefore don't use it" as some kind of personal attack. This is not only unhelpful, but an actively repellent behavior.
Your posts so far have implied that people reporting their positive experience or advising how to make the most of Linux (eg being careful about hardware choice) must be doing so because of a kind of identity crisis, or that they are reciting from mockable 'Linux Desktop Evangelism playbook'. Meanwhile you seem to have taken personal offence at the 'community's (as if it's one entity) response to your Ubuntu bug tracker entry.
Having said that, I'm also generally in the boat of having an unpleasant experience installing on various laptops. Doesn't stop me from trying every year or so though, ha.
I'm running regolith with i3 using an X server on my WSL 2 install. It even has GPU passthrough now! It's been super pleasant experience having the best of both worlds without having to reboot.
If you're asking to make a point, I'll just say that it takes a level of tech savvy to even know _how_ to find a Linux laptop that runs smoothly. That is the problem I'm referring to.
I've heard Dell and the Thinkpads work well with Linux. Got any other suggestions?
Here's my "secret," if it helps. I buy laptops with Linux pre-installed from a supported vendor, I run Ubuntu LTS in the default configuration, and I only customize a tiny number of things. This has worked pretty well for me for over a decade. (Before that, I had more issues.)
I don't feel like installing Linux onto random Windows laptops is a good use of my time. Similarly, if I were to choose some unusual distro or desktop environment, that would usually mean more hassle. So I don't.
> Also, having two screens with different scaling was completely unsupported, unlike on Windows.
Yup, that's the biggest limitation I've seen. That's one reason I ended up giving away my ancient external monitor and getting a new 4k. That way I can use the same scaling on the internal and external monitor.
And if I'm going to make a major hardware purchase, I usually Google to see if it works with Linux. This matters mostly for things like drawing tablets.
Linux Desktop Evangelism playbook hasn't changed since 2000.
Anybody who uses Windows 10 with any regularity will also run into things that just do not work: for me, recently, it's Windows deciding that I want my sound to output to my monitor (which doesn't have speakers). The only reason Windows issues are treated differently to Linux's is that it's treated as the default.
It doesn't sound like a Windows bug unless your monitor is actually incapable of outputting sound at all. In that case, I'd wager your monitor is advertising sound when it has none.
I'm not saying that Windows bugs don't exist (I've run into lots), but I'm guessing that this isn't a Windows bug.
The linux fanboy definition of works is either works out of the box or can be made to work.
The opposite position seems to be must work out of the box on any of 50 distros on any hardware I buy at Walmart AND must invent time travel to change the fact that it didn't work 7 years ago on the Acer I bought from that weirdo on Craigslist the only time I actually tried installing it.
Take High DPI
It kinda looks like cinnamon for example supports HiDPI out of the box but all the knobs are there if you want to tweak how different things scale.
https://wiki.archlinux.org/index.php/HiDPI
If on your distro something isn't configured correctly for 4k screens the fanboy says its workable because there is a readily available resource that will tell you how to achieve the result you desire.
The anti fanboy will throw up their hands and say Linux sucks.
An argument can be made that that this isn't good enough for "grandma" or "regular people". I see problems in consumer electronics and windows that are too hard for grandma or "regular people" all the time.
If they don't want to install and configure it presumably they can pay Lenovo or Dell to do it for them just as they do presently. If it comes with a high dpi screen presumably they will configure it for such.
> The anti fanboy will throw up their hands and say Linux sucks.
This is a strange false dichotomy
At least in this issue someone resolved the problem. That's good signal, Linux user would ask how - hardware, distribution, tutorials, links etc.
You see ignorance. It is not about him, it is about you.
Now the reverse is seen as advantageous: any app that moves from Linux to Windows is good for them, so things like WSL encourage that.
This is the crowd that Microsoft is after, devs that don't care about Linux ideals, just a POSIX like stack.
I kind of disagree with the Windows/WSL and Mac being targeted at the same crowd. I have the feeling gaming has a higher priority with the Windows/WSL users and what would drive someone who'd otherwise get a Mac to get a Windows box. WSL seems to be geared at preventing a Windows user from switching over to either Mac or Linux for the superior Unix experience.
The outcries every time Apple does a decision in favour of their developer community, that breaks those that buy their laptops as shinny "Linux" kind of prove otherwise.
OS X just like NeXT, only cares about UNIX to the extent that brings software into the platform, not out of it, its dev stack never cared for UNIX as such.
Much like Microsoft, Apple doesn't want macOS or iOS apps to run on anything other than their platform. For any OS, the winning strategy to gain market is encouraging porting to the platform and discouraging porting away from it.
During high school I got introduced to UNIX via Xenix, and my first years at the university we had DG/UX on campus, while I started playing with Slackware 2.0 to avoid going into the campus fighting for a terminal after 1h bus trip.
Doing POSIX stuff was the same mess as making a Web site work properly across all major browsers.
My memories are substantially more traumatic than that, but, anyway, it still is complicated. I've been following the ncurses devel list and it's amazing how many different OSs people run it on.
https://channel9.msdn.com/Blogs/Seth-Juarez/Windows-Subsyste...
WSL2 as virtualized Linux kernel is basically what everyone else on mainframes and UNIX world was already doing for Linux kernel compatibility anyway.
WSL is simply about better supporting Azure developers and customers. That's all there is to it.
I'd also love to see a "Linux Subsystem for Windows", to make it better to run windows applications on Linux. Wine sort of fills this role, but I'd really love to see a MS-backed fully compatible system. And maybe it could work similar to WSL2, where it is an actual windows kernel running inside KVM.
I feel like Microsoft has read the writing on the wall. Developers love nix-based systems (Mac, Linux). They are trying their best to catch developers at the door with a "but wait! there's more!"
What if Microsoft created a new linux-based OS precisely to start from scratch and let go of all the Windows cruft?
Windows 10 is mature enough to not need any significant work and still maintain backwards-compatibility, but maybe Microsoft is preparing the terrain with a new OS for the next 20 years.
Apple is moving fast towards universal apps for mobile and desktop. Maybe Google is doing that with Fuchsia too. Microsoft failed with Windows Phone but it probably learned from its mistakes. I'd be surprised if Windows 10 + Android is their long term goal.
And while Windows does have an ARM port, all the drivers and board support packages seem to be tied to Linux, and Linux based operating systems like ChromeOS and Android.
What I suspect to see is a product that combines the Linux kernel, ELF versions of Edgium and Office, a port of the Windows shell that runs on top of this, and maybe support for running Win32 binaries in emulation, with as-it-is backwards compatibility guarantees.
If something like this comes to exist, I'm guessing it will be sold as Windows A, or something other name like that. Will it be Windows? That's probably a philosophical question, more than anyththing.
Not entirely sure what you mean by this. Windows has supported ARM for a long time, Windows CE supported ARM starting in 1997 [1]. Windows Mobile which ran on ARM phones had been around since 2000. The Surface RT, based on Windows RT, was a more traditional tablet was also ARM based. Now Windows 10 on ARM has been around for about 3 years and third party manufacturers are selling ARM based Windows laptops.
1. https://en.wikipedia.org/wiki/Windows_Embedded_Compact#Relea...
Mhm. Let's repeat this when percentage of Windows usage will be much lower and there will be more games released for Linux on day one and MS will stop swallowing Linux friendly studios like inXile and Obsidian. Right now I don't see it being the case by far.
MS is still very hostile to Linux gaming with DirectX lock-in and platform politics. The above claim just ignores reality.
The proper progress is for such lock-in to be replaced with Vulkan which is by design an open and cross platform API, not to proliferate blobs on Linux.
There's many business reasons against rebasing the Windows Kernel to Linux, but there's also many positives too
never say never
[1] https://www.theverge.com/2019/5/6/18527550/microsoft-chromiu...
If Windows had UNIX kernel and POSIX with custom UI, it would be a viable platform to switch to.
It wouldn't be the first time that Microsoft ditched it's technology. (DOS - OS/2, Sliverlight - JavaScript, EdgeHTML - Blink, etc.)
I'd guess that the OS market is done, they want to get rid of most of their Windows legacy stuff, and focus on making real money with the cloud.
Personally I want Microsoft to open source the Window Kernel.
Given how buggy, and unreliable Windows is, wouldn't be this a straight improvement for their "mission-critical" stuff?
I have to respond to this thought because -- I don't think its true.
Aside from government and military, which of those paying customers truly have revenue streams so guaranteed that those entities cannot be replaced or outcompeted over the course of decades by somebody approaching the problem with fresh eyes -- or even just some internal division at the same company approaching the problem with fresh eyes and building something _better_ because it was allowed to change as opposed to something very stable because it is _not_ allowed to change?
For government -- do we really want/need our government throwing money away because they are more or less not allowed to development new solutions to old problems?
For military -- ... yeah well ... I don't know what to think about military ... Military is not a sector that has any measurable goals aside from self-perpetuating its budget so its hard to argue against boondoggle maintenance projects as having some capacity for objective success with regard to that goal ... But -- perhaps there is a future where the system could reasonably decide that the wisest course is to _not_ spend billions of dollars keeping 1980s era visicalc programs running unmodified so that they can properly manage the floppy disk supply chain for nuclear missile silos ...