Thursday, January 02, 2025

Spelunking CACM, Vol. 22 (1979): Cheriton and Denning

 Maybe it's just me, but after the huge set of world-changing things in 1978's CACM, it seems like not so much in 1979. Also, in minor grumbles, I didn't find a picture I liked in either of the papers I decided to cover.

One that inevitably caught my eye because of the first author is David Cheriton's Thoth. It's a complete, though fairly simple, OS, designed and built with the goal of being portable across machine architectures. It includes (and depends on) a compiler for a custom language. The language is apparently named "Eh", but they refer to it as "the base language" throughout the paper. It's a descendant of B & BCPL, which should put it closer to C than not, but the syntax is actually rather different. It assumes that integer pointers are themselves consecutive integers; the language doesn't support the notion of a byte pointer, because at least one of the machines they wanted to target didn't support byte pointers.

The file system is a tree that supports UNIX-like mount points, cleverly called "grafts", but otherwise the file naming seems like something from a parallel universe, when viewed from 2025. Among other things, the root of the FS is called "*", so "*/src" refers to what in UNIX terms would be "/src".

There is a function for creating a "process", but its first argument is a pointer to a function. Their "processes" are actually closer to modern threads, and share an address space. The OS includes support for multiple address spaces; the set of "processes" in one address space is a "team". Support for multiple teams can be compiled in or out, assuming the hardware has an MMU and virtual memory.

There is no support for multiprocessors, though they claim and I believe that it wouldn't be too hard in the OS itself. A process runs until it blocks, so multitasking is cooperative.

They achieved the goal of portability of software and the OS; Thoth ran on both the Data General Nova 2 (released in 1973, already not a new machine by the time of this paper) and the TI 990/10, both 16-bit machines, and so Thoth was designed around those limitations despite the goal of portability. I think it's arguable whether the system would meet the goal of portability to a later architecture; I would say it was focused on that pair of specific systems rather than truly working toward a system with open-ended future portability.

Overall, maybe not so much to write home about, though Cheriton's later work on V is claimed to be a "successor" to Thoth, and is of huge importance in the history of distributed systems.

Of note for similar reasons is Dorothy Denning's proposal for a hardware gadget that does RSA encryption and allows a PC to encrypt data it sends to a centralized file server (CF), as well as to securely exchange files with another PC via the CF. Some of the functions appear to be transparent to the PC, others don't. Ultimately using RSA as the only encryption mechanism is computationally intensive, although at the time, according to Denning, Rivest himself claimed there would soon be high-performance hardware implementations.

There were a few other things here in there in 1979, but nothing that really compels me to talk about. As always, of course, my primary strength is the systems work; I can't comment as fluidly or recognize the importance as clearly when dealing with algorithms and theory.

(On a personal note, I think 1979 was the year I got my TRS-80 Model 1, using a Zilog Z80 16-bit CPU. A simple and interesting machine.)


Happy New Year!

 

Sunset over fishing boats, Zaimokuza, Kamakura, Dec. 29, 2024


First, goodbye to 2024. What an amazing year globally in quantum! More to say about that in a future posting (or editorial for TQE). It was also a great year for AQUA. Highlights were going seven-for-seven for QCE2024 papers (well, 5 directly from AQUA and 2 led by collaborators) and Q-Fly. I also managed to visit the (European) Alps twice and southern Thailand once, for conferences.

I also did a thing or two for my soul; the most important was a nine-day road trip with my wife through western Honshu. Longest two-person vacation since our first kid was born more than a quarter-century ago.

However, I don't think I saw any live music, opera, theater or performing arts last year, except for an hour of Irish music in a pub in Dublin. That needs to be corrected in 2025!

I think I read thirty books this year, which is my goal each year, a very achievable number. (How many books you read doesn't really matter; there's no way to read any detectable fraction of the good books published in a year. Just read and enjoy.) In 2023, Kettle Bottom and Demon Copperhead (both coincidentally set in Appalachia) hit me hard.  But I don't think any of this year's readings will leave a mark on my soul.

Im movies, "Past Lives", "Perfect Days" and "Dune Part 2" are very different films, and each will stay with me for a long time. The first two were officially released in 2023, but I think I saw them both in 2024. "Past Lives" is about the ache for the paths not taken, while still acknowledging that the path taken is who we are. I sobbed all the way through it. "Perfect Days" likewise is about the choices we make and the life we make for ourselves. "Dune" is, well, Dune.

And of course we can't ignore the cataclysmic event of November 5. It's incumbent on us all to do what we can to help keep the world together.

On to 2025. Hoping I can find (well, make myself find) better work/life balance, while achieving the things I want. Let's roll!