• Donate
  • Log In
Home
  • About
    • About
      • About Us
      • Our Board of Directors
      • Board Meeting Minutes
      • Board Elections
      • Updates & Announcements
      • Our Staff
      • Governance & Financials
      • Lifetime Achievement Award
  • Events
    • Events
      • Upcoming
      • Past
      • Conference FAQ
      • Conference Policies
      • Code of Conduct
      • Calls for Papers
      • Author Resources
      • Grant Opportunities
      • Best Papers
      • Test of Time Awards
  • Join & Support
    • Join & Support
      • Become a Member
      • Ways to Give
      • Our Supporters
      • Student Opportunities
      • Sponsorship Opportunities
  • Archive
    • Archive
      • Proceedings
      • Multimedia
      • ;login: Archive
      • Short Topics in System Administration Series
      • Journal of Education in System Administration (JESA)
      • Journal of Election Technology and Systems (JETS)
      • Computing Systems Journal
  • Search
Join the conversation
Back to ;login: Online

Interview with Warren Toomey, Founder of the Unix Heritage Society

Warren received the 2022 USENIX Lifetime Achievement Award
January 13, 2023
Interview
Authors: 
Warren Toomey, Rik Farrow
Article shepherded by: 
Rik Farrow

I had learned about The Unix Heritage Society (tuhs.org) while reading Brian Kernighan's book of recollections of working in Bell Labs [1]. TUHS is a site you could visit to find early Unix artifacts, including source code for multiple Unix versions. I had never met Warren, but thought I'd find him interesting to interview.

As I spent time researching, then later exchanging emails with Warren, he has certainly turned out to be an enthusiastic person. He started out as a distributed systems programmer, switched to teaching at various Australian universities, developed an Electronic Program Guide for DVRs, built his own eight bit CPU out of the simplest of chips (7400 TTL), wrote a C compiler [6], in addition to his work collecting Unix artifacts.   

Rik Farrow: In reading about why you started TUHS [2], you seemed to be very concerned with having permissions to have access to source files. As those were the very artifacts you were interested in preserving, that does make sense. But for most of us who were running Unix, whether on a Pyramid (DEC Vax competitor) system or a Sun Workstation, the source was rather redundant for us. We just wanted the programming tools and Unix environment. Can you talk more about why you needed source licenses?

Warren Toomey: For the really early Unix systems (up to 7th Edition, 2BSD and later versions, early 4BSDs etc.) you had to have the source code to be able to build the system to target your hardware. And a lot of the TUHS people at the beginning had hardware (PDP-11s, Microvaxen) and wanted to get Unix for their boxes. They needed licenses to tailor the code for their hardware.

RF: In your blog about starting TUHS, you mention starting a petition to get the older Unix versions released under some form of hobbyist license [2] in 1997. The Santa Cruz Operation, then the copyright owner for the Unix source code, responded the next year with hobbyists license for US$100. Two years later, they changed the terms making the license free for non-commercial use, and included Unix Editions 1 to 7, and 32V. You also mentioned that when you first encountered Unix in 1982, you were intrigued, and even felt like you had missed something significant. In one manner, you had, as the USENIX Association had been meeting for years, exchanging tips, information, and source code patches between folks who worked at universities or companies with Unix source code licenses.

WT: I remember the 1982 Summer School that I went to at the University of Wollongong which is where I had my first Unix experience. It was fun. We (the chosen high school students) were able to write(1) to each other, and do cool stuff. Then when I left school and went to university in 1984, I had TOPS-20 on a PDP-10. I remember writing code in a text editor, saving a file ending in .TXT, and not being able to compile it with the Pascal compiler because it didn't have the .PAS suffix. Things like that were so frustrating. And then, from a teaching assistant, I heard about a Unix system that they had just retired, and I remembered how much fun the Unix system at Wollongong was two years earlier.

Perhaps it's a mindset thing. I remember learning about pipes and filters in 1985 when we did get a Unix system, the Pyramid 90x. Wow!  It's like having a bunch of Lego blocks which you can connect together to make a bigger thing. Composability. So much easier than trying to write a few hundred (or thousand) lines of C or Pascal code to do the same thing.

After my undergraduate studies (1984-1986), I had to take a year off from university as they were not offering Honours until 1988. The university had never run Honours, the fourth year of a degree program, but we the undergraduates forced them to do it. I was stuck at home for 12 months with Douglas Comer's Xinu book and a C compiler for the Apple II. Well, that was the year that I grokked pointers :-) Wow, that was mind expanding! There are times in your life when the light bulb goes on and it's fantastic.

So, given that I didn't have a Unix system at home, I translated the Xinu book into 6502 assembly code, built an interrupt generator with a 555 timer chip [3], and rewrote Xinu for the Apple II. By the end of the year I had a basic shell and I could multitask on the Apple II with a Unix-like command line.

I went back to do Honours at university in 1988. The IT school had bought a copy of Minix 1.1 (a Unix-like system that ran on the IBM PC). I really had no money, but my first 10MHz IBM XT clone was purchased specifically to run Minix, not DOS 3.3 :-) Why would I run some crappy system when I could have an environment with a shell, pipes and multitasking!

I graduated in 1988 and went down to ADFA (the Australian Defence Force Academy in Canberra) to take up a programming position in a research group. I remember one of my colleagues wanted to do some transformation on a file of data he had. He'd been trying to solve his problem for days. I looked at the input file, and typed in a few filter commands with pipes and produced the output he wanted. So miraculous!

Unix gave me freedom from constraints like file suffixes and only one tool to deal with them, and gave me a set of tools to join together.  And, of course, there were several scripting languages (/bin/sh, awk, Perl) as well as the "proper" languages like Pascal and C. So, it's fair to say that Unix resonated with me.

RF: You mentioned that the first programming project that you worked on was a distributed operating system that sounds a lot like Sprite [5]. Later, you began teaching programming, networking, and operating systems. Did your work on distributed operating systems affect your later teaching?

WT: I think the research work that I did on the distributed OS, and the Ph.D that I did immediately afterwards, encouraged me to look for the core concepts of a topic and to find the linkages between them. This certainly influenced the way I teach topics. For example, you can teach about the topics of a process' working set, a process' address space and how it is mapped to physical memory, and the use of disks as backing store. But all three, together with kernel strategies such as LRU pages, copy-on-write, pre-paging etc. have to be understood together to explain why the server you are currently administrating is currently thrashing its head off!

On the topic of teaching, especially at tertiary level, one thing has always intruiged me. The only pre-requisite to teach at a univerity (in Australia at least) is that you have been locked away in a closet for at least three years and completed your Ph.D. You don't need any communications skills or understanding of pedagogy. It seems that universities operate on an inherent contradiction: they hire lecturers based on their research ability, but make most of their money from teaching students.

I was very fortunate as, it seems, I was born to be a teacher. I remember explaining the concepts of trigonometry to my classmates at lunch-time in high school. Along the way, I've received a bunch of teaching awards including a national teaching award [https://minnie.tuhs.org/Eportfolio/Awards/carrick_award.pdf ] in 2007. Now that I've retired, one thing that I really miss is standing in front of a whiteboard with a class, explaining stuff to them, and the banter and repartee that you get with a good class.

RF: You also built an eight bit CPU out of simple chips and some ROM. Did you use that as a teaching tool? I've sometimes wondered if having an emulator of an old-style computer, complete with front panel switches and address and data displays as a teaching tool, might help students.

WT: I got into digital logic design at a point in my teaching career when I was no longer able to teach systems-level courses; my career had migrated over to networking and cybersecurity. But, before that, I'd taught computer architecture courses [https://minnie.tuhs.org/CompArch/content.html ] and I'd used logic simulators such as Logisim to demonstrate how a CPU works. At one point, I was lucky enough to run a third-year course using the wonderful book "The Elements of Computing Systems" by Nisan and Schoken; this takes you from how logic gates work all the way up to a working CPU and then introduces you to the workings of assemblers, compilers, libraries and operating systems. It's all hands-on: you get to build an ALU, a CPU, write an assembler and a compiler etc. It's great fun!
Appendix
References: 

[1] Kernighan, B. Unix: A History and a Memoir; KDP, 2020, 183 p. ISBN 978-169597855-3

[2] Blog entry about starting TUHS by Warren Toomey: https://minnie.tuhs.org/Blog/2015_12_14_why_start_tuhs.html

[3] 555 Timer Tutorial: https://www.electronics-tutorials.ws/waveforms/555_timer.html

[4] The Sprite Network Operating System: https://www2.eecs.berkeley.edu/Pubs/TechRpts/1987/6229.html

[5] USENIX Flame Awards: https://www.usenix.org/about/awards/flame

[6] Warren's journey writing a C compiler: code and comments. https://github.com/DoctorWkt/acwj

Article Categories: 
Operating Systems
Last updated February 8, 2023
Authors: 
Warren Toomey recently retired from a three decade career of teaching programming, networking, security and systems topics to college and university students. His love of the Unix mindset and its history prompted him to found the Unix Heritage Society (TUHS) in 1995, which now has several hundred members. Under the auspices of TUHS and it members, Warren has helped to preserve and/or restore to working order many of the earliest Unix systems. Warren's recent USENIX Flame award, and his 1997 national teaching award, summarize his life's work: to bring people together, and to communicate ideas and concepts in a way that encourages deep understanding and stimulates the ability for individuals to synthesize new ideas for themselves.
[email protected]
Rik Farrow has been a consultant for 42 years. He has written two Unix books, as well as worked as the technical editor for a Unix magazine and for two editions of a popular operating system book. He also taught Unix system administration and Internet security during the 90s internationally, and worked as a volunteer for USENIX program and steering committees. Rik has been the editor of ;login: since 2005.
[email protected]
  • Log in to post comments
USENIX logo
  • Contact USENIX
  • Privacy Policy

© USENIX 2025
EIN 13-3055038

Website designed and built by Giant Rabbit LLC
Powered by Backdrop CMS

We need contributions from individuals like you.

USENIX conferences directly influence the development of computing systems and products used worldwide. Contribute today to support this vital work for the next 50 years.

Secure the Future of USENIX

Donate
Close