Moving down the stack, Unix systems have never been big on supporting arbitrary drivers: remember that Unix systems were typically coupled to specific machines and vendors. NT, on the other hand, intended to be an OS for “any” machine and was sold by a software company, so supporting drivers written by others was critical. As a result, NT came with the Network Driver Interface Specification (NDIS), an abstraction to support network card drivers with ease. To this day, manufacturer-supplied drivers are just not a thing on Linux, which leads to interesting contraptions like the ndiswrapper, a very popular shim in the early 2000s to be able to reuse Windows drivers for WiFi cards on Linux.
Windows NT vs. Unix: A design comparison
Submitted 2 months ago by exu@feditown.com to technology@lemmy.world
https://blogsystem5.substack.com/p/windows-nt-vs-unix-design
Comments
JWBananas@lemmy.world 2 months ago
InverseParallax@lemmy.world 2 months ago
rottingleaf@lemmy.world 2 months ago
Also ndisgen under FreeBSD. MS could have been nice for a difference and not broken compatibility.
Blue_Morpho@lemmy.world 2 months ago
Nice to see a pro NT article for a change but there are some details wrong
“It’s true that Unix has attempted to shoehorn other types of non-file objects into the file system”
‘Everything is a file’ was Unix’s design principle from the very start. It wasn’t shoehorned in. It is IMO superior to NT’s object system in that everything is exposed to the user as the file system rather than hidden behind programming api’s.
JackbyDev@programming.dev 2 months ago
I always thought it was that everything was a file but that everything could be interacted with as if it was a file.
BearOfaTime@lemm.ee 2 months ago
Agreed.
I skimmed through the article, and see no mention of DEC Alpha, which is NT’s predecessor, which is really disappointing. Great read though, very well done.
DOS and Win3.1 really have little to do with NT. A DEC Alpha team was laid off around 1990, MS hired them, and NT is the result. Mark Minasi (I think, may also have been his partner, who’s name I can’t remember) wrote an article about 1998 in Windows Magazine (NT Magazine?) about it, and broke down the components of both NT and Alpha to demonstrate the similarity.
I’ve been looking for the article for a couple years now.
EffortlessEffluvium@lemm.ee 2 months ago
Alpha was a processor. You’re thinking of VMS.
Treczoks@lemmy.world 2 months ago
Ah, the good old VMS. Did quite some coding on a VAX11/780. Very nice and round OS. NT was basically a VMS clone for Intel. Although I think there was an implementation for the Alpha, too.
exu@feditown.com 2 months ago
I’m not a kernel dev, but I’ve read often enough that there are some places where “everything is a file” somewhat breaks down on Unix. (I think /proc and some /dev)
For an “absolutely everything is a file” system have a look at plan9, it was the intended successor to Unix, but then that got popular while plan9 stayed a research project.
cakeistheanswer@lemmy.dbzer0.com 2 months ago
I know about 3 people on earth that ever ran it in anything approaching production. Two of them still found a way to use the acme editor til LSPs took over, one is still at it.
It remains a pretty cool project you can still find people maintaining the bones of it. I think the core utils are ported and in the arch repo.
Fizz@lemmy.nz 2 months ago
Awesome read, I’m switching to NT 3.1
NeoNachtwaechter@lemmy.world 2 months ago
Unix? Come on, really?
What is Unix in 2024?
ricdeh@lemmy.world 2 months ago
Unix is literally the most important operating system (specification) family on the planet. Even bigger than M$ Windows. You’ve got all the Android phones, all the Apple iPhones, macOS, FreeBSD and all the GNU/Linux distributions. Unix-like installed base is by far the largest of any on the planet.
cyberpunk007@lemmy.ca 2 months ago
Don’t forget… The internet basically runs on it too :D
anon5621@lemmy.ml 2 months ago
I think any modern unix-like operation systems: bsd based,linux based,haiku,minix and other else hundred branches.
ramble81@lemm.ee 2 months ago
This was most likely posted by a kid who just thinks Unix is “old” Linux and doesn’t understand the roots of what it actually means in terms of computing.
rottingleaf@lemmy.world 2 months ago
I haven’t yet read the article, but it may well be a comparison for which Linux, FreeBSD, Solaris can be united under the Unix umbrella as systems with monolithic kernels and similar conventions. Of course FreeBSD is much cooler than Linux and Solaris is much cooler than FreeBSD, but we get what we get.
Laser@feddit.org 2 months ago
The big issue that the author kind of mentions is that while the kernel has all these neat features, the overlaying OS seems to use them in such a way that they’re often not effective. XP before SP1 was a security nightmare and we got lucky that blaster was not working correctly. A secure token for the processes in your session? It doesn’t really help if every process you spawn gets this token with the user being the administrator (I know this is kind of different nowadays with UAC). A very cool architecture that allows easy porting? Let’s only use it on x86. Even today, it’s big news for Windows running on ARM, which the not-by-design-portable Unices have been doing for years.
Maybe if Microsoft had allowed the kernel to be used in other operating systems - not expecting a copyleft license - the current view is that Windows Is Bad, and the NT kernel is an inseparable part of Windows. And hell, even Windows CE which did run on other devices and architectures, doesn’t use the NT kernel.
So while the design and maybe even large parts of its implementation may be good and clean, it’s Microsoft’s fault that the public perception of the NT kernel.
Blue_Morpho@lemmy.world 2 months ago
XP before SP1 was a security nightmare
To be fair, Linux was a security nightmare before 2000 too. Linux didn’t have ACL’s until 2002.
with the user being the administrator
No one ran as administrator as default in a corporation, nor at home if you knew anything about computers. NT even suggested creating non privileged user accounts during setup.
Let’s only use it on x86.
It’s not like they didn’t try. When NT came out it was running on Mips, Alpha, PowerPC and Itanium. It wasn’t MS’s fault everything but x86 died. They tried more than anyone to support x86 alternatives. Now that ARM is capable of more than a PocketPC, they are on ARM.
Windows CE which did run on other devices and architectures, doesn’t use the NT kernel.
CE had extremely different requirements. The OS and Apps had to run in 2MB of RAM. NT shipped on many different CPUs.
qprimed@lemmy.ml 2 months ago
Windows NT vs. Unix: A design comparison
Plopp@lemmy.world 2 months ago
Right?
*sigh*
*unzips*
JackbyDev@programming.dev 2 months ago
*untars*