When I was a freshman at Princeton University in the 1974-75 school year the computer center hosted, for the state of New Jersey educational system, an IBM System/370 Model 158 running the marvelously interactive APL\360 system.
It shared a room with Princeton’s System/360 Model 91 which was an amazing beast but only ran batch jobs. The APL system was the main time sharing computer on campus at the time, but only a privileged few of us students had access to it.
Over in the Electrical Engineering and Computer Science department (E-Quad room B-217) there was a Digital PDP-11/45 computer which had just been converted from a Digital operating system to running UNIX Version 6. It had a rabid and growing fan base, including myself.
For whatever reason, late in the 74/75 year it was announced that Princeton and the state of New Jersey were ending the “hosting” relationship. The Computer Center folks began to look for a replacement, and enhancement, because they understood it was past time to invest more heavily in time-sharing. The rabid UNIX fans, of course, pushed hard for the idea of getting a large PDP-11/70, running UNIX, to be the base of the new service.
However, Princeton was a high-profile customer of IBM (we had a 360/91 after all) and when IBM got wind of the idea of a non-IBM computer they gave Princeton an offer they couldn’t refuse – a very cheap replacement 370/158. Princeton decided to run VM/370 – IBM’s Virtual Machine operating system, which was, along with the included CMS monitor, a fairly decent time-sharing system (for the day).
The UNIX fans were, of course, bummed out about the decision. Somehow in discussing this turn of events, I (the foolish freshman) made the observation that since the IBM could run virtual machines with various operating systems, and UNIX was written in a C – a high level language (for the day), then we could get what we wanted just by porting UNIX to the mainframe. The more experienced upperclassmen were quick to explain that it couldn’t really be that easy. The idea faded away.
However, in the summer of ’75 Eric Schmidt (yes, that Eric Schmidt) landed an internship working with the UNIX guys at Bell Labs (Center 127 – Computing Science Research) where he worked closely with Mike Lesk writing lex, a lexical analyzer generator. At the same time though, he learned that there was a C compiler for the IBM 360 family that had been developed at Bell Labs. I don’t know who wrote it, or its derivation, but as seen in the letter Mike Lesk had something to do with it.
So in August of ’75 I was back home in El Paso when I got a call out of the blue from Eric – Was I serious about wanting to port UNIX to the 370? I said sure, and Eric organized a project with myself, Joseph Skudlarek, and Peter Eichenberger to work on the project as an independent study project – under the supervision of Prof. Bruce Arden, chair of the EECS department and a wonderful person.
Eric, in a display of his future managerial potential, did not participate in the actual technical work, but deserves a lot of credit for working the system to make things possible. In part 2, I’ll talk about how the project went and the hurdles we faced.
2 thoughts on “The Roots of UNIX for the IBM Mainframe (part 1)”
Pugs, cool story, and I love the last paragraph! I had no idea that you and Eric went so far back!
This is great to hear this background! yes, i agree with you, it may be too late now 🙂 – it should’ve been possible to port Unix to VM/370 – a great software architecture (Virtual Machine) of that time, and probably it still is from where so many of current derivatives like VMWare, etc, came. nice reading and thanks!