Hacker News new | ask | show | jobs
by tombert 483 days ago
I hate Windows now because I'm comparing it to modern Linux and macOS, but in the 90's wasn't Windows NT pretty competitive with some of the commercial Unix offerings? I thought it had some pretty cool stuff in regards to non-blocking IO, and NTFS was pretty ahead of its time compared to most of the Unix filesystems at the time I think?

I wasn't really writing code in the 90s, so it's tough for me to say with confidence, but I thought I read somewhere that Windows NT was, in some regards, objectively better than most of its competition in the 90's.

3 comments

The NT kernel was designed around non-blocking async I/O; all I/O in NT is async and leveraged completion ports. I believe Solaris is the only other OS with IOCP.

Back then, Linux had either a primitive scheduler or O(n) scheduler, until 2003. NT shipped with an O(1) scheduler.

I personally feel NT still does high pressure memory management better than Linux. No opinion about other OSes, although macOS will ask the user what to force quit -- then again, given people have been seeing memory ballooning in random apps, including OOTB apps on macOS 15... Apple has other issues.

NT is great. It's just plagued by Win32. And those designers...

https://users.soe.ucsc.edu/~scott/courses/Spring01/111/slide...

> In 1996, more NT server licenses were sold than UNIX licenses

> I believe Solaris is the only other OS with IOCP.

AIX has them as well.

This is pretty much correct. Windows NT was far better than DOS and feature competitive with the Unices of the time, along with being available on more modest hardware.

The Unix wars were also raging, and compatibility between Unices still hadn't been sorted out (and arguably never was) so a company with workstation class software had to port their code between mostly compatible operating systems and wildly incompatible GUI frameworks. So shipping an NT product wasn't the big deal that it seemed.

That makes sense; even within the Linux world in the year of our lord 2025, binary compatibility is still kind of an issue. I have had issues getting regular Linux binaries working in NixOS [1], and even getting stuff working between Ubuntu and OpenSUSE and Fedora can be a pain.

It totally makes sense why developers would see Windows NT as the future here; it gave you most of the features you'd want from Unix-land (and I think some new stuff too that wasn't available in Unix?), and having "platform to rule them all" is appealing to most developers for obvious reasons. It doesn't hurt that Win32 isn't too hard to code against (at least it wasn't when I played with it 15 years ago).

I do find it a bit strange that there wasn't really a "de facto" Unix that people coded against, like a clear winner that people liked, but I guess if the hardware was too expensive to run it, that's going to cut down on usage; we didn't really get "standard Unix" until OS X.

[1] https://news.ycombinator.com/item?id=42703720

The open source Unixes were tied up in license wars right at the moment Linux became stable.
It was fairly competitive, but it also took quite awhile to build up a full set of applications. Real NT didn’t run a lot of older Windows apps. And the hardware it ran on didn’t scale vertically in the server market like the UNIX systems. So it took some time for the software to fully arrive and some time for the hardware to get fast and big. And the UNIX vendors failed to see that the initial disadvantages were just that: initial. With the price of PC hardware behind them, Microsoft overcame those disadvantages quickly. Had a real UNIX been available on the same hardware and had a similarly aggressive and well financed vendor behind it, there might have been a chance. But none of the UNIX vendors took that market seriously. We shouldn’t forget though that MS hedged their bets on PC hardware and ported NT to DEC Alpha. So even they did not see the inevitability of the rise of PC hardware.