Comment by Someone

4 hours ago

> they could likely decompile MacOS classic and rework it to give it modern memory protection, virtual memory, preemptive multitasking, and networking.

It had most if not all of that.

It had networking from the start with AppleTalk, later Ethernet and internet with MacTCP.

MacOS 9 had a preemptively scheduled kernel.

The problem is having that and supporting the software ecosystem, which depended on cooperative scheduling without having memory protection.

MacOS 9 ‘solved’ that by running the classic OS in a single process. It had APIs for creating preemptively scheduled threads, but those threads were limited in what they could do.

You are getting your versions muddled up.

You are describing attributes of the NeXT-based OS X but calling it MacOS 9.

MacOS 9 was the final version of Classic. No preemption, weak virtual memory, weak cooperative multitasking, no virtual machines for anything.

MacOS 9 is the OS that ran inside the Blue Box on Mac OS X for backwards compatibility.

  • > You are describing attributes of the NeXT-based OS X but calling it MacOS 9.

    You're mistaken.

    > MacOS 9 [had] no preemption

    Classic Mac OS has had vertical retrace (VBL) interrupts since System 1.0 (which are a form of preemption). But suppose we disregard that.

    >> MacOS 9 had a preemptively scheduled kernel.

    The GP is correct. Applications run cooperatively within the Blue task, but the Blue task itself runs preemptively with other MP tasks (which an application can create).

    https://en.wikipedia.org/wiki/Mac_OS_nanokernel

    https://en.wikipedia.org/wiki/Multiprocessing_Services

    • I know about the nanokernel, yes. Without following the links, Gary Davidian (is that spelled right?) did amazing work.

      Very very little used it. About the only classic app I ever heard of that could even use pre-emption and background execution were some demanding Photoshop filters. Enough that Daystar Digital built multiprocessor Mac clones just for that alone:

      https://lowendmac.com/1995/daystar-genesis-mp/

      Within the MacOS kernel it is as coop as ever, and there were no different OSes inside virtual machines. No, Tenon MachTen does not count.