Classic Systems Papers

I strongly encourage people working on computing systems to read classic systems papers. These are papers that first introduced key ideas that have shaped our understanding of computing and often illuminate fundamentals more effectively than later papers. I have found that reading classic papers has saved me from re-inventing the wheel, falling into known pits, and has helped me reason from first principles.

Many of the ideas that drive today’s “innovations” trace their origins to the groundbreaking work done between the 1950s and 1980s. Back then resources were scarse so people had to think and work harder than we do today. Technologies come and go, but foundations, core principles endure. Understanding the fundamental concepts ensures long-term adaptability and relevance in a rapidly changing field and enables first principles reasoning.

My Reading List

I was asked by some students for a list of classic system papers. Unfortunately the lists of papers I made for previous classic systems reading groups aren’t in my possession. So… the following is a list of papers I made this afternoon by harvesting my “outbox”. These are the papers that I have most frequently recommended to people in email. Sometime later I will update this page with a more carefully curated list of papers which will also include some more recent papers such as MapReduce which I consider classic, even if it was published in the 21st century :). I am sure there are important topics not covered below, but this can be a starting point. Ordered by the frequency I sent them, not by importance.

Real World Systems

There are several projects which I often encourage people look at because they shifted my perspective and showed what was possible. Some of these links are to wikipedia and should be replaced with link to something that tells the story and significance of these systems.

Operating Systems

  • Multics: so many first can’t list them all.
  • KeyKOS a secure capability based system. Nice memorial for Norm Hardys
  • Plan 9: what UNIX should have become, but Linux success and Bell Labs business decisions kept it from flying.

Programming Environments (way more than just a programming languages)

Not real world systems, but some university research programs which are worth a long look from UC Berkeley NOWROC and RADlab

Other People’s Classic Systems Papers List

Reading Groups

I have been part numerous “reading groups” which focused on “systems”. The participates would identify both classic and current papers  they thought were important. Just making the list together was instructive and often led to a spirited discussion. Once we made a list of papers we would make a schedule that listed which papers were going to be covered and who was going to lead the discussion.  We would typically met once per week, often over lunch. Everyone in the group would read the designated paper.

For a more complete set of guidelines, see How to Lead a Technical Reading Group by Cathy Wu of MIT. I am sure there are other good materials out there about reading groups.

Related

Are there papers that changed your perspective or have been foundational to you as a software engineer, systems designer, etc? Drop me a note because I would love to read it and potentially add it to my list.

“Instead of standing on each other’s shoulders, we stand on each other’s toes”. – Butler Lampson, quoted Hamming

1 Comment

  1. Hayek, F.A. “The Theory of
    Complex Phenomena.” In The
    Critical Approach to Science and
    Philosophy. Mario Bunge (ed.),
    The Free Press of Glencoe, 1964,
    pp. 332-349.

Leave a Reply

Your email address will not be published. Required fields are marked *