Macintosh API Comes To Linux, Android

Unlike DOS, early versions of Windows, and most *nixes, the classic Mac operating system is weird. Contained in the ROM are subroutines to draw windows, pop up dialog boxes, and other various tasks purely related to the UI. On other systems, this would be separate from the BIOS, but in your Mac from the 80s, everything is baked into the ROM and hidden deep in the operating system. This has caused many problems for emulation; you can’t emulate an old Mac without a ROM or without a real installation of the operating system. Where BeOS — a cool but entirely forgettable operating system — has an Open Source reimplementation of the programming API, there’s nothing like that for a computer that at one point had a ten percent market share. This is weird, and we’ve all been waiting for someone to come up with an Open Source reimplementation of the Macintosh Toolbox, the API that’s responsible for everything from LoadRunner to Shufflepuck.

Now that day has finally come. The Advanced Mac Substitute is an API-level reimplementation of the classic Mac OS. You can now run classic Mac apps on Linux and Android without using an Apple ROM or Apple system software.

The Advanced Mac Substitute (AMS) is a project from [Josh Juran] to run old (pre-OS 7) Mac software without an Apple ROM. For the last twenty years, Macintosh emulators have required Apple ROMs and/or installation media because the API calls will redirect to the ROM. Unlike other emulation projects, the AMS does not attempt to emulate the hardware, except for the 68k processor. It simply launches directly into an application with the frontend being a generic bitmap terminal. This means there is no OS to speak of, but that also means we finally get flatpak for the classic Mac OS.

AMS is still in the very early phases of development; keyboards don’t work on some systems, and it doesn’t work on the latest versions of MacOS at all. Additionally, there’s no support for System 7 applications. That said, this is an excellent advance in the state of Macintosh emulation. If you’d like an example of how cool this could be, go play some Oregon Trail and tell me how awesome playing Shufflepuck or Glider on a webpage would be.

32 thoughts on “Macintosh API Comes To Linux, Android

      1. You can get it just by going to the main site and searching “we’re not hackers”. I love that site, Burrell Smith sounds like he’d be an interesting guy to know. Lots of stories about early Apple. I don’t so much care about Apple but it’s early computer stories. And there were quite a few hacks in there to get stuff working.

    1. You beat me to it. We used Executor to run Adobe Photoshop and other Mac applications under Linux. Back then we heavily petitioned Adobe to port Photoshop to Linux and failed. When they finally expressed a willingness to do so, there was little interest s The Gimp was already established.

      1. Just depends on what you count as a merit.

        Many of the “better” operating systems forget that the OS is just a platform for the user to run whatever software they choose. They’re interesting academic exercise in architecture; they’re like the IT equivalents of 1970’s “functionalism” which ended with houses that ultimately didn’t work, they were brutal and decidedly non-functional and people just found their aesthetics depressing.

        1. If you think about it, Windows as a platform started from DOS which was just a command line to access the file system, to manage files and launch programs. Subsequent versions of Windows dropped the command line, but didn’t drop the fundamental point: the user is mainly interested in managing files and launching programs. Whatever the OS is doing, it must not impede that basic intention.

          Meanwhile, other OS like Linux took off as an academic exercise to implement an Operating System in a rational and logical manner: binaries go here, configuration files go there, the scripting language is such and so, the file system is structured like this… but then the user comes along and goes “Where’s my files? What’s all this junk? Package management what?”.

          In earlier versions of Linux, simply accessing a floppy drive was a pain in the neck. You had to MOUNT a diskette, and then unmount it afterwards. If there was a program on that floppy, don’t even think about actually running it until the right files were put in the right places and the Operating System was correctly appeased.

          It’s completely ass-backwards to use; exactly a building made for architects, not for people to live in.

          1. ” an academic exercise to implement an Operating System in a rational and logical manner”

            Nope, Linux is a failthful implementation of POSIX, which is most certainly not a rational and logical design for an operating system. Anyone who was looking for a “rational and logical design” would not have chosen POSIX as a foundation for an operating system.

          2. >”Which Windows version didn’t have a command line again?”

            I think it was 98 or XP that ditched the DOS underneath and made the command line just another user program. Certainly through the lifespan of Windows XP, the command line became completely superfluous for any task. Then it had a reincarnation as the search bar, which is again used mainly for launching programs.

    1. Darling should seek crowd funding: I’d love to be able to run macos apps on Linux and would happily pay at least one MacBook pro’s retail price to see it happen, lawsuits permitting…

  1. Soooo hoping that I can find a copy of Opcode’s Vision software, AND that it will run on this!!! (I used to be pretty good with that software, anybody in the know got some cheap alternatives with a good GUI?)

  2. It’s only weird if you’re not used to non-Windows machines or architectures where the OS is an insignificant percentage of your locally available storage. It’s also incorrect to state that everything is baked into the ROM; conformant MacOS programs used the 68k’s A-trap dispatcher to access library routines, rather than directly calling somewhere into ROM. See for more detail.

  3. For those of you figured out how to install this thing, it is not working for me. I am trying to install it on a Raspberry Pi and either the instructions for Linux are incomplete or wrong for the Pi, or I am not understanding them. I’ve spend over two days trying to get this worked out, and at this point am beyond frustrated.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.