← Back to context

Comment by tombert

7 days ago

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.

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

    This would not be the case in the hypothetical situation where Windows becomes a Linux distro.

    • That's the last thing in the list and the looping phase of catch-22. Without providing the other earlier items, it simply doesn't make sense to make Windows a Linux distro. NT is still the better solution. Unless Linux kernel becomes very friendly to closed source drivers and gets better isolation and stable APIs, no consumer company will ever invest in Linux.

      Providing a closed-source friendly ecosystem for both the OS and the application layer is what Google did for early Android and that's why it caught on.

      The advantages of Win32 and the filesystem structure on top of NT's technical advantages guarantees Microsoft's monopoly will go unchallenged for consumer devices. Linux has to become more like NT, not NT become Linux for success in consumer space. Linux will never become more like NT, so it will never get a stronghold.

      The question for Linux (or any kernel / system layer) is very simple: If an OEM can hire developers who will independently play a mediator role under an NDA, creating stable kernel internal APIs that live more than 5 years, making sure the kernel is ready before launch without leaking any hardware specifics, Linux is a viable platform for mass-scale consumer hardware. If not, it isn't. Linux fails on all stages of that.

      1 reply →