Is it just / ?
I kid. But really, besides “its all a file”, if you take away the gui, is the only difference the syntax ? How libraries interact? How disks are mounted ?
If we stripped all ms’s junk out and made windows open source, would we still prefer linux?
When you get to a very basic level, is one of them more efficiently coded?
Up until 95, Windows was mostly a desktop environment for DOS. From 95 to ME, Windows was an OS that used DOS as its bootloader and compatibility layer. Not sure how to put it, but it was simplistic and fundamentally different from Linux.
The thing with NT-based Windows (including modern editions) is that the underlying system is joined at the hip with the GUI. Whereas Linux with your choice of coreutils is a perfectly capable OS without the GUI, many features of Windows are only accessible through the GUI.
Given enough time and resources, pretty much anything exclusive to Windows could be ported to Linux and vice versa. A lot of the difference just comes down to history and the ensuing conventions, workflows, and file hierarchies.
Even if we stripped out all the cruft and spaghetti code from Windows, there would be lots of nasty idiosyncrasies in its design, informed by its OS/2 and VMS (see Dave Cutler) heritage, profit maximization, revolving door of devs and interns, and years of bending over backwards to accommodate legacy programs.
From my basic understanding: Windows has a microkernel hybrid style architecture. It’s kind of like microservices. Instead of all resources being shared within a system process, You get a lot of tiny services all making calls to each other and the main kernel.
This introduces a lot of overhead because variables need to be sent and requested between processes. And they don’t simply share them in the same memory.
Linux on the other hand has most services under one monolithic kernel and they can all access the same memory. So there is no need for all of that intercommunication between services.
At least that’s my basic understanding and if I’m wrong (which I probably am), then somebody on the internet will now correct me.

You’re right in some ways; Windows is closer to a microkernel than Linux, though it doesn’t perfectly adhere to the philosophy of - there’s supposedly weird things like drawing calls in the Windows kernel that should be in microservice, I’ve heard
However, I wouldn’t necessarily call microkernels a detriment; in fact, Linux is a bit of an odd duck for going monolithic - modern Apple operating systems also run on a microkernel. Monolithic is an older architecture, and there are worries about the separation between components and system resilience e.g the webcam driver can’t crash the whole kernel.
In practice, it’s less of an issue, and there really aren’t any open source microkernel operating systems that are practical for production desktop and server use, which has a microkernel though there are certainly solutions for embedded systems.
QubesOS is built on Xen hypervisor, which uses a microkernel design, but Linux is then run in multiple VMs on top of it, which makes it more of a technicality in my eyes. RedoxOS also runs on a microkernel and is certainly intended as a desktop operating system, but its hardware support is limited; GNU Hurd is even more limited in that respect and not really usable.
See xkcd, press upvote
The entire difference is the kernel. There’s a reason why Apple moved to BSD forever ago for their OS. Somebody did it better than they would have been able to from scratch. Everything above that level on up to the DE matters less as far as stability and performance goes for desktop users.
Yes we would still prefer Linux. Windows is just a single object without any modularity. With Linux by itself is of course just a barebones kernal waiting to be added to. You can choose which gnu libraries to use you can chose which package manager to use you can chose which desktop environment to use (or ommit it entirely.) Windows doesn’t have that option.
As well since the source code for linux has been open for over 30 years people know how it works, it would take ages for people to study windows and actually figure out how to do anything with it.
They come from completely different heritages.
GNU/Linux is a reimplementation of Unix, an operating system that was originally designed mainly for universities, but also mainframes.
Windows is descended from DOS, an operating system intended for home computers.
Nowadays Windows is the only widely used non-Unix-like OS; GNU/Linux, Android, macOS and iOS are all Unix-like.
If Windows became FOSS, I at least would likely switch to it. It’s really the FOSS philosophy more than anything else that makes me want to use GNU/Linux.
The licensing: Free and open source vs. paid, proprietary, and closed source. That really is the core difference, the licensing, and all the differences that come as consequences of that difference.
What separates the Linux kernel from the (Free)BSD kernels is copyleft/reciprocal licensing vs. permissive licensing.
Somewhat of a cheap answer, but I feel what illustrates the difference quite well is that Linux follows the design from UNIX, which was a research project with stupid amounts of money to at least try to get things right. On the other hand, Windows originated from an OS, which was referred to by its developers as “Quick and Dirty Operating System”.
And I do feel like these foundations have informed the design of all the layers built on top.
At a super basic level, MacOS, Linux, and Windows all use different kernels.
From a very basic viewpoint. The kernel is basically the piece of software that gives each piece of hardware their instructions.
At the absolute most basic level, assuming equal hardware, all the kernels are working with same set of instructions(store this value in this register, move to this location in the stack, read this value, etc) but they issue those instructions in different orders to achieve very different results.
The NT kernel that windows uses does basically everything in a different way than the Linux kernel. To the point that their only real similarities are that they speak the same language to the bare metal hardware.
is the only difference the syntax ? How libraries interact? How disks are mounted ?
Ah, yes.
You know, the things you just mentioned ARE the basic differences. As long as both work on the same architecture, and none reinvent the wheel, everything is the same.
And as long as you don’t reinvent the computer and make a new assembly and binary, a kernel and libraries will be the most effective ways to work.
Its like saying „what is the difference between python and c++ anyway? If we just strip away everything differentiating the 2, we just get a programming lang.
And yes, I would prefer Linux, for the same reason a python Dev prefers python and a C++ Dev prefers C++: because I’m Used to the syntax and the quirks of Linux. I don’t want to jump back to the ungodly CLI of cmd, powershell and everything else. I have learned the ins and outs of Linux, and that’s how its gonna stay.





