3 ms·
When writing 32-bit Windows programs, I'm pretty sure it was basically the same as working on Windows 2000: separate address spaces per process, virtualized add
by to3m 10y ago
When writing 32-bit Windows programs, I'm pretty sure it was basically the same as working on Windows 2000: separate address spaces per process, virtualized address space, swap file. In terms of ReadProcessMemory and the like (or whatever the equivalent was back then... I only did Win32/DirectX/OpenGL stuff at the time) it was probably a free-for-all (no users, no security...) but if you were just writing ordinary code then the basic operating model was a bit like the usual NT one.
The preemptive multitasking did work, but I remember it being quite lame, and if your program didn't use GetMessage/WaitForSingleObject/etc. often enough then it could have a deleritous effect on the rest of the system. But you could still see this sort of behaviour in XP at times, and it only really seemed to resolve itself properly when 2+-core CPUs became common... so I don't know how much Windows 9x's 16-bit heritage can be blamed.
This was all quite a long time ago, though, thankfully, so maybe I've forgotten something.