this post was submitted on 10 Sep 2024
162 points (96.0% liked)

Technology

59174 readers
2961 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
top 42 comments
sorted by: hot top controversial new old
[–] [email protected] 56 points 2 months ago* (last edited 2 months ago) (1 children)
  • preps for bed
  • starts closing apps
  • refreshes lemmy...

Windows NT vs. Unix: A design comparison

  • *sigh*

edit: back. a really enjoyable read. loved the POV as unix guy poking at NT. g'night for real now, lemmy.

[–] [email protected] 24 points 2 months ago (1 children)
[–] [email protected] 17 points 1 month ago (1 children)
[–] [email protected] 3 points 1 month ago
[–] [email protected] 41 points 2 months ago (3 children)

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.

[–] [email protected] 10 points 2 months ago* (last edited 1 month ago) (2 children)

Agreed.

I skimmed through the article, and see no mention of ~~DEC Alpha~~ VMS, 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.

[–] [email protected] 8 points 2 months ago (1 children)

Alpha was a processor. You’re thinking of VMS.

[–] [email protected] 4 points 1 month ago

You're right. Thanks for the reminder. Memory ain't what it used to be.

[–] [email protected] 2 points 1 month 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.

[–] [email protected] 8 points 1 month ago

I always thought it was that everything was a file but that everything could be interacted with as if it was a file.

[–] [email protected] 4 points 1 month ago (1 children)

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.

[–] [email protected] 5 points 1 month 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.

[–] [email protected] 23 points 2 months ago (2 children)

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.

[–] [email protected] 19 points 2 months ago (1 children)
[–] [email protected] 2 points 1 month ago

It's a wonder that someone hasn't implemented a similar wrapper for WDDM. I suppose they'd rather force the vendors to play nicely.

[–] [email protected] 1 points 2 months ago

Also ndisgen under FreeBSD. MS could have been nice for a difference and not broken compatibility.

[–] [email protected] 14 points 2 months ago

Awesome read, I'm switching to NT 3.1

[–] [email protected] 5 points 2 months ago (1 children)

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.

[–] [email protected] 5 points 1 month ago (1 children)

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.

[–] [email protected] 3 points 1 month ago (1 children)

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.

yes, but XP at any SP is an unfixable mess compared to virtually any OS in the past 20 years (Temple OS excluded?), ACLs or not

not suggesting that you intimated otherwise, but its important to remind myself just how bad every XP instance really was.

[–] [email protected] 1 points 1 month ago (1 children)

It really wasn't. Turn off services you don't use, don't run as admin and it was fine. Yes people would get viruses from running executables but that's because Windows viruses were distributed widely because of market share. Linux wasn't inherently more secure.

[–] [email protected] 2 points 1 month ago* (last edited 1 month ago) (1 children)

gotta disagree. microsoft's vaunted API/ABI compatability combined with often broken process isolation made it an absolute mess. security features that should have protected users and systems were routinely turned off to allow user space programs to function (DEP anyone?).

SP2/3 taught users one thing only - if a program breaks, start rolling back system hardening. I cannot think of one XP machine outside of some tightly regulated environments (and a limited smattering of people that 1. knew better and 2. put up with the pain) that did not run their users as a local administrative equiv. to "avoid issues".

if user space is allowed to make kernel space that vulnerable, then the system is broken.

[–] [email protected] 2 points 1 month ago (1 children)

security features that should have protected users and systems were routinely turned off to allow user space programs to function

So you blame Microsoft for allowing users to disable security features but don't blame Linux for allowing it also?

if user space is allowed to make kernel space that vulnerable, then the system is broken.

Ssh has had bugs that give root on Linux. Does that mean Linux is broken too?

https://www.schneier.com/blog/archives/2024/07/new-open-ssh-vulnerability.html

[–] [email protected] 2 points 1 month ago* (last edited 1 month ago) (1 children)

So you blame Microsoft for allowing users to disable security features but don't blame Linux for allowing it also?

I am saying that I have far fewer privilege escalation issues/requirements on a typical linux distro - almost as if a reasonable security framework was in place early on and mature enough to matter to applications and users.

we can get into the various unix-ish SNAFUs like root X, but running systems with non-monolithic desktops/interfaces (I had deep core software and version choices) helped to blunt exposures in ways that were just not possible on XP.

we are talking about XP here, a chimeric release that only a DOS/Win combo beats for hackery. XP was basically the worst possible expression of the NT ethos and none of NTs underlaying security features were of practical value when faced with production demands of the OS and the inability of MS to manage a technology transition more responsibly.

now, if you ask me what I think of current windows... well, I still dont persnally use it, but for a multitude of reasons that are not "security absolutely blows".

apologies for the wall-o-text, apparently I have freshly unearthed XP trauma to unload. :-/

so, hows your day going? got some good family / self time lined up for the weekend?

[–] [email protected] 1 points 1 month ago (1 children)

running systems with non-monolithic desktops/interfaces

That's security through obscurity. It's not that Linux has better security, only that its already tiny desktop market share around 2003 was even smaller because of different variations.

MS to manage a technology transition more responsibly.

That's again blaming the Microsoft user for not understanding computers but not blaming the Linux user for running as root.

I have freshly unearthed XP trauma to unload.

Where you tech support at a company?

[–] [email protected] 2 points 1 month ago (1 children)

That's security through obscurity. It's not that Linux has better security, only that its already tiny desktop market share around 2003 was even smaller because of different variations.

no, its absolutely not. its choosing software components based on known security vulns or limiting exposure to a suite of suspected or established attack vectors. its absolutely not security through obscurity. these are fundamental choices made every day by engineers and sysadmins everywhere as part of the normal design, implementation and maintenance process. there is nothing "obscure" about selecting for certain attributes and against others. this is how its done.

perhaps you disagree with this.

That's again blaming the Microsoft user for not understanding computers but not blaming the Linux user for running as root.

? its not the users job to understand OS security. to expect otherwise is unrealistic. also, virtually no "average" linux user, then or now, ran/runs as root. the "root X" issue related to related to requiring XWindows to run with and maintain root privs., not the user interacting with X running as root. it was much more common in the XP era to find XP users running as administrator than a "Linux user ~~for~~ running as root" because of deep, baked-in design choices made by microsoft for windows XP that were, at a fundamental level, incompatable with a secure system - microsofts poor response to their own tech debt broke everything "NT" about XP... which is exactly the point I am trying to make. I am not sure your statement has any actual relation to what I said.

[–] [email protected] 0 points 1 month ago (1 children)

its choosing software components based on known security vulns

You don't swap GUI's on 1,000 corporate users every time a new exploit comes out. You don't know which Window Manager or DE is more secure.

Besides the Window manager is rarely relevant to exploits the same as in Windows. DirtyCow, CVE-2024-1086, SSH, this entire list https://www.cvedetails.com/product/47/Linux-Linux-Kernel.html?vendor_id=33 didn't care which Window Manager you ran.

virtually no "average" linux user, then or now, ran/runs as root.

That's because Linux users already know about computers. In 2003, at the time of XP Linux distro did not disable root. Root was the default during install. You then had to create your own non privileged accounts. In some distros that meant using useradd.

because of deep, baked-in design choices made by microsoft for windows XP

The exact design choices of Linux at the time.

You have a double standard.

[–] [email protected] 2 points 1 month ago

You have a double standard.

well, don't we all? but I think my argument is somewhat well founded. I have a reply in-composition, but just got project smacked. will reply as soon as I am able. didnt want you to think I had abandoned a conversation.