I'm not sure I do. But it does seem like a good question.
Also:
http://www.art.net/~hopkins/Don/unix-haters/x-windows/disast...
I'm not sure I do. But it does seem like a good question.
Also:
http://www.art.net/~hopkins/Don/unix-haters/x-windows/disast...
Over time they added cooperative multitasking, which meant the foreground app had to consciously give time to let background apps do stuff.
But they could never build a real OS with security and memory protection out of it. So Apple bought NeXT to get industrial strength unix as their core OS, and switched all Apple development to NeXTStep, or at least the modern derivative of it, called Cocoa.
My dust covered Inside Mac volumes were made useless nearly 20 years ago.
Even Multi-Finder was a lot of work because apps happily poked OS globals.
The original Mac OS was more like an embedded app toolkit than an OS. The original implementations were all ROM!
You may know, but for readers who don’t: ”they” didn’t, Andy Hertzfeld did (https://www.folklore.org/StoryView.py?story=Switcher.txt)
It helped that he had intimate knowledge of the Mac operating system’s internals, but many of them were documented in Inside Macintosh, and others could have been found with (quite) a bit of effort; one didn’t have to be at Apple or even have access to the system’s source code to implement that.
And those volumes aren’t useless; they are reminders of about the last time hacking an OS was fun :-;
I was working in a group next to the systems software group at Apple when some of the early malware was discovered. After a few days of secrecy, with people being pulled into labs and conference rooms under spooky circumstances, the software managers sent out word that some malware had been found and that people were working on mitigations. They also said something like "Look guys, we know that writing malware is really easy, so don't do it, because we'll fire you immediately if we find out." I distinctly recall that this was in verbal instruction, not a memo, and that the words "really easy" and "really, don't do it" were used.
Naturally my response was to go back to my desk and write a proof of concept. Half an hour and a hundred lines of code later I had something that would replicate a payload whenever you inserted a floppy disk. It was indeed dead easy to do. I exercised my toy for a little while . . . then deleted every trace. I'm sure I wasn't the only engineer who was curious and did this.
So while you couldn't change the ROM, you could definitely muck with the system software, and that's all that really mattered. Zero thought had been given to MacOS security.
Obviously they dumped a lot of the OS level APIs for stuff like Control Panels and Desk Accessories, but the standard app APIs were largely unchanged.
There's no fundamental reason they couldn't have made their own OS with the same Carbon APIs that made it into Mac OS X (not that I think they should have—the NeXTStep stuff was much better).
- no memory protection.
- system support for patching OS calls.
- no distinction in privileges between application and OS code.
- when mounting any disk, the OS opened a resource file on it
and kept it open. Side effect was that the OS would look for
code fragments defining windows, menus, and controls in that
file. That file normally didn’t contain any, but adding a
malevolent one to that file would mean the OS would run your
code as soon as any program created a standard window, menu
or control.
(That last part was fixed after a virus exploiting it was found)In the days that your Mac-power-user-penis-length was measured every time you boot by how many extension icons plopped out along the bottom of the screen (and wrapped up to the next line), there was actually a coveted viagra-like meta-penis-extension that you could paste a bunch of ICON's into with ResEdit.
When you booted, it would sequentially plop all those icons out one by one, so it looked like you had as many extensions as you wanted, whatever you wanted them to look like! It would slow down your boot a bit, but it sure was worth it.