@Grunnen said:
The classic Mac OS was certainly not a superior product.
...
Every executable file had a user-configurable setting in its file attributes, determining the size of the ram slice to allocate. The program could not start with less free memory (even if it wouldn't need it) and could not take more memory (even if it would be available).
It was superior when it was invented (as a part of MultiFinder, in System 6, in 1988) where the competition was MS-DOS and 16-bit Windows-over-DOS. The memory allocation system (and other "interesting" APIs used internally) made perfect sense on a system without any concept of virtual memory.
The problem is that it outlasted its usefulness. And Apple was aware of this, hence the many (failed) projects to modernize Mac OS before they decided to migrate everything over to what was effectively NeXTStep with a new GUI and a backward-compatibility layer.
BTW, applications could allocate more memory than their partition. Mac OS had the concept of "temporary" allocations, which were allocated separately from the memory partition.
@blakeyrat said:
The reason Windows got those features in 3.x and Mac, say, 6.x didn't is because Apple was barely breaking even back then while Microsoft was using bulldozers to move around its huge piles of money
Also note that Apple tried very hard (at that time) to remain compatible with old hardware. You could load System 7.5.5 (September 1996) on a Mac Plus (basically the same architecture as the original Mac with 1M or 4M RAM and a SCSI port.)
System 7 would support virtual memory on Macs with hardware support - either a 68030 or a 68020 with external PMMU chip, but this was not required hardware, so apps couldn't rely on that behavior.
It wasn't until System 7.6 (January 1997), which required 32-bit clean ROMs and more than 4M RAM (and therefore could not work on any Mac with a 68000, and several later models.) System 8 required at least a 68040.
It wasn't until 8.5 (October 1998) that a PowerPC chip was required.
In other words, they were supporting their oldest mainstream hardware (the Plus and Mac II) for over 10 years since their introduction, and they were supporting the 68000 series processor for 14 years (and for 4 years after the introduction of PowerPC Macs - introduced with System 7.1.2 in 1994.)
That level of commitment to backward compatibility wasn't unusual for the time (MS-DOS's last commercial release, PC-DOS 7.0, shipped in 1995 and would work on any PC with sufficient memory, going all the way back to the 80's) but it does explain why radical architectural changes (which would mandate new hardware) were not done. We can argue about how, with 20:20 hindsight, it was a dumb idea, but it made perfect sense at the time.
It's worth noting that Microsoft themselves was supporting three mainstream OS's simultaneously, in great part for the need for backward compatibility. DOS (MS- and PC-) shipped as a standalone retail product from 1980 to 1995. DOS-based Windows (1.0 through Me) shipped from 1985 through 2000). Windows NT (3.1 through 10) 1993 to the present day.
But, as you wrote, Apple didn't have anything close to the manpower necessary to ship and maintain two (let alone) three mainstream OS products at once for more than a short transitional time.
@Grunnen said:
I'm talking about things like that it took 15 minutes to print a low-res color picture, or that it took 45 minutes to scan a 600 dpi photo, time during which the whole computer was unusable because of the lack of preemptive multitasking. That was indeed WAY ahead of Windows 95 in mulitple metrics - but in the wrong direction.
You forget what Win95 multitasking was like. Yes, you could quickly switch between apps, but lots of things were timing-critical and would malfunction in all sorts of annoying ways if you actually tried doing two things at once. Scans ended up with image glitches and CD burners produced coasters, for instance. I remember having to quit all apps and disable all networking while performing these actions in order to get them to work right.
Windows didn't get the ability to multitask properly until NT. All of the DOS based Windows environments got flaky when trying to multitask while running timing-critical applications. I think a lot of us would have preferred Apple's approach (give enough CPU time to the critical app so it doesn't glitch, even if everything else slows down.)