I often hear that NT is inferior to Linux kernel. 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?
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'm not sure about the other points though. I have experienced problems both on Windows and on Linux. No software is bug-free and it's hard to measure "bugness". Sometimes a graphics driver crashed, sound stopped working or the OS spontaneously died. And, while more malware is produced for Windows, Linux isn't less prone to malicious programs either. New vulnerabilities are found every few weeks/months. Also, the design of Linux driver model doesn't enable malware to scan all opened files, which can be done on NT.
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.
What do you think? I'm asking about design and limitations of the kernel itself, not about ex. driver quality.
NT vs Linux
Re: NT vs Linux
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.angods wrote:I often hear that NT is inferior to Linux kernel.
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).
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.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?
"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.
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: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)
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.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.
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.
Carpe diem!
Re: NT vs Linux
Asking the question "A or B?" in the first place is, IMHO, a fallacy.
Both are operating systems with certain characteristics; some shared, some distinct. They are certainly the two most prominent and well-supported systems available today.
But asking as if they were the only systems, implying that all the others that came (and, mostly and sadly, went) did not have some applaudable features not present in either NT or Linux today means ignoring a wealth of quite advanced ideas that lost the business wars, but did actually shine on the technology side. I myself keep returning to the Amiga Workbench on a regular basis, because certain features of that notable combine to a "home" feeling that I just don't get from either Windows or Linux. The Exec kernel is a beauty to behold, architecture wise. BSD has quite some interesting features that Linux hasn't. I am sure many other systems also have things they could bring to the drawing board if you would want to draft a "best of breed".
And then there is the all-important second part of the question: A or B -- for what, specifically?
For playing the latest games? For doing development work? (In which environment?) For running a server? (For what kind of services?) For controlling some device? For setting up a system and giving it to some less tech-savvy friend or family member, hoping to never be called up for support later on? For keeping your data secure?
All that being said...
The best improvements made of either Windows and Linux in recent years, IMHO, is the interoperability of either. Cygwin / MinGW has pervaded Windows in one form or another, and WSL has eventually given the idea of "Bash on Windows" Microsoft's blessing -- support for scripting in something other than Microsoft's own ideas of "languages" being one of the more irritating shortcomings of Windows. On the other hand, Wine / Proton have finally reached a level where it is feasible to have an all-Linux setup and still enjoy a mainstream game now and then, and the "free" Office variants have become likewise useful.
It no longer matters that much which of the two mainstream operating systems you opt for -- in the end, the range of applications you can use on either of them is not that much different anymore.
My personal use-case includes being the "sysop" for my family, with a grand total of six desktops and laptops to administer. Previous experience made me opt for Linux, most importantly because of superior remote access capabilities. I also have (over the course of several years) perfected a setup script of my own that allows me to re-initialize a system (unsupervised) from scratch to "all apps installed and configured the way everyone is used to". Combined with a file server that holds all the user data and configuration, mapped in as /home/$USER, this has saved me many hours of stressful save-and-restore work -- and in the end, helping you getting the things done you need to get done is what it's about.
Both are operating systems with certain characteristics; some shared, some distinct. They are certainly the two most prominent and well-supported systems available today.
But asking as if they were the only systems, implying that all the others that came (and, mostly and sadly, went) did not have some applaudable features not present in either NT or Linux today means ignoring a wealth of quite advanced ideas that lost the business wars, but did actually shine on the technology side. I myself keep returning to the Amiga Workbench on a regular basis, because certain features of that notable combine to a "home" feeling that I just don't get from either Windows or Linux. The Exec kernel is a beauty to behold, architecture wise. BSD has quite some interesting features that Linux hasn't. I am sure many other systems also have things they could bring to the drawing board if you would want to draft a "best of breed".
And then there is the all-important second part of the question: A or B -- for what, specifically?
For playing the latest games? For doing development work? (In which environment?) For running a server? (For what kind of services?) For controlling some device? For setting up a system and giving it to some less tech-savvy friend or family member, hoping to never be called up for support later on? For keeping your data secure?
All that being said...
The best improvements made of either Windows and Linux in recent years, IMHO, is the interoperability of either. Cygwin / MinGW has pervaded Windows in one form or another, and WSL has eventually given the idea of "Bash on Windows" Microsoft's blessing -- support for scripting in something other than Microsoft's own ideas of "languages" being one of the more irritating shortcomings of Windows. On the other hand, Wine / Proton have finally reached a level where it is feasible to have an all-Linux setup and still enjoy a mainstream game now and then, and the "free" Office variants have become likewise useful.
It no longer matters that much which of the two mainstream operating systems you opt for -- in the end, the range of applications you can use on either of them is not that much different anymore.
My personal use-case includes being the "sysop" for my family, with a grand total of six desktops and laptops to administer. Previous experience made me opt for Linux, most importantly because of superior remote access capabilities. I also have (over the course of several years) perfected a setup script of my own that allows me to re-initialize a system (unsupervised) from scratch to "all apps installed and configured the way everyone is used to". Combined with a file server that holds all the user data and configuration, mapped in as /home/$USER, this has saved me many hours of stressful save-and-restore work -- and in the end, helping you getting the things done you need to get done is what it's about.
Every good solution is obvious once you've found it.
Re: NT vs Linux
Linux started to be used heavily with the web boom of the 90s when it was only a few years old. Granted, NT was no older, but NT had a professional development team from the start, including the chief architect of the VMS kernel. Linux had whatever people would contribute and perhaps a few of the things non-contributors asked for. NT was supposedly new technology but actually close to the very professional, very powerful VMS, while Linux was an immitation of what was actually the cheapest professional-quality OS of the last century, and certainly not one of the most progressive. There was a saying in the 80s, "Unix is dead." In 1989, one of the Bell Labs Unix research team actually said worse: "Unix is not only dead, it has started to smell really bad." But I've drifted off the subject of performance which I meant to answer. I do find modern NT (Win10) seems awfully unoptimized in low-memory conditions, but it can be argued that Linux is excessively optimized. Besides, memory handling is not entirely in kernel space.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.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie