Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One thing I don't see mentioned in this article, and I consider to be the #1 difference between NT and Unix, is the approach to drivers.

It seems like NT was designed to fix a lot of the problems with drivers in Windows 3.x/95/98. Drivers in those OSs came from 3rd party vendors and couldn't be trusted to not crash the system. So ample facilities were created to help the user out, such as "Safe Mode" , fallback drivers, and a graphics driver interface that disables itself if it crashes too many times (yes really).

Compare that to any Unix. Historic, AT&T Unix, Solaris, Linux, BSD 4.x, Net/Free/OpenBSD, any research Unix being taught at universities, or any of the new crop of Unix-likes such as Redox. Universally, the philosophy there is that drivers are high-reliability components vetted and likely written by the kernel devs.

(Windows also has a stable driver API and I have yet to see a Unix with that, but that's another tangent)



> and a graphics driver interface that disables itself if it crashes too many times

That feature is one of the great ones that came with Windows Vista.


It really was nice to be able to at least still use the system if the display driver is crashing. 800x600 at 16 bit or whatever it was is still better than nothing.


And most importantly it is enough to debug and fix the system.


Windows NT 3.x had graphics and printer drivers in user-mode for stability reasons. Windows NT 4 moved them to Ring 0 to speed-up graphics applications.


Then almost immediately took them back out after realizing this was a bad idea



I presume this reversal happened during NT's main support window?


Well, by "immediate" they mean: "was user space through Win2k, went to kernel space in XP to match 9x performance, reversed in Vista".

So...one generation, and about 7 years later.


They were moved into kernel space in NT 4.


> and a graphics driver interface that disables itself if it crashes too many times (yes really)

I actually ran into this while upgrading an AMD driver and was very impressed! On Linux and macOS I was used to just getting kernel panics.

It’s too bad whatever system Crowdstrike hooked into was not similarly isolated.


APIs used by crowdstrike et al are also what made WSL1 unworkable performance-wise. Can’t have security without slowness nowadays it seems.


Cost is all kind of inconvenience


>So ample facilities were created to help the user out, such as "Safe Mode" , fallback drivers, and a graphics driver interface that disables itself if it crashes too many times (yes really).

Pretty sure most of this was already in place with Windows 95; I know Safe Mode definitely was along with a very basic VGA driver that could drive any video card in the world.


Safe Mode existed in Win9x.

User space drivers that could restart without kernel panicking didn't exist until Windows Vista (well, on the home user side of Windows).

Fallback drivers were never a thing on Win9x, you would have to go into safe mode to uninstall broken drivers that wouldn't allow a boot (typically graphics drivers); or manually uninstall/replace them otherwise.


Fallback drivers existed, because how else would Safe Mode drive the video card so you can see something to operate the borked computer?

Also used when Windows doesn't have a specific driver yet, like immediately after a clean install.


> Fallback drivers existed, because how else would Safe Mode drive the video card so you can see something to operate the borked computer?

If you use "fallback" in a colloquial sense, yes the VESA/VGA driver that Windows "fell-back" on was a fallback driver.

Fallback Drivers (proper noun) is a distinct concept of last functional or alternative drivers that Windows would use instead, if the primary one failed. They fell in-between Windows' generic drivers and your current installed one.

The latter is what is being referred to in this conversation.


I'm not aware of "primary" drivers if that's a thing. I know that Safe Mode always falls back to the drivers Windows has by default because that's the whole point of Safe Mode.


Then you shouldn't be discussing, with authority, a topic you have no understanding/knowledge of.

Pretty simple.


Been using Windows since 3.1, my dude. I know Windows like the back of my hands.

You can have multiple drivers for a device installed, but Windows will usually get very confused and/or the drivers will get very confused with themselves and things will get very janky very quickly.

It's really not worth the pain and hilarity compared to just KISS'ing with one driver and nuking and installing as desired. DDU was invented for a reason.

Anyway, Windows in Safe Mode will always fall back to its own default store of drivers. You can explicitly enable an exception for NICs, but otherwise no third-party drivers are loaded because the entire point of Safe Mode is to get Windows to boot using known-good, Microsoft-guaranteed drivers.


> Been using Windows since 3.1, my dude. I know Windows like the back of my hands.

As have I. Congrats, your anecdote is now useless as a point of authority.


> (Windows also has a stable driver API and I have yet to see a Unix with that, but that's another tangent)

Solaris has (or at least had) DDI (Device Driver Interface) and DLPI (Data Link Provider Interface)


> It seems like NT was designed to fix a lot of the problems with drivers in Windows 3.x/95/98

NT was running in parallel with Windows 3.x/9x. The NT had better drivers because it was multiuser with some memory protection.

Just look at the recent Crowdstrike incident to see what they really fixed. /s




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: