Comment by ivanjermakov
7 days ago
Microsoft needs to repeat their Edge trick. Migrate Windows to the Linux kernel and get Linux compartibility out of the box. Immense research of running Windows programs on Linux was already done by Wine/Proton teams.
None of the stuff that makes Windows suck compared to Linux is because of the kernel.
Two things I can think off off the top of my head that do completely suck about Windows: the forced updates and forced antivirus (e.g. Defender). None of those depend on the kernel, and Windows userland running on top of Linux wouldn't inherently make those two things suck less.
NT is a better kernel for consumer systems compared to Linux unlike first generation Edge which was a worse browser compared to Chrome.
I don't necessarily disagree, but I am curious as to why you think that? What makes NT a "better kernel for consumers". I have some opinions on that but I don't want to bias your answer.
Some architecture and some implementation details and sometimes purely economic reality:
1. NT is a hybrid kernel. Windows runs many drivers in userspace, if not in a limited kernel environment. This includes network drivers and GPU drivers. It can recover from crashes more gracefully than Linux and BSD kernels. Linux has similar drivers for specific use cases like FUSE, however, they are not as performant as NT.
2. NT has always been designed to drive a GUI-driven OS. So it has better default tunings than a vanilla Linux kernel to operate and stay reactive under memory pressure. When your system is under pressure you'd lose mouse movement on Linux, on NT this is rare. It is not impossible to do this under Linux, however, not many companies (except maybe Android manufacturers and Google/ChromeOS) actually invest in this.
3. NT provides a mostly stable API and ABI for drivers. It is not as strong as Win32 guarantees, however it retained mostly the same driver infrastructure since Vista. Many Win7 or Win8 drivers continue to work under Win11.
4. Bundled drivers for consumer systems in NT are often better quality. This could be the side effect of stable ABI. Unlike Linux, significant refactors changing big parts of the driver APIs are rare. I think this reflects in the quality of drivers like USB Host drivers. I deal with embedded Linux systems (x86, RPi), there is always some "rmmod and modprobe to fix USB" script somewhere in a deployed Linux embedded system. I have never seen anything similar in Windows Kiosk setups (TBH I have seen a lot of reinit of COM drivers but it is often manufacturer's faulty implementation).
5. There is simply more money invested to make consumer drivers work on NT. Linux is often an afterthought for many consumer device manufacturers. There is still not enough buy-in. Mainline Linux kernel team, being inferior marketshare-wise, requests more buy-in and more collaboration from device manufacturers. This works for servers since there is pressure from end customers who want to retain UNIX-like environments. Normal consumers cannot exert the same amount of pressure. Microsoft provides subsystems, APIs and ABIs to write the drivers to OEMs, often consulting the first manufacturers of a certain new device type and making compromises for them. Linux on the other hand, requires competitors to collaborate and create the subsystems and APIs. Competitor players themselves have to agree with the developers of their competitors to create a subsystem. On a capitalist economy competitors do not want to collaborate unless it significantly increases market size for everyone. Consumer electronics have very thin margins. They do not scale well with increased effort required by Linux. Only select few big tech or certain old-school consultancies send the significant system patches.
3 replies →
> Migrate Windows to the Linux kernel and get Linux compartibility out of the box
If I had a quid for every time I saw this comment on HN or Reddit I would probably be as wealthy as Gates himself. It is always an instant downvote for me, because they make me lose faith that people on HN have actually understood what a kernel is and how it works, and what ABI compatibility is, and what user-mode stability is. It is dogmatic and pointless.
The NT kernel is pretty good. Windows is generally well-architected. The NT kernel is the best thing about Windows, and you lot want to swap it out with something decidedly inferior.
Windows' user-mode applications and libraries are also pretty good. By user-mode apps and libraries I mean Win32 itself, WinRT, D2D/DirectWrite, D3D, Winsock, Windows Sound, and the thousands of entrypoints and enums for cool Windows stuff like the registry, synchronisation primitives, file management, special user files, cloud files, accessibility and internationalisation, and more. I've mentioned some other nice platform APIs in a sibling comment.
It is pretty easy to write a full-fledged GUI application on and for Windows that handles heavy use of networking, sound, graphics acceleration, etc without ever having to use a single third-party library, and make it run on OSs that are nearly 18 years old (not the case on most competition OSs).
I also daresay that IE/Edge moving to Chromium was in some ways a bad idea, as Chromium has become the de facto default Web platform, and any non-Chromium browser (Safari, Firefox) is likewise de facto non-conforming.
It sounds interesting, and surely there would be some awesome things that would come from it, but on the other hand, MS could use this to take control of linux APIs through their "embrace, extend, extinguish" strategy, so it would not be without risk.
Just look at what happened last week with linux distros needing to update their secure boot keys with a new MS signed certificate. https://www.redhat.com/en/blog/expiration-secure-boot-signin...
And look at what MS did with their old version of Office for Mac, where they decided not to simply renew a certificate that would keep the software functioning. https://www.windowscentral.com/microsoft/microsoft-office/yo...
We already have companies like Nvidia and Broadcom shipping binary blobs to support common hardware. Do we really want a corporation like MS getting in on that kind of thing? If MS wrote some really great desktop linux software, it would be hard for the broader linux community to resist being lured into using MS controlled APIs, and handing over part of their control to Linux's most notable rival.
The problem is Microsoft, not windows