Hacker News new | past | comments | ask | show | jobs | submit login
Ssheven: A modern SSH client for Mac OS 7-9 (github.com/cy384)
339 points by Aloha 49 days ago | hide | past | favorite | 132 comments

oh hey everyone, author here, ssheven is still beta quality, so I wasn't really posting about it anywhere yet, but it's usable and has the core functionality working ok

I plan to do a writeup about it, and the experience of developing for old macs, once I finish the 1.0 release

edit: btw, this is my first project for the classic Mac OS, I hope to inspire others to also jump in, retro68 is a very usable toolchain (big thanks to Wolfgang Thaller/autc04)

So far it's working well on my LC III (68030 with 36mb ram)!

I'm writing this comment from the LC III using w3m over ssh :)

36mb ram? that is a like a power house!

LC III is a real sleeper. It's much better than the previous in the series. The case is great to work with, it's small, runs cool (if you replace the hard drive it should be no problem to remove the fan), and is faster than any compact. And it takes the 36MB RAM.

It's maxed out, 4MB onboard + a single 32MB SIMM.

I think my own LC III has either 12MB or 20MB.

Sorry for posting it before you were ready! I just thought it was really cool, and I thought getting you some more eyeshare might be useful in helping you find more folks wanting to work on it.

it's no problem, the killer feature (that it works at all, and can connect to modern servers with default configs) is solid, and more people using it will help flush out bugs

This is so cool. I've been wanting to pick up an older mac for the sole purpose of doing some programming on classic MacOS myself. I actually have a Macintosh SE, but it's a bit too underpowered for my tastes. Anyway, I was hoping you might be willing to share what your development environment looks like. Language, editor, etc. Thanks!

Edit: I think I started to reply before your edit. Retro68 sounds amazing!

if you want to go period-appropriate, you can run Macintosh Programmer's Workshop or CodeWarrior natively

I use retro68 on linux, which is a modern GCC toolchain, so it's just like developing any other C/C++ (well, without some nice debugging tools, and with the added complexity of the mac OS resource stuff)


I would love to read your writeup if you get around to it.

Cool project! I installed it onto my SE/30 with 16 megs of RAM. The machine is mostly a museum piece but its neat to be able to connect to modern systems from it.

I’d love to hear more about retro68, your experience finding documentation for the various APIs. Stackoverlow didn’t exist when these APIs were in use.

Apple used to produce good paper documentation, my stack of Inside Macintosh is on the floor behind me.

Oh wow, thank you for this. :) I was just restoring an iMac G3, the Flower Power edition, and ran into more trouble than I expected trying to transfer data via a USB flash drive. Filesystems that Mac OS 9 should support were either not mounting properly or causing errors during file transfer when formatted on a modern Apple or Linux system (exFAT was the only one I could get to work for some reason). I’ve been casually looking around for some sort of NAS solution that would be compatible with older versions of Mac OS, but with native scp I can just download files from a Linux box (perhaps a dedicated Raspberry Pi) and skip right to the fun part: exploring all of the weird, cool and charming software and games from this era. So cool!

For classic macs with ethernet ports, the simplest method I have found is to host a basic FTP server on another computer (e.g. you can set one up easily enough on a Raspberry Pi) and use an Ftp client such as Fetch on the mac side. I use this method to get files to and from my LC III, which also functions as a bridge baby to the really old macs via the Appletalk serial port.

This is what I do, and it works pretty well if a little cumbersome at times. I have a little museum I've built in my office during the pandemic that consists of:

- SE/30

- Docked Duo 280c

- 7100/80

- PowerComputing PT Pro 250

- NeXT TurboStation

My primary Linux workstation is where I browse for old software and download it, then I get at stuff from the vintage Macs via FTP using either Interarchy or Fetch.

Rather than run a bunch of Ethernet cables all over the place I put little Ethernet to Wifi bridge adapters on them. Works great.

Neat! I just have an LC III, SE and Powerbook 1400 running at the moment. Always wanted to find a NeXT...

> Rather than run a bunch of Ethernet cables all over the place I put little Ethernet to Wifi bridge adapters on them. Works great.

That's genius, thanks for the tip.

I had a next slab in the 00s but I had to get rid of it because of space. Recently, I had a Pentium 3 random machine and I finally managed to install OpenStep 4.2 on it. The trick is to find the absolute latest patch to have the VESA driver so you can have color.

If you are curious about NeXT, I highly recommend finding a random intel pc from the 90s and installing the intel NeXTStep versions or OpenStep.

NeXTSTEP is also really great on PA-RISC, if you want an oddball combination.

Lol there's also the Canon ObjectStation if you want to get really obscure

Where'd you get the PowerComputing? Clones like that are going to be the most rare.

Just unrelenting hunting on Craigslist, eBay, and Facebook Marketplace. I think I got the PTPro on Craigslist.

I actually have a PowerCenter 150 slim-profile Desktop (and a spare Sonnet G3 400/1M CPU upgrade for it) that's currently in storage. I haven't decided if I should try to find a good home for it yet. The PowerTower Pro replaced it in my office collection because I wanted a box I could cram full of esoteric tech:

- Formac Proformance 3 (3DLabs Permedia3)

- 12MB 3Dfx Voodoo2

- OrangePC 660 w/ K6-III

- Digidesign Audiomedia III

- ATTO Dual UltraSCSI

- Sonnet Encore G4 800/1M CPU (which is both cool and also finicky as all get out)

It's got one PCI slot left which I want to plop another Voodoo2 into for a vintage SLI setup.

All that said, both my SE/30 and my 7100 are packed to the gills with even weirder toys. :-)

What do you even do with the OrangePC? I guess all of this is quite obsolete, but to run old windows on it?

Well, mostly I just like the novelty. I have a Radius Rocket 33 (68040) and an OrangePC 290 (Cyrix 5x86) in my 7100/80. It's kinda fun to play with a classic Mac a PPC Mac and a classic PC all in one box. I finally got them to run DOOM II bots against each other.

The OrangePC 660 has an NVIDIA RIVA 128 on it, so I use it to play with old CAD/CAM software sometimes and it's kind of fun (similar to the 7100) to fire up some cross-platform games (e.g. Myth TFL/II, Quake 1/2, etc. and get the Mac side playing against the PC side).

At the end of the day it's all just technological novelty and esoteria, of course.

Or, if you want to do it in the other direction (sometimes this is more convenient), NCSA Telnet for the Mac has a built-in FTP server. I use this to upload files to the Power Mac 7300 directly from this Raptor Talos II.

> some sort of NAS solution that would be compatible with older versions of Mac OS

http://netatalk.sourceforge.net/ :)

You have to run the 2.x series to interoperate with older "classic" Macs. Nearly everything these days packages the 3.x series and thus only works with more recent OS X clients.

That is true for AFP over AppleTalk, yes. Netatalk3 only supports AFP over TCP, but that's fine as far back as System 7 using AppleShare Workstation with MacTCP. System 7.6 and later can use AppleShare Client 3.8.8 with OpenTransport: https://web.archive.org/web/20110418060150/https://support.a...

It's not the protocols that are entirely the problem. It's the authentication mechanisms that also create limitations. I had zero luck getting my 6.0.8 thru 8.6 installs to connect to Netatalk hosts on either my FreeNAS box or my Ubuntu 20.10 workstation until I manually built and installed the old 2.x tree.

FWIW I've had no trouble connecting to the built-in install of netatalk 3.1.8 on my Synology NAS from MacOS 8.1. I can't remember if I had to tweak the config or not.

It's been a few years so I don't remember if I ran into any difficulties or what options I may have changed from default, but I've definitely used it with my Quadra v(._. )v https://i.imgur.com/yjGGN9k.jpg

It's entirely possible I just couldn't get the right mix and config together with 3.x

It just went from fiddly and non-working to braindead easy once I downgraded to 2.x


Netatalk 2.2 will work on a NetBSD server.

unfortunately, file transfer isn't in yet, but it's the next feature I'm working on, probably within a week or two

netatalk is a open source AFP/AppleTalk implementation that I’ve used for years (supports file shares, Time Machine, etc.)

This is fantastic! I love the CLARIS-inspired "box" art too https://i.imgur.com/P9G7jOx.jpg

Came here for this exact comment. The artwork is spot on.

That, by itself alone, would have been amazing.

I don't miss the lack of memory protection of classic Mac OS, but I do miss everything else.

Didn't last Mac OS 9 versions have memory protection? I mean there's a reason it's hard to run 9.2 on an emulator — it requires a working MMU.

Mac OS 9 has virtual memory (it uses virtual address translation and it can swap pages to disk), but it still has a single address space that is shared between every application.

Ah. I remember reading "it has virtual memory" and assumed that this includes each process running in its own address space.

Was it common for applications to reach directly into kernel memory instead of using proper APIs?

It has preemptive multitasking for compute-only tasks (the MultiProcessing library. See http://mirror.informatimago.com/next/developer.apple.com/tec...)

I also think the OS, technically, was preemptive multitasking, but ran all ‘normal’ code in a single preemptive task (https://groups.google.com/g/comp.sys.mac.programmer.help/c/f...)

I also vaguely remember the kernel had some memory protection enabled.

Of course, almost none of that mattered for typical user-space programs.

This is an issue for SheepShaver (limited to 9.0.4 because 9.1 and up require the MMU as you say), but not QEMU, which emulates the MMU and thus runs 9.2 just fine.

No, after 8.6 the system featured a micro kernel on which the old OS ran atop. I think you could opt in for better stability, but I'm not sure. But most of the OS and apps still ran on the same shared memory space with cooperative multitasking, meaning a single app could (and did) bring the whole system down.

I think you can emulate 9.2 just fine, but it's been a while since I played with this things.

I genuinely think it fits right in. Apple always had a good aesthetic, even when everything was beige and rectangular. I did a giant chunk of my school work on Claris Works, before I discovered latex. Happy memories.

That aesthetic was widespread throughout the PC universe in the 90s as well. I remember having a giant clip-art library that came on a whole bunch of CDs, and actually came with a catalog book to leaf through. A lot of it looked like that. Another example is Microsoft's clipart library, (in)famous for its images of the "screen bean" guy.

If only I could still get laptops with the keys printed in Univers 57 Condensed Oblique :) https://catalog.monotype.com/font/linotype/univers/57-conden...

well you can on ebay ;)

thanks, I had fun making it!

there's full design for a box and a floppy label that I've made for the upcoming 1.0 release

Are you going to do an actual release on floppy? You should. I will buy it.

yes, I think I'm going to make a dozen or so copies, just to make it feel real

I still flick between After Dark (or at least, an After Dark clone) and the old windows 95 maze screensaver on my work machine. I get a lot of positive comments from people in the office that spot it and talk about how they miss those old screensavers.

What's the After Dark clone? Inquiring minds want to know!

I think it was this site I got it from, though it was a long time ago:


Seems to work fine on Windows 10, just not across multiple screens

the machine it's probably tested on: http://www.cy384.com/projects/centris-650.html

Whenever I see these I’m baffed we could ever run a full GUI on these things, when the machines of today often have issues running one.

With the exception of (high-resolution) video, I still do much the same things I did on my computer 20 years ago. Most of it involves fetching and sending text over the internet. It's a little prettier now, the protocols are more advanced, and (crucially) it's a lot easier to develop and distribute applications[0], but in the abstract sense there's absolutely nothing new and nothing older machines couldn't handle given the right set of protocols - i.e. less JSON, less downloading raw application source code and expecting to run them in less than 100ms.

[0] The web is good, actually. It sucks, but it's also pretty good.

Funny, to me this machine as described is a monster. My brain still registers a 68040 as a powerful processor. My Atari ST ran a full GUI in 8mhz and 512K of RAM (+192KB of ROM) on a 68000. The original Mac had 128MB onboard RAM. GEOS on a C64 runs a convincing GUI in under 64K... on a 6502!

My first PC was a 50mhz 486 with 8MB RAM, and I ran X11 + various things (netscape, xemacs, etc.) on it without a whole lot of issues.

the GUI code for the earliest macs was absolutely a great feat of engineering

by getting my hands dirty with the system, I'm impressed by the way things were designed for the wimpiest processors (and also getting a lot of insight into the flaws of the OS that were exposed as machines became more powerful)

They really managed to find ways to make it work despite the hardware of the day. There was a lot of hand coded assembly until the mid 90s.

I, and I’m sure a lot of others here, would love to read about that.

I’m aware of folklore.org, thanks. I’ve read it through and through.

The faster the hardware gets, the more software becomes inefficient. Unfortunately, hardware hasn't become much faster outside of niche cases (massively parallel vector computations etc.) for the past decade or so.

Efficiency isn't limited to execution speed. Memory protection is efficiency, even if it has cost in execution speed. Better abstractions make it possible to write more complex programs, at the cost of some execution speed.

I've programmed on very slow hardware in the past, and the only thing I miss from those days is my hairline.

You can do wonders if you know what you're doing and avoid the web stack.

And it’s sitting on top of a VAX. Perfect pairing

This is a real work of art. I have no words.

>input latency feels high because redrawing the screen is slow (along with all the encryption, which is also slow)

Is modern encryption a challenge to those old machines? Is it because of specialized encryption hardware or sheer brute force?

Or is it just this implementation that's slow?

I used telnet back in the 68k days.

> Is modern encryption a challenge to those old machines?

Ooooooh yeah. It's got some serious overhead on single core systems several-hundred-megahertz systems without the instructions that are used to accelerate encryption these days. AES is what modern CPUs use to help with that. It wasn't until Power7+ before encryption was accelerated on that class of CPUs. The latest Mac to use Power CPUs was discontinued 6 years before that.

not sure that's right...

for interactive use, compared to rendering to the display and pushing the packet out the crypto overhead is going to be minuscule

Once you have authenticated each other and agree to a nice symmetric cipher and exchange the keys for that, yes. Bytes, even kilobytes per second. But note the "once you have authenticated". Public key crypto is brutal number crunching and takes minutes to hours on systems of the 80s, and some noticeable seconds even in the late 90s. I think that's why something like RSA-4096 was not just universally adopted 30 years ago. It was too expensive to compute for casual use.

even the crappiest laptop CPU can do 10000 x 4096-bit RSA signature verifications per second

my 2014 laptop (on battery, no hardware acceleration):

                      sign    verify    sign/s verify/s
    rsa 4096 bits 0.006200s 0.000096s    161.3  10468.9
(not to mention everyone's using ec these days, which is quite a bit faster)

It just occurred to me while reading this comment that people born after Intel CPUs mostly leveled out perfwise are probably peers now. That realization came hard, it came fast, and I wasn’t ready to live with that knowledge by a long shot.

It was a long, long road to your 2014 laptop, friend. There was a time when division was a luxury, and desperate folk offered their firstborn for forbidden tricks to compute inverse square root. Elliptic curve, you say? You mean floating point math? Whoo-ee!

Cmon now, intel chips didn't level off till around 2010.

Since you mention EC, it uses floating point. Good ol' FLOPS is not a wholly useless metric there. The first commercial processor sold with a floating point unit integrated was the 486 in 1989. Some rough, unsourced numbers:

    1984 - Cray X-MP (expensive!)         800 MFLOPS  
    1989 - Intel 486 @ 33 MHz             3 
    1993 - Pentium @ 60 MHz               10
    1997 - Pentium II @ 233 MHz           200
    2000 - Pentium III @ 1000 MHz         2000
    2004 - Pentium 4 @ 2800 MHz           5650 
    2007 - Core Quad @ 2400 MHz           38400 
    2009 - Core i7-950 @ 3100 MHz         92820
    2013 - Apple A7 (smartphone)          115000
    2020 - Apple M1                       2844000
A FP calculation that takes 1 second on an Apple M1 will take 11 hours on the original Pentium, approximately. Hope that gives some perspective.

even if it's 15000 times slower than my 2014 laptop (which it isn't): the ECDH operation still takes under a second

and that's the expensive operation (done once per connection)

I am making the same mistake that the other poster did, in assuming too much background familiarity. Those are 90s chips. This software runs on machines from the late 1980s. The trend scales further back as it does forward. Five years is always a long time in computer performance.

The 486, the slowest chip on my list blasts the early Macs (which this software runs on) out of the water by 100x. I went and researched it and the the 68882 FPU at 25 MHz is about 0.25 MFLOPS: http://www.faqs.org/faqs/motorola/68k-chips-faq/

Stunning, but that is the difference between 1985 and 1989 technology.

The first Macs were 8 MHz 68000 chips. The GUI was still very responsive. The menus popped down and Quickdraw (the graphics library) properly handled arbitrarily shaped overlapping windows. There was a demo with a round window and windows in the background updated perfectly. Bill Atkinson invented the Regions data structure (and the rest of Quickdraw) that allowed among other things, background windows graphics calls to be clipped to arbitrary combinations of foreground windows super efficiently. Atkinson is one of the greats.



> I am making the same mistake that the other poster did, in assuming too much background familiarity. Those are 90s chips. This software runs on machines from the late 1980s. The trend scales further back as it does forward.

my point was on interactive use (i.e. using AES or ChaCha)

you are the one that diverted the topic towards RSA-4096 (which no-one uses), moving the goalposts (twice)

(and yes, I saw the deleted post)

Yep. AES will run fine on any of these machines. These machines are in practice still sort of usable with SSH, with some patience for login depending on protocol.

I deleted the post because I was a bit too aggressive, but apparently the damage was done. I apologize for lecturing you like a prat.

The 68k Macs are < 60MHz and the early PowerPCs were not a lot faster. Your 2014 laptop will run circles around them doing just about anything.

We’re talking about an unoptimized 1990’s 44mhz CPU here aren’t we?

How is it at all comparable to a relatively state of the art 2014 laptop?

This is a 68040. I had a cut down version (68LC040 — low cost) in my Mac LC475 in the mid ‘90s. You have no idea how slow it is haha.

Power7+ came out in 2012 which was the first gen of Power CPUs to include AES acceleration. [1]

The most powerful Power Macs with non Intel CPUs were discontinued in 2006. (G5, released 2003.) [2]

Your laptop from 2014 was already running at LEAST a 64bit CPU and likely has AES instructions as they were introduced in 2010 [3]

So even if your laptop from 2014 onward didn't include AES instructions like some Intel Atom/Celeron/Pentium models... (Acer C720P Chromebook, for example came out in 2014 and has a Intel Celeron 2955U [4] and [5]) It was still an architecture that is/was ELEVEN YEARS NEWER. A Celeron 2955U is roughly equivalent in performance to a Core 2 Duo E4700 or an AMD Athlon 64 x2 5200+ ... which is still quite ahead of a PowerMac G5. [6] and [7]

TLDR: Time marches on and along with cpu improvements come instructions and other benefits not immediately visible to the end user.

Try using your old 2003-era system to generate keys again and tell us how fun it is. Bonus if you try it on a Pre-2000 era Performa Mac as a user typically had with SystemOS 7, 8 and 9. Those ran at 16 to 66mhz. [8]

For reference, SystemOS 7 came out in 1991. [9] OS8 came out in 1997. [10] And OS9 came out in 1999. [11]

The CPUs inside the Performa Macs running System 7, OS8 and OS9, at best, can be compared to the 486s on the Intel side. Not even Pentium level. This places the architecture at LEAST a dozen architecture generations behind what you're generating keys on. This means if the CPUs we're looking at here were aged up, your laptop is starting first or second grade while the actual CPUs of the time are now finishing their masters' degrees with a kid or two on the way.

Rather than naively using your extremely modern in comparison 'crappy laptop' cpu as a reference point, perhaps you should use something more typical from the time these OSes were considered relevant.

TLDR to the TLDR: Get off my lawn.

[1] https://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common...

[2] https://en.wikipedia.org/wiki/Power_Mac_G5

[3] https://software.intel.com/content/www/us/en/develop/article...

[4] https://www.amazon.com/Acer-C720P-2666-Chromebook-11-6-Inch-...

[5] https://ark.intel.com/content/www/us/en/ark/products/75608/i...

[6] https://www.cpubenchmark.net/compare/Intel-Celeron-2955U-vs-...

[7] https://www.phoronix.com/scan.php?page=news_item&px=PowerMac...

[8] https://en.wikipedia.org/wiki/Macintosh_Performa

[9] https://en.wikipedia.org/wiki/System_7

[10] https://en.wikipedia.org/wiki/Mac_OS_8

[11] https://en.wikipedia.org/wiki/Mac_OS_9

> Your laptop from 2014 was already running at LEAST a 64bit CPU and likely has AES instructions as they were introduced in 2010 [3]

I'm totally sure the RSA operations are using the AES instructions

> Try using your old 2003-era system to generate keys again and tell us how fun it is.

generating (fresh) rsa keys? you don't do that on connection to a SSH server

as for what actually happens on connect, 2004 laptop: 33 signatures/second and 2200 verifications/second (+DH/ECDH)

the RSA operation (verifying the server's host key) took a total of 0.0005s

even my raspberry pi 1 can do 240 4096-bit verifications/s and several thousand ECDH's/second

and I have yet to see a SSH server with 4096-bit host keys

tldr: even old computers are fast (and data > supposition)

Your damn 2004 laptop could emulate the Amiga and the Mac with a 68k CPU in parallel.

The Rpi? For FFS, an Rpi B+, a PSP, or a 2003 Athlon XP could emulate a System7 era Mac with a Quadra setup without a single slowdown.

TLDR: You're not using era appropriate examples.

I told you to get off my lawn.

I did exactly what you told me to

I suggest reading up on how the SSH protocol works

There are people in this thread with actual experience and actual bench times using these protocols on machines of that period



You must be young. The gap between 1989 and 1999 in computer terms is inmense, far more than the gap between 2010 and 2020. You could emulate a 1989 m68k Mac/Amiga on a Pentium 3 from 1999, for example with BasiliskII/UAE.

Performance increase did not stop; smaller, better designs. The exponential is just a bit lower.

We don't realize it, just as someone using a text terminal may have not realised it between 1985 and 1995, if every response after a key press was already instant.

For typical GUI interfaces, tasks like tossing video data around, and so on, computers became approximately inifinitely fast sometime c. 2005 - 2010.

Eh, no. Windows' 10 UI latency it's abhorrent.

If any, current gens with Electron crap are doing it far worse. Far, far worse.

It's the encryption. For Crypto Ancienne, it may take 20 or more seconds for a cacheless 25MHz '030 to do a local TLS 1.2 transaction, and that's with skipping a whole bunch of steps. Pretty much anything under 40MHz will have timeouts because most servers won't wait.


There was MacSSH, supporting SSH2 and up to MAC-SHA1/AES-256, but it required System 7.5 and 32MB rather than this project's System 7.1/2MB: https://web.archive.org/web/20071016100910/http://pros.orang...

Cool, thanks!

For reference, using modern ssh to connect to a 15 MHz m68030 Mac LC II with 16 bit memory bus takes literally just under ten minutes (NetBSD 9 to NetBSD 9). An LC III+ with 33 MHz, 32 bit bus m68030 takes a little over 3 minutes.

I've seen an xterm displaying sixels (mikutter) under nbsd for m68k, it was so slow that it looked an sstv render from the ISS.

the crypto code actually has some 68020 assembly (credit to the mbedtls devs), it could probably be made faster, but I would need to sharpen my assembly skills a lot

doing the initial key exchange before timeout is barely possible for a 68030 at 16MHz, takes the better part of a minute!

of course, on the later PPC machines it's a complete non-issue

A g4 with Altivec can play 720p video...

> Is modern encryption a challenge to those old machines?

I've used modern encryption/mac routines on small embedded micro's and they seem reasonably efficient. Couple of operations per byte. They have to be fast because they are used for decrypting stuff like streaming video. I think an exception is password hashing algorithms which are slow by design.

That said some of the older algorithms are really inefficient. Hundreds of ops per byte.

Depends in part on the cipher suite. For software implementations, the current generation of chacha20-poly1305 and ed25519 are tolerable. But earlier generation ciphers were designed with hardware acceleration in mind.

This tool is relying on libssh2 for its SSH implementation core. chacha20-poly1305 and ed25519 are both extensions and are not included.

Yes, modern SSH is a challenge even on the fastest 486-class machines, which are very roughly comparable to this 68030. Takes several seconds to complete a connection.

Why is redrawing the screen slow? Old Macs had pretty good DMA for 2D sprites IIRC.

As for encryption, can you use a preshared key instead of public key?

more specifically, I should say that re-rendering everything is kinda slow, the DrawText function which, uh, draws text, seems very heavy

blitting from a buffer onto the screen is, indeed, pretty fast, I've been experimenting with it and have some ideas for speeding things up

For real. I’ve tried porting several modern UI libraries to classic Mac, such as Nuklear, uGUI, and a couple of others. And I’ve succeeded in getting them working, but as soon as you start doing something with text, they fall on their face. Just having a text input is nearly impossible on an 8MHz 68000!

Proper text rendering is hard.

This is really wonderful. I can transform my old 68k machine to a dumb terminal and do real work!

This is amazing. I am going to try running this on a Raspberry Pi emulating System 7, and relive the hours I spent logging in to remote machines back in the dial-up days.

You’re holding it wrong..this is for connecting a classic Mac to a Raspberry Pi.

I think you misread, maybe

Nope. You want to run a Classic MacOS emulator on rPi to test SSH for MacOS, but that makes no sense.

It does when you don't have a Classic Mac anymore and love the platform. A Pi 3 does an excellent rendition.

Just to test out an SSH client? (Tip: rPi has plenty of SSH clients)

And what’s with the downvotes? You’re talking about exploring Classic MacOS on an rPi not the subject of the OP.

This is perfect! Just replaced the battery in my SE/30 and will have to try this as soon as I find an ethernet solution. There are PDS ethernet cards but they're rare and expensive, or SCSI-ethernet adaptors but they're slow.

i believe that before OSX, the OS itself had no terminal/shell/command prompt, and I suspect Macs were very rarely used for development back then; it was only with Unix-based OSX that it became hugely popular.

Apple's dev tools did come with one: https://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Works...

"The MPW Shell command language was based on the Unix csh language, but was extended to support the main features of the Macintosh GUI. It had simple commands to create menus, dialogs (prompts), and new shell windows. The cursor could be controlled, and MPW scripts or tools could easily be attached to a menu item. Command key shortcuts could be specified. Window size and location could be controlled. These features were popular in commercial production environments, where complicated build and packaging processes were all controlled by elaborate scripts."

The mpw shell is much closer to a smalltalk Workspace, but yes, it was technically the command line for classic mac.

Who WAS Apple's customer base during the classic MacOS era?

I remember Apple II's dominating when I was in school back in the 1980's. Then in the 1990's when I was in college, all I remember seeing anywhere were PC's. DOS and then Windows for the masses, and this new thing called Slackware Linux for many of us in the CS department.

In the 2000's I started hearing about Macs, but only for creative domains like Photoshop or video editing. Then the Intel CPU switch happened, and today I'm on a MacBook just like pretty much every other programmer I know.

What was Apple's "niche", and who was their "base", back in the 1990's?

They were big in education-- student computers in elementary and middle school for me (basically, about 1992-2000) were basically 100% Macs. It wasn't until high school that Windows boxes started showing up in classrooms and computer labs.

They've also always had a decent base in the creative space-- Photoshop 1.0 being a Mac app had a big impact. Scully's mismanagement of the company meant a lot of people dumped the company in the mid-1990s, though; Jobs' return, the OSX transition, and the Intel switch were all necessary to bring the Mac division back up to where it is today.

As one of those customers back then: lots of QuarkXPress and Photoshop. Upgrading from a 7100 to a Sawtooth G4 was a dream come true. It was still running 9.2 when I left that office.

Desktop publishing, especially after the release of the LaserWriter: https://en.wikipedia.org/wiki/LaserWriter

It used to be really hard to get printer output to look the same on the page as what you saw on the screen, and the small details matter when people are laying out a complicated magazine (or whatever) page and need text to flow around images and other design elements. There was a whole Adobe-vs-everyone battle over things like outline (as opposed to bitmap) font technology since they controlled the standard for PostScript fonts as used by printers like LaserWriter: https://en.wikipedia.org/wiki/PostScript_fonts#Type_1

Then Apple created TrueType, and it is the biggest feature of System 7 that I never see anyone talk about: https://en.wikipedia.org/wiki/TrueType

Then still lots of back and forth over things like Adobe's multi-master fonts vs TrueType GX which despite being part of the "failed" QuickDraw GX actually lives on in OpenType today:





e: "magazine page" is what always comes to mind because it makes me think of the Diehard GameFAN story:


"he calls the layout artist (which was probably Jacob Riskin or George Weising at the time), 'my trusty [Macintosh] Quadra operator'. What an assface."

For publishing, color management was also a huge thing - at the time Apple's ColorSync [1993] was vital to getting your display, local proof printer, and the printing press all color calibrated together. Adobe developed a Windows version but it was never as well-integrated/supported.

Journalists, photographs, printed press guys. Magazine people for example.

Classic MacOS had Macintosh Common Lisp. Even today, it’s the most pleasant, elegant and friendly programming environment I’ve ever used.

Classic MacOS had also ExperLisp, Procycon Common Lisp, MacScheme plus two embedded Lisp Machines as NuBUS boards: TI MicroExplorer and the Symbolics MacIvory.

There was some kind of command prompt you could bring up with some really obscure combination of keypresses. I remember encountering it on System 7 and MacOS 8. I never did figure out what could be done with it

You're thinking of the debugger - the default Microbug that was built-in was pretty much only useful for printing or writing memory (or typing G FINDER into it, causing the front app to crash and bringing you back to the Finder if the app was hung).

Macsbug[0] which was an optional install was much more feature-rich, but it was still just a debugger and not actually a command line environment.


Is that Microbug debugger the one that pops up in a upper-centered box with only a prompt character? What I remember definitely wasn't MacsBug.

Yeah that's the one!

That's correct. There was A/UX which was a unix that ran the mac finder and MachTen which was a posix implementation for classic mac os you could launch like an app, but it wasn't until os x that it shipped with Terminal.app

Love quirky projects like this

Pity it uses Retro68 instead of MPW and PowerPlant.

Other than that, great work.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact