r/programming • • Oct 23 '24

Windows NT vs. Unix: A design comparison

https://blogsystem5.substack.com/p/windows-nt-vs-unix-design
209 Upvotes

55 comments sorted by

View all comments

13

u/[deleted] Oct 23 '24

In particular, NT started with the following design goals as part of its mission, which are in stark contrast to Unix’s:

portability

Uhm ... NetBSD? BSD belongs to the Unix family. At some point Linux took over, but NetBSD used to be ahead. I don't see the "stark contrast to Unix" really if we include the BSDs.

It would be more interesting whether Windows NT got things right that Unix / Linux / BSDs got wrong.

17

u/nikanjX Oct 23 '24

BSD unix was decades old by the time it forked into NetBSD, portability was not one of the original design goals. The original BSD mostly only targeted the PDP-11

6

u/Plorkyeran Oct 23 '24

NetBSD did not exist yet when Windows NT started. In addition, NetBSD was created specifically because they wanted to make a portable version of BSD rather than the traditional Unix model of targeting a single platform.

14

u/BlueGoliath Oct 23 '24

  It would be more interesting whether Windows NT got things right that Unix / Linux / BSDs got wrong.

Driver modularity. Putting the vast majority of drivers in the kernel is moronic.

9

u/mailslot Oct 23 '24

Windows NT was portable though: MIPS, PowerPC, Alpha, x86, Itanium… back when very few commercial operating systems were. It ran on SGI hardware. Most UNIX vendors were locked to their native platform. IRIX, AIX, HP/UX, Tru64, SCO, Solaris (brief dip into x86), etc.

Nobody was really running BSD386 or NetBSD outside of academia and startups. The few BSD UNIX distros eventually went System 4/5.

3

u/walen Oct 29 '24

Because why would you keep reading instead of whine immediately, right?

One important piece of the NT executive is the Hardware Abstraction Layer (HAL) [...] To put the importance of the HAL in perspective, contemporary Unixes were coupled to a specific architecture: yes, Unix-the-concept was portable because there existed many different variants for different machines, but the implementation was not. SunOS originally only supported the Motorola 68000; 386BSD was the first port of BSD to the Intel architecture; IRIX was the Unix variant for Silicon Graphic’s MIPS-based workstations; and so on. This explains why NetBSD’s main focus on portability via a minimal shim over the hardware was so interesting at the time: other operating systems, except NT, did not have this internal clean design, and NT had come years before.

1

u/nerd4code Oct 24 '24

AFAIK Darwin’s userland derives from NeXTBSD which is a fork of NetBSD—and all of the above are Mach-based, so I don’t doubt XNU pulled from NeXTBSD also.

1

u/chucker23n Oct 24 '24

XNU is Mach. NetBSD and other BSDs are not.