Advent of Computing - Episode 47.5 - Lars Brinkhoff Interview, Preserving ITS
Episode Date: January 18, 2021Lars Brinkhoff has been spearheading the effort to keep the incompatible Timesharing System alive. Today we sit down to talk about the overall ITS restoration project, software preservation, and how ...emulation can help save the past. You can find the full restoration project at github: https://github.com/PDP-10/its And follow Lars on twitter: @larsbrinkhoff
Transcript
Discussion (0)
Welcome back to Advent of Computing. Today I have an offer, something special. This is an interview
that I recently had the pleasure of conducting with Lars Brinkhoff. He's one of the main
contributors of the current surviving build of ITS, the Incompatible Time Sharing System.
In this interview we're going to be talking a little bit about ITS, a little bit about software
preservation, and in general a lot about why it matters that the software is preserved.
So without further ado, let's hop right into the interview.
Today I have joining me Lars Brinkhoff, who is going to talk to us a little bit about the restoration and preservation of ITS,
the incompatible time-sharing system. So Lars, why don't you start off by introducing yourself
to the listeners really quick? Okay, well, I'm just a regular programmer in my day job,
and for some reason I've become very interested in ITS, and I have been trying to restore it back to its former glory the past few years.
I think so far it seems like the project's been doing a great job at that.
So in brief, could you describe just what the end goal is of the ITS restoration work that you've been involved with?
the end goal is of the ITS restoration work that you've been involved with?
Okay, the end goal.
Well, that would be to have most of its software available and have emulators for most of its hardware
for people to be able to explore and see what it was like back then,
how to use computers in that era.
So how did this project get started?
I know earlier in some of our long email threads,
you were talking about how you're kind of a later addition to the overall effort.
So can you talk a little bit about how the restoration process kind of got started up?
Because I know ITS was still in use into like the 90s.
Is that right? In some sites?
Yeah, 1991 was the last time it was used at MIT.
So has the preservation kind of been an outgrowth of the same people
that were using it at the end of its lifespan?
Or is this a whole different crowd?
Well, the first one was Ken Harenstein.
a whole different crowd?
Well, the first one was Ken Harenstein.
He was an important ITS hacker back in the day.
So already in 1992, he had ITS running on his PDP-10 emulator.
So that's the first important step. But that emulator wasn't available to the public.
But that emulator wasn't available to the public.
So it wasn't until 2001 that Bob Sapnik released his PDP-10 emulator.
And people had that running.
And that's the SimH emulator?
Right, yes. SimH, yes.
And so people were using that for a while, but it only supported the latest, smallest KS10 processor, which isn't where all the action were back in the day.
So I got involved four or five years ago. It started as a small script to just do the manual installation
in an expect script.
So once I had that running,
I thought, well, why not have
the ITS rebuild itself
from source code?
So I rebuilt the ITS kernel
and then the assembler and so on
and kind of snowballed from there.
I think a lot of projects usually snowball up pretty quickly.
So Lars's code, and I guess it's a community project, so the overall project,
is all available on GitHub.
And I was actually running it a few days ago on my own system.
And it's really cool to see it build the entire system, you can just run make and once everything
is configured, it just builds ITS and emulation in front of you, which I think, even just watching it
fly by, even though I don't know what every command is doing. It's really cool to see that happening on, well, really close to modern hardware. How much work had to be done with modifying the
emulator? Because one of the things that makes ITS a little different is it didn't run on stock
PDP-10 hardware. It had custom stuff. I'm thinking about like the paging system. So did
you have to work with the
people who maintain the emulation
to modify that to work better
with ITS?
Well, yes and no.
Harry Steen and Sapnik, they both had
the special ITS pager
or the KS10
processor, so that was all
working when I got into the picture.
However, an important step was when I heard about Rich...
Sorry, what's his name again?
Cornwell.
He had started making a KA emulator,
which is really where ITS was running most of its time.
So I got in touch
with him and we
operated over several
months to add the ITS
hardware to his emulator
and we finally
had it running. So that's been
kind of the main action since then.
Very good.
Another thing that I know I'm curious about
and our listeners might also be curious about
is what kind of work you've had to do
to preserve the software.
Because, once again, going back to what we've been saying,
ITS was running into the 90s.
So conceivably, the software and source code
has just been around,
and there's the whole culture of sharing software with an ITS.
Was it just a matter of tracking down the people that have the right hard drives, or did you have to transfer from printouts or any weird medium that you normally wouldn't be putting into a computer these days?
Well, it's kind of all of the above.
Well, it's kind of all of the above. When I started out, there was the kind of semi-secret 1990 snapshot of the system before it was shut down.
And because that has lots of personal private files, it wasn't public.
But the in-crowd kind of shared it between themselves and I got a copy so I was able to
lift the source codes from there. And as things went on I got in touch with the former Maxima developer Erik Svensson and we kind of bugged MIT about this until they kind of relented and let us be a formal researcher.
So we have access to the full archive of P2P backup tapes now.
But it's still a painful process to get files out
because they have to be approved by MIT.
And then they send the files to the original authors.
And then we ask them for permission to include it on github
i didn't i guess i've never thought about i've i've worked with archives too and it's always
it can be a little bit of a process to get files and data and get it released i guess i never
thought about that being an issue for source code but but that makes sense. It is just archival data.
Yeah, sure.
Well, I kind of see the point.
There's a lot of private files in there. You can't just release them to anyone who asks for them.
So do you think that the overall state of preservation
for the code in ITS is pretty good then,
if it's just a matter of getting stuff released now?
Is there any big glaring hole that's still lost
that you can't track down?
Well, the one thing that I think is truly lost
and which is a large regret for me
is the original PDP-6 version of ITS.
Oh, yeah.
I would very much like to see that run,
but I don't think it will happen.
So do you think that since the PDP-6 was still in operation
for a while once the AI lab upgraded to the 10, right?
So do you think it was just a matter of they overwrote those disks
and were like, we don't need this code anymore, this is obsolete?
I think the files were stored on the old Dictape formats.
Oh, okay.
And they kind of got lost or discarded over time.
And all the new code for the PDP-10 was stored on the new fancy disks, and I didn't care
to save the old PDP-6 stuff, I guess.
That makes sense.
It's the kind of ephemera that's, in the moment, not necessary.
Right.
That is a shame, though, that it's lost,
because that would be interesting.
So I know the PDP-6 source for ITS was written in machine code.
Is that correct?
Yeah, all versions are.
Okay.
All right, so it is all the same code.
Another question I had was with the build chain for building ITS, that all runs in emulation, right? So in general, you're using all the same tools to compile ITS that would have been in use in the era.
Yeah, sure.
Absolutely.
And that's kind of the goal to have it build as it would have been built back in the day.
So here's the kicker then.
How did you get interested in working with ITS this intimately?
Did you have experience prior to five years ago when you started working with this project?
Well, I did play around a little bit with it back in 2001
when it became possible to run the emulator for yourself.
So I just played around with it a little bit
and I wrote a disassembler for the ITS-BP10 code.
And, well, I didn't do that much.
So it wasn't just until
four years ago I started doing it for Rails. And so what made you make the step up into getting
more involved with the project? Was that just you got to a certain point where you have some free
time and can invest in it or was there some kind of new interest that sparked that?
Well, I think it's been at the back of my mind for a long time.
I read Guy Steele's book, The Hacker's Dictionary,
the hard copy version of the jargon file.
I have a copyright over here that is very doggy myself.
Right.
So I read that when I was a kid, I think I kind of made an impression, a strong impression on the young me.
So when I started working more seriously back in 2016, I think it kind of popped up and I just did more and more and step by step and it's a grow into the projects
we have today. All right very good. Was it hard to get adapted to the machine code or
I guess primarily a lot are a lot of the utilities written in Lisp and ITS or is it mainly? Some
mostly machine code. So did you have experience in either of those languages before this project?
Or has this been a pretty steep learning curve?
Well, I have experience in machine code and assembly language from before.
Since I grew up in the 80s, I had a home computer and Atari ST with a 68,000 processor.
And the name of the game was assembly programming already back then.
So it wasn't that large of a step to do PDP-10 programming.
That's fine.
So I've used a little bit of PDP-11
assembly.
I know that's
kind of a
different thing.
Is PDP
assembly anywhere
close to
working with
a 6800,
or is it
its own
beast entirely?
Well, it is
a bit
different in
many details,
but overall
I kind of
think most
processors from this era, they're similar
enough. It doesn't bother me. And I kind of think it's not that different from my day
job actually. I do a lot of low-level programming in my day jobs and I'm kind of used to jumping into projects and quickly learn their tools.
Actually, I think ITS, it's kind of like basically like today, but simpler because all the hardware and the software were a lot simpler back then.
That's a good point. I also work in IT in case no one can tell.
And I know I wish that I could do more low-level work in my job.
I write a lot of JavaScript, which I'm not the biggest fan, but that's a different story.
Pays the bill, right?
Huh?
It pays the bill, right?
I guess.
I have a lot of gripes with JavaScript, but I won't get into that.
Let's see, just checking my notes really quick.
So you're talking about how it was kind of an easy transition
to get into working on this ITS project.
Were there any big roadblocks you ran into that you didn't expect? You mentioned
getting files released and approved from the MIT archive, but were there any...
Sorry.
That's fine. Were there any technical issues you ran into that really slowed work?
Well, not that much actually. Quite the opposite really, because people were saying, oh, this old KA10 code, it probably won't run.
And the earlier efforts that used the KS processor, everyone advised, go with the KS, that's the latest code.
The old KA probably doesn't work.
But me and Rich Cornwell, we tried it and, well, actually, it did work.
It worked very well. That's really cool i i guess that's a
testament to just the code quality right if it was just in state and the emulation tools also
you can really tell that these programmers they were really careful and care about
backward compatibility and they they did a good job.
So what's been the most rewarding part of working with ITS?
Besides just seeing it up and running, have there been any programs or anything you've been able to restore on the system that you got running and you're just like, yes, this
is a really big step?
Yeah, there has been a few highlights. I just ran a couple of really
important programs back in the day and like Maxima, Maclease, MacHack. There's a lot of Mac as you can
tell from Project Mac of course. So maybe one of the versions of MacHack 6, the chess program.
That's kind of been a legend
among chess programmers.
And people have been searching for the source code
and well, we finally found it
and we did make it run in the
original environment.
That's pretty cool.
Other question, this might be a little left field.
About Emacs on ITS and with
emulation and everything.
I know I run a lot of weird emulation stuff in my free time for the show and just for
understanding older projects.
And one of the issues I always run into is keyboard layout.
Um, I actually, I play a lot of games on the Play-Doh system,
which they have emulated out in the cloud,
and that had a very customized keyboard,
and I always fat-finger everything.
And I know Emacs has kind of weird key bindings
that, from what I understand, made more sense
on the keyboards that were in use at the time.
Is that correct?
I don't think it's that big a difference from the keyboards of today.
So I don't think it matters that much.
As everyone should know, it uses a lot of control and meta codes,
and control A is still control A today, so not that big a difference.
All right.
Then another thing that comes to mind is ITS was used in the AI lab.
And in my reading, I kept coming across people talking about using video cameras and robot arms with it.
Have you been able to get any of that running through emulation?
Or is that a step beyond what's going on right now?
Oh, that's still on the to-do list.
We don't have the video feeds.
Sorry, no robot arm either.
But do you think that'll be something that's feasible one day
as the state of emulation?
Yeah, why not?
That would be cool to see.
It's kind of scraping the barrel now.
Yeah, maybe someday.
Just have to get the bindings right, right?
Right.
So the other thing I'm really curious about,
and this is something that I've ran into
with other research I've done on the show, is we
can preserve software, we can preserve hardware to a point, but what about preserving the culture
around ITS? Because there's understandably going to be a smaller user base nowadays, since it's not
in consistent operation. Is there anything you've been doing or the larger ITS preservation project
has been doing to keep the culture alive?
No, not really, I'm afraid.
Well, maybe in a small way.
We're trying to find some common server
that everyone can use to log in
and kind of operate as a community, because that's
something that's easy to miss now that it's so easy to install, I guess, on your own computer.
So you think that having a large shared machine for public access is going to be coming soon
in the future?
Is that like robot arms?
Is that down the line a ways?
Yeah, we are working on it.
So it could be just some months away, maybe.
Very cool.
Well, I'm definitely excited for that to see more people using the system.
Then how can people help contribute to this project?
Is there anything that lay people who may not know as much about ITS as you could do
to help the project?
Well, my main
interest in this
is mainly to just
make it available to people.
So please use it. That's the best
way, I think.
Of course, we have an open bug list of
400 bugs or so, so if you
want to, you can jump in and
pick some bugs. That's not too many.
No, no, no.
Well, very cool.
And then if people want to learn more
about ITS or what you're working
on, is there anywhere
online that they can do that?
I try to post
new and interesting events on my
Twitter, so maybe there.
Alright, and what's the handle for that?
Well, it's just
my name, Lars Brinkhoff.
I'll add that in the notes also.
Well, very cool. Thanks for
coming on and talking with us, Lars.
Yeah, thank you for having me.
Thanks for listening to this Yeah, thank you like the show, there are now a few ways you can support it. If you know someone
else who's interested in the history of computing, then take a minute to share the show with them.
You can also rate and review on Apple Podcasts and really anywhere you can listen to podcasts
nowadays. And if you want to be a super fan, then you can support the show directly through
Admin of Computing merch or signing up as a patron on Patreon.
Patrons get early access to episodes, polls for the direction of the show, and assorted bonus content.
You can find links to everything on my website, adventofcomputing.com.
If you have any comments or suggestions for a future episode, then go ahead and shoot me a tweet.
I'm at Advent of Comp on Twitter.
And as always, have a great rest of your day.