angods wrote:I often hear that NT is inferior to Linux kernel.
Even making the comparison shows a lack of understanding of the scope of the projects involved. NT and Linux try to do very different things. NT tries to hold compatibility with all Microsoft operating systems going all the way back to CPM, while Linux tries to be a straight-up Unix. Sentences like the quoted one put in my mind the image of a know-nothing fanboy, just fawning over whatever they like without any deeper understanding. It's basically Nintendo vs. Sega, only with the characters changed. And this comes from a long-time Linux user and developer.
The difference is: I personally like Linux more, but I would never go so far as to claim Linux is superior to NT. No, Linux programs are superior to Windows programs (for my use cases and usage patterns, and my very particular depraved tastes).
angods wrote:Common argument is that it's "less buggy", "less prone to malicious programs" and, the most importantly, it performs better. Is it really the case though?
Linux (as an OS) is less prone to malicious programs because of the smaller market share. When malware developers go fishing for whatever resources they want, they will cast as wide a net as possible, so they are hardly going to implement an exploit that is not going to work on 98% of desktop PCs out there. That is all. Firefox on Linux is exactly as exploitable as Firefox on Windows, and most users do not use AppArmor by default, although that would really mitigate exploits.
"less buggy"? Well, the kernel itself maybe, but the drivers are a mixed bag. Sort of the problem Windows itself has. Seriously, when you hear the actual Microsoft developers talk about why their OSes had the reputation they had, often enough it was about buggy drivers, and the kernel itself was actually pretty solid.
angods wrote:I can agree that Linux is more stable than NT, since NT was meant to be used as a desktop OS (ex. it has a graphics shell built-in, while Linux doesn't - you have to use X and install an external WM)
I fail to see how the reason fits the claim. Are there no stable desktop operating systems? Are desktop OSes inherently less stable than general-purpose OSes? And the parenthetical only justifies the reason, not the claim.
angods wrote:At first I was convinced that Linux is superior performance-vise, but I've discovered that ex. NT scheduler has some features, which Linux didn't have for a long time.
Most performance claims are not actually about the kernel, but about the user space. Running on the minimum spec is going to give you a miserable experience in either Linux or Windows. Back when I switched to Linux, an important thing was that Linux was doing better house-keeping than Windows. For example, you had to manually defragment your hard drive in Windows, while Linux does that automatically as some sort of clean-up task. At least that was the claim back in the day, and these days with the advent of SSDs the point has become entirely moot. That said, I haven't defragmented my Windows PC in forever, and it actually has two spinning rust hard drives, and seems to be doing alright. So either Windows 10 is doing something different, or it makes no big odds either way.
The kernels themselves are too different to be compared directly, it would be like comparing the Apollo guidance computer with the C64. Where do you even start? Well both are monolithic, higher-half kernels, I suppose that is something. Personally I think ELF is more elegant of an executable format than PE, because PE is marred by the requirement to be compatible with the DOS EXE, and the idea that base relocations are somehow something entirely different from symbolic relocations, but if there is anything I've learned from my recent thread about fork(), it is that elegance is in the eye of the beholder.
I suppose I could go on about the fact that file system manipulation is a lot easier with Linux than Windows, which - yes - is partly about the kernel. NT doesn't have something as expedient as a mount() system call or a loop device (which is also what ended the WSL 1 experiment, which otherwise would have been a neat idea). But then third-party software like daemontools has made these features accessible to Windows. Only apparently not in a way that could be used to salvage WSL 1.
What else is there? Script files. In Linux, script files starting with "#!" are supported directly in the kernel, which grants them somewhat more expedience than in Windows, where you have to create a shell binding on the file extension. Which also means that all your script files need to have a file extension. And the CMD as default shell is atrocious if you are used to "sh". And PowerShell? I still have no idea what they were thinking. But I suppose this is getting away from kernel territory.
Getting back onto kernel territory, what the hell were they thinking with allowing remote thread creation? And no, I am never letting this go.
In conclusion, NT lacks a lot of features that I would really like to have, but apparently I am too small to matter, so I use Linux instead.