5 ms·
Before VMS there was the family of RSX-11 operating systems which also had ASTs (now called APCs in NT parlance), IRPs, etc. Dave Cutler led the RSX-11M variant
by emily-c 2y ago
Before VMS there was the family of RSX-11 operating systems which also had ASTs (now called APCs in NT parlance), IRPs, etc. Dave Cutler led the RSX-11M variant which significantly influenced VMS. The various concepts and design styles of the DEC family of operating systems that culminated in NT goes back to the 1960s.
It's sad that the article didn't mention VMS or MICA since NT didn't magically appear out of the void two years after Microsoft hired the NT team. MICA was being designed for years at DEC West as part of the PRISM project.
- rbanffy 2y agoIn many ways NT was a new, ground up implementation of “VMS NT”. It started elegant, but all the backwards compatibility, technical debt, bad ideas, and dozens of versions later, with an endless list of perpetual features driven by whoever had a bigger wand at Microsoft at the time of their inception, takes a toll. Windows now is much more complicated than it could be. It shocks me some apps get Windows NT4 style buttons even on Windows 11.
- emily-c 2y ago>In many ways NT was a new, ground up implementation of “VMS NT”. Most definitely. There was a lot of design cleanup from VMS (e.g. fork processes -> DPCs, removing global PTEs and balance slots, etc), optimizations (converging VMS's parallel array structure of the PFN database into one), and simplification (NT's Io subsystem with the "bring your own thread" model, removing P1 space, and much more). SMP was also designed into NT from the beginning. You can start seeing the start of these ideas in the MICA design documents but their implementation in C instead of Pillar (variant of Pascal designed for Mica) in NT was definitely the right thing at the time.
- markus_zhang 2y agoHow do you get Windows NT4 style buttons on 11? That's something I want to do with my application!
- dspillett 2y agoThe GDI libraries/APIs that provide that are all still there, you just need to find a framework that lets you see them, are kick through the abstraction walls of [insert chosen app framework] to access them more manually. Be prepared for a bit of extra work on what more modern UI libraries make more automatic, and having to discuss everything rather than just what you want to differ from default.
- markus_zhang 2y agoOh thanks, I always think what is there is the native. I don't realize the old graphics way is still there. Maybe the Win3.x style is still there too?
- saratogacx 2y agoI think you can get back to Win9x/2k style controls by instructing the system to not add any theming. If you're finding a panel that is using 3.x controls, they're likely in the resources of the app/dll. Although the 3.x file picker can still be found in a couple of rare corners of the OS. https://learn.microsoft.com/en-us/windows/win32/api/uxtheme/nf-uxtheme-setthemeappproperties https://learn.microsoft.com/en-us/windows/win32/api/uxtheme/... STAP_ALLOW_NONCLIENT Specifies that the nonclient areas of application windows will have visual styles applied.
- markus_zhang 2y agoThanks, this is interesting!
- abareplace 2y agoIf there is no application manifest, you will get Windows NT4 / Windows 9x style buttons. Just tested this on Windows 11.
- heraldgeezer 2y ago>It shocks me some apps get Windows NT4 style buttons even on Windows 11. This is good, though. The alternative is that the app won't run at all, right? Windows NT is good because of that background compatibility, both for business apps and games.
- rbanffy 2y ago> The alternative is that the app won't run at all, right? The alternative is that the application displays with whatever the current GUI uses for its widgets.
- radicalbyte 2y agoUnder Windows it's very rare to have trouble to running software. When you have trouble it's usually due to some security considerations or because you're using something which has roots in other operating systems. MacOS & Linux are nothing like this. You can run most software, as most of the basis for modern software on those stacks is available in source form and can be maintained. Software which isn't breaks. Apple/Google with their mobile OSes take that a step further, most older software is broken on those platforms. The way they've kept compatibility within Windows is something I really love about the platform.. but it I keep wondering if there's a way to get the best of both worlds. Can you keep the compatibility layer as an adhoc thing, running under emulation, so that the core OS can be rationalised?
- gunapologist99 2y agoIn fairness, closed source software is a very very tiny minority of the software available on Linux, which is why ABI backwards-compatibility hasn't been much of a concern. In that respect, it's essentially the polar opposite of Windows and even MacOS. However, it'd be very nice if it did become more of a focus (especially in the glibc/audio/glx areas), especially now that gaming has become very popular on Linux. Trying to get old, closed-source games like Unreal Tournament to work on Linux can be a real chore.
- radicalbyte 2y agoI'm not so sure, I like the Linux model of 99.999% of the code you'll run being available in source form. The result is that we have that code running everywhere. I strongly dislike the Apple model.
- TheAmazingRace 2y agoFun fact. If you increment each letter of VMS by one, you get WNT. If that isn't on purpose, it's a convenient coincidence.
- Taniwha 2y agoVaxes also had hardware support for ASTs in VMS (unlike NT) - they were essentially software interrupts that only triggered when the CPU was in a process context and no enabled interrupts were pending - so you could set a bit in a mask in another thread's context that would get loaded automatically on context switch and triggered once the thread was runnable in user mode .... device drivers could trigger a similar mechanism in kernel mode (and the 2 intermediate hardware modes/rings). There were also atomic queue instructions that would dispatch waiting ASTs
- ssrc 2y agoMonths ago I found this presentation on youtube, "Re-architecting SWIS for X86-64"[0], about how VMS was ported from VAX to Alpha to Itanium to x86 that did not have the same AST behaviour. [0] https://www.youtube.com/watch?v=U8kcfvJ1Iec https://www.youtube.com/watch?v=U8kcfvJ1Iec
- jdougan 2y agoEspecially since there was, apparently, MICA code copy pasted verbatim in NT. https://www.techmonitor.ai/technology/dec_forced_microsoft_into_alliance_with_legal_threat https://www.techmonitor.ai/technology/dec_forced_microsoft_i... I was wondering for years why MS continued to support DEC Alpha CPUs with NT.
- rasz 2y agoDidnt it end brilliantly for MS? Settlement involved MS supporting Alpha while DEC trained its enormous sales/engineering arm to sell and support NT thus killing any incentives to buy DEC hw in the first place. DEC moved upstream the value chain and Microsoft moved tons of NT to all existing DEC corporate customers.
- jdougan 2y agoOh yes. MS took full advantage of the situation. MS was always better at strategic planning than DEC.