At the first meeting:
This is a classic paper about a classic operating system developed at Bell Labs by two Turing Award winners. You have used Unix countless times, even if you don't know it. Unix and its descendants (including BSD, Linux, Android, macOS, iOS) run most of the servers on the internet, our CS department (and most others), and maybe your refrigerator. Designs and principles from UNIX have been deeply influential in many modern systems. The C programming language was created to (re)build UNIX.
What to read: The paper gives a detail-packed overview of several key parts of the Unix operating system design. I suggest focusing on sections 1-3 and 8, exploring some of 4-7 if you have time (especially if you have taken 240). Section 9 is a fun addendum of early 1970s computer usage data.
How to read a technical paper: Reading technical papers is a skill that takes time to learn. Do not worry if your first attempt leaves you confused. This reading group is a great way to practice and learn. Effective technical reading is usually a staged process that requires reading the paper multiple times in different ways. Here is a good approach (by Tia Newhall, Swarthmore College). For the purposes of this reading group, you may not have much time. Always priortize the big picture over the details. If you have to skimp on one of the passes, skimp on the detail-oriented pass. Do try to build a high-level understanding and think critically about the big ideas. (We will try to offer some questions to help with that.) Note: This overview paper takes a different shape from a technical research paper, but a similar reading strategy is still useful.
(This week's set of questions is a bit longer and more pointed than usual.) Consider...
We are group of students and faculty fascinated by computer systems. We read and discuss a classic or cutting edge paper about a systems topic weekly. Each week one or more students or faculty leads the discussion. The leaders try to provide some thought questions with the paper ahead of the meeting. Join us!
You enjoy questions like, "How is that implemented? How does an <insert computer thing> work?" You are excited by *what* one can build with computing, but you are just as fascinated by *how* one can build it and how the building blocks work. Regardless of where your CS career takes you, our reading and discussion will help develop skills for effective technical reading and communication.
Each week, we will explore the design, implementation, and impact of a classic or cutting edge computer system by reading a paper and discussing. The study of computer systems considers fascinating problems and solutions in building effective computing infrastructure, rather than specific applications implemented on this infrastructure. Our focus will be computer systems broadly defined, possibly including computer architecture (high-level hardware design), operating systems, networks, distributed/cluster/cloud systems, virtual machines, programming language implementation, databases, and more, with an eye for concerns like performance, efficiency, reliability, security, and effectiveness. The boundaries are necessarily ill-defined. New applications often motivate new systems, and vice versa. We will pick topics based on the group's interest -- we may pick a unified theme or a mish-mash of different systems topics.
The target audience is students (and faculty!) who have enjoyed or are enjoying at least one "systemsy" course (e.g., CS 240, CS 242, CS 301, CS 304, CS 342, or the exciting new CS 249 [fall] and CS 349s1 [spring]), but anyone with some CS background, enthusiasm, and curiosity about systems is welcome.
Our reading list will focus on classic and cutting edge papers, with other material for context. Ahead of time, we will recruit 1-2 people from the group to lead each discussion. To lower time commitment barriers for those of us who may be busy this semester (ha), reading the paper ahead of time is definitely recommended but *not* *required.* (Leaders should definitely read and plan ahead...) Taking a turn leading a discussion is encouraged, but not required to participate.
The format will be less formal than a class and we hope students will help guide what the group becomes. Food may appear on occasion, or often if we meet at meal time.
Email the Google Group or one of our sponsors. (And while you're at it, think about all the interesting computer systems that must be involved in that seemingly simple task!)