3 ms·
Windows was designed with threads-first mentality because on pre-386 machines you don't have viable process memory protection, so your tasks share memory by nec
by zozbot234 5mo ago
Windows was designed with threads-first mentality because on pre-386 machines you don't have viable process memory protection, so your tasks share memory by necessity. This is not a great argument.
- JdeBP 5mo agoWindows NT was never designed with pre-386 machines in mind. That was the territory of the old DOS+Windows. Windows NT from the get-go was for machines with page-based virtual memory. * https://computernewb.com/~lily/files/Documents/NTDesignWorkbook/vm.pdf https://computernewb.com/~lily/files/Documents/NTDesignWorkb...
- pstuart 5mo agoWinNT 3.5 was a solid offering.
- epcoa 5mo agoThis is not true. NT never had fork, was always based on the assumption of an MMU and Dave Cutler was a well known fork hater in the 80s long before this paper came out and made it cool to be so. By the time Windows 95 was out, the baseline was 386 with an MMU. CreateThread was initially designed for NT in 1993 though (which didn’t support pre-386 CPUs).
- JdeBP 5mo agoAs mentioned elsewhere on this page, Windows NT had fork from the start. Vide NtCreateProcess and what happens if an image file is not explicitly supplied. * https://computernewb.com/~lily/files/Documents/NTDesignWorkbook/proc.pdf https://computernewb.com/~lily/files/Documents/NTDesignWorkb...
- dcrazy 5mo agoNtCreateProcess doesn’t accept an image file parameter.
- JdeBP 5mo agoYou haven't read the doco. I did point to some. The image file is supplied (or not) via the section object. Think it through. Windows NT supported fork from the start in its POSIX subsystem, that subsystem was layered on top of the Native API, and this is the Native API mechanism that the POSIX subsystem employed. Although it took until Gary Nebbett for someone to publicly show how, even though people knew informally back in 1993.
- epcoa 4mo agoNtCreateProcess was not a public Windows API. NT was flexible, that’s not what was being discussed, which should have been clear from the context.
- keitmo 5mo agoNT performed unnatural acts to implement fork semantics for the POSIX subsystem.
- deleted 5mo ago[deleted]
- pjmlp 5mo agoWindows NT! Misread on purpose to make a point?
- dcrazy 5mo agoNT was designed to be platform-agnostic, and its original target was the DEC Alpha. Its process model owes nothing to pre-386 CPUs. The WinAPI CreateProcess function is a layer atop NtCreateProcess, so that is where the pre-386 heritage lives. But even the WinAPI process model changed significantly with 32-bit Windows.
- peterfirefly 5mo agoNo. https://en.wikipedia.org/wiki/Windows_NT#Development https://en.wikipedia.org/wiki/Windows_NT#Development Windows NT was developed on various different CPUs before the Alpha was a thing. When it was released in 1993, it was released for three CPUs: IA-32, MIPS, and Alpha.
- dcrazy 5mo agoSorry, I had conflated Windows NT development with development of 64-bit Windows as told by Raymond Chen: https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc718978(v=msdn.10) https://learn.microsoft.com/en-us/previous-versions/technet-... Raymond also says elsewhere that most WinNT engineers did development on i386, but doesn’t explicitly say what time period he is describing: https://devblogs.microsoft.com/oldnewthing/20250513-00/?p=111176 https://devblogs.microsoft.com/oldnewthing/20250513-00/?p=11...