The History of Windows NT 3.1
abortretry.fail
abortretry.fail
One of the most enjoyable books of its kind I've ever read.
> To aid in internationalization, Unicode was used top to bottom, greatly enhancing internationalization.
And we all know the story of how Unicode then went from 16-bit to 32-bit, rather spoiling things, leading to the world as it is today, with WTF-16 and code page 65001.
> NT was a fully 32 bit microkernel operating system with [...]
There was a whole lot of debate about this at the time, and the upshot is that by no contemporary measure of what it meant to be one, was Windows NT a microkernel operating system. It's sad to see this come back in potted histories 30 years after the fact, because "microkernel" was more marketing tapping into an operating systems design fad of the time rather than an accurate technical description.
> but unlike VMS [...] NT uses its own NTFS [...]
In an article calling out the similarities in other aspects, missing the marked parallels between ODS-2 and NTFS, from BITMAP.SYS versus $Bitmap to INDEXF.SYS versus $MFT, is rather silly.
> A program written for NT in 1993 can run unmodified on Windows 11 in 2023 as the entire API and userland haven’t changed while everything underneath most certainly has.
The interesting part of this sentence being in the discussion of personalities is that the Win32 personality is the only one of the original personalities for which this is true. The 16-bit OS/2 personality doesn't exist any more, the POSIX personality has been superseded four times (2 Interix systems, and then 2 WSLs), and NTVDMs went away with the move to 64-bit.
> Microsoft added the win32 API developed for NT to Windows 3.x as well [...]
Actually it was Win32s, and an article that mentions the list of caveats for the 16-bit OS/2 API on Windows NT listed in an OS2API.TXT file should really mention that Win32s came with lots of similar caveats about what parts of the Win32 API weren't supported in Win32s. Yes, just like that OS2API.TXT there was a list of what DOS+Windows 3.x did and didn't support, in the SDK. It was WIN32API.CSV. There was also a WIN32S.DAT listing all of the Win32 stuff that didn't work on DOS+Windows 3.x with Win32s.
The entire personalities thing was pretty much never used. I could never run anything OS/2 except for a couple 16-bit command line utilities, and the POSIX one was straight garbage and likely the source of many Weirdnix contest stories. It was only until Interix that you could actually source port anything worthwhile, and they quickly hit the limit that the POSIX and Win32 personalities could not speak to each other with anything other than TCP/IP. WSL1 quickly dropped the POSIX personality and switched to the Drawbridge sandbox stuff (in part to be able to access the Win32 subsystem, and to be able to skip PE binaries), and WSL2 followed by dropping the entire idea and using a then more classic HVM.
Since the very beginning in Windows 95 the taskbar has had an "auto hide" mode if that is your concern. For the vast majority of users, having a consistent present launcher and switcher is important, as seeing a screen with no button to switch apps would be incredibly confusing.
The IRQ level concept may have antecedents in earlier systems from the 1980s, but it does not originate with the Intel-based Personal Computer AT architecture of the time, with its dual 8259s, EOIs, IF, and whatnot.
Firstly, NeXTStep came out in 1989, and had both preemptive multitasking and threads, and OS X 1.0 didn't really improve on NeXTStep in that area at all.
Secondly, while OS/2 1.0 had threads and preemption, it was text-only and had to run on IBM AT 80286 PCs so most of that technological might was wasted. It would be 1990 before it had a real GUI. And it would be nearly 1992 before OS/2 was 32-bit.
Presentation Manager was available in 1988, by the way, not 1990. Petzold's book on it came out in 1989. First (and only) edition sitting on my bookshelf as I type this.
[0] https://www.itprotoday.com/compute-engines/death-alpha-nt
[1] https://techmonitor.ai/technology/dec_forced_microsoft_into_...
Using all that money to push PRISM/ALPHA and MICA into workstation and server and large server space would have yields them better results. That said, I'm not sure if DEC could have survived with that strategy either.
What it would have done is make it so that Windows NT ends up not existing or existing in a very, very, very different way, likely in a far worse way. Lets remember that Gates didn't even believe in Virtual Memory.
I don't think 2K could do DOS games, as they usually talked to the hardware.
The stability was amazing, but there were still some compatibility issues with games and so on.
This is just every OS when a new version comes out... sad!
WinXP needed 64MB RAM and was considered hugely bloated at the time.
EDIT: Actually, I just checked, and NT 3.5 opens in around 8 minutes and uses 20MiB of swap, when booted with 12MB.
It was marketed and sold as a business OS. I agree with the Op (OPs?) that it was revolutionary.
This remark points you don't realize how bloated NT truly was.
In the 2000s I could still run Linux _and XFree86_ in under 4MB of RAM.
NT in 1993 would just BSOD with less than 10MB of RAM.
The parent poster claimed the bloat was because of portability and other metrics, but this is also not true since other very much portable OSes from the next decade still had lesser minimum requirements.
NT was not such a good design as it is often claimed. It was a clone of a esoteric big iron OS that they were trying to retrofit on much smaller devices. They had to backpedal on everything from microkernel to personalities in order to be able to actually market it to "their target market".
I genuinely don’t understand all this looking down on what, in hindsight, clearly worked.
NT was always marketed and priced for the professional & enterprise markets, so the whole “but what about home computers at the time” rings hollow.
NT ushered in a new era of business computing and networking, and more importantly a new era of thinking about and working with technology in the workplace, something its competitors at the time couldn’t manage. Even Novell netware, dearly missed, got steamrolled by NT. You can pooh-pooh NT all you like, and talk about what a shitty clone it was, and how poor the technology was.
NT clearly won, at the time.
No, I am not. I used to do that with at least 2.2 kernels. https://tldp.org/HOWTO/4mb-Laptops.html
But besides, I know 4MB in 2000s was low enough to be awkward. The point is that _it could_. NT in 93 could not even boot with 8MB RAM, and then it was definitely not low.
This seems to confirm my statement.
On the same machine, NT 3.5 BSODs. With 12MB is the first I can get it to boot, albeit it complains that some services failed to start, and generally thrashes like hell, using 20MB of swap...
You can even try muLinux yourself, albeit it's kernel 2.0, not 2.2, and it opens some X11 utils that bump swap usage to 2MB (not very usable).
There’s no way NT “almost killed Microsoft” because Windows 3.x was a money printer. And if that hadn’t happened, Microsoft wouldn’t have exited the OS/2 relationship.
Windows NT was originally meant to be OS/2 3.0. In the worst-case scenario they could have stuck with that plan and played the role IBM had designed for them, which would also have been lucrative (although nothing like the bonanza of the desktop monopoly they had by the late 1990s).
But 23 years behind OS-9, which I happily ran on my CoCo 9 years before NT was born.
https://en.wikipedia.org/wiki/OS-9
https://colorcomputerarchive.com/repo/Documents/Books/OS-9%2...
The Motorola 6809 was a nice architecture for UNIX-like systems... if we accept the 16-bit memory address space.
And I dunno about GP but I would prefer what the websites would be usable without an adblocker, hazmat suit and poison testers.
Microsoft most likely repents of selling away Xenix, and not fully embracing POSIX at the right time.
WSL ended up being an easier way, than fixing SUA.
Eventually there was an evolution with SUA, but never with a big commitment level.
It seems like Every* operating system adds some sort of Posix compatibility..
Some of IBM Mainframe OS's, AS/400 via PASE; HP's MPE->MPE/IX, VMS->OpenVMS, Stratus VOS, Tandem(HPE) Guardian OSS, and any number of clones/embedded systems, etc.
*I don't mean that literally.
So POSIX ends up being the rest that everyone reaches out for when using C.
The irony being that still isn't enough to get rid of #ifdef spaghetti, due to the things POSIX leaves out to each implementation.
(I still have a soft spot for WinNT 4.0, this was the first Windows that wasn't a complete joke when coming from an Amiga)