This course will cover the basics of setting up and administering a production-quality Linux-based server environment in the manner of the EECS instructional machines (hivexx.cs.berkeley.edu) and those of the Open Computing Facility (tsunami.ocf.berkeley.edu). By the end of this course, we expect you to:
The course will be taught in two sections: one for students with minimal prior background in GNU/Linux or system administration, and one for students with more background/experience in the same. The sections are titled Basic and Advanced, respectively.
An important skill for system administrators is the willingness to learn quickly about new and unfamiliar technologies, so while we expect many students will have a CS background, the only real prerequisite is a desire to learn. The Basic section has been designed to introduce new users to Linux, and the Advanced section has been designed to give more experienced users a taste of what Linux is capable of.
Another important skill to learn is patience and perseverence. Don’t be discouraged if things don’t work with the first time: the internet is held together with the programmatic equivalent of duct tape, and the job of a sysadmin is best described as applying new duct tape when the old stuff wears out, which happens a lot.
Lectures are scheduled for Tuesdays for the Basic section and Thursdays for the Advanced section, from from 8 to 9pm the OCF Lab, located at 171 MLK (MLK basement down the hall from the student store). Attendance is mandatory, with two allowed unexcused absences. Some other conflicts, such as exams, may be excused if you provide prior notice. Please only come to the lab on the day corresponding to the section you are in.
The primary assignment in this course will be weekly lab work. Labs are designed to be be significantly hands-on. You will be working on real systems, configuring, and fixing things, setting up services, and so on.
Lecture will double as office hours for students to come in and ask questions about the lab work. This is a 2 unit DeCal.
Week | Date | Lecture Title | Lecturer | Lab | Lab Due Date |
---|---|---|---|---|---|
0 | Tue. 09/04 | Info Session | Lab 0 | ||
1 | Tue. 09/11 | History of UNIX, intro to shell, FOSS | Mathew Cha <mdcha> | Lab b1 | Tue. 09/25 |
2 | Tue. 09/18 | Core Shell | Xufei Tan <tanx> | Lab b2 | Tue. 10/02 |
3 | Tue. 09/25 | Shell Scripting | Alex Welty <awelty> | Lab b3 | Tue. 10/09 |
4 | Tue. 10/02 | Compiling, Distros, and Packaging | Ethan Smith <ethanhs> | Lab b4 | Wed. 10/24 |
5 | Tue. 10/09 | Networking 101 | Night, Christopher Cooper <cooperc> | Lab b5 | Wed. 10/24 |
6 | Tue. 10/16 | Processes | Kevin Kuehler <keur> | Lab b6 | Tue. 10/30 |
7 | Tue. 10/23 | Services | Jason Perrin <jvperrin>, Yelp | - | |
8 | Tue. 10/30 | Security Fundamentals | Tony Liu <trliu> | Lab b8 | Tue. 11/13 |
9 | Tue. 11/06 | Version Control and Backups | Ben Zhang <bzh> | Lab b9 | Fri. 11/30 |
10 | Tue. 11/13 | Cloud, Containers, and Config Management | Nikit Nainwal <nikitnainwal> | - |
Week | Date | Lecture Title | Lecturer | Lab | Lab Due Date |
---|---|---|---|---|---|
0 | Tue. 09/04 | Infosession | |||
1 | Thu. 09/13 | Advanced Introduction to UNIX | Abizer Lokhandwala <abizer> | Lab a1 | Mon. 10/01 |
2 | Thu. 09/20 | Packages | George Lee <gleeb> | Lab a2 | Mon. 10/08 |
3 | Thu. 09/27 | DIY Linux Pre-Install | Daniel Kessler <dkessler> | - | |
4 | Thu. 10/04 | Linux Post-Install | Daniel Kessler <dkessler> | Lab a4 | Thu. 10/18 |
5 | Thu. 10/11 | Networking 102 | Abizer Lokhandwala <abizer> | Lab a5 | None |
6 | Thu. 10/18 | Processes and Services | Chris Kuehl <ckuehl>, Yelp | - | |
7 | Thu. 10/25 | Developing at Scale | Douglas Wong <ldw>, Facebook | - | |
8 | Thu. 11/01 | Networked Services | Kevin Peng <kpengboy>, Google | Lab a8 | Thu. 12/06 |
9 | Thu. 11/08 | Advanced Security | Abizer Lokhandwala <abizer> | Lab a9 | Thu. 11/29 |
10 | Thu. 11/15 | (cancelled) Config Management, High Performance Computing | Liam Porr <wporr>, Ben Zhang <bzh> | - | |
11 | Thu. 11/22 | Thanksgiving Break | - | None | |
12 | Thu. 11/29 | Virtualization, Containers, Distributed Architecture | Abizer Lokhandwala <abizer> | Lab a11 | None |
13 | Thu. 12/06 | Guest Lecturer - Careers in Tech | Ethan Jackson | - | None |
I am a senior CS major. Please include your favorite color, mother's maiden name, and social security number when signing up for this DeCal.
I'm a senior studying computer science and economics. I've been using Linux for years because I love customizing and fine-tuning my computer. I'm excited to teach the DeCal this year!
I'm a senior interested in all things math and computer related. Super excited to teach the DeCal this year!
I'm a junior studying CS. I enjoy reading fantasy and science fiction, and anything tech related. As a former student of the DeCal, I'm happy to teach it this year!
Junior in CS. I like philosophy.
I'm a senior studying the computer sciences. I enjoy working into the early hours on my Linux machine. See you around the DeCal!
I'm a junior studying Math and Computer Science. I joined the OCF, they liked me, and now I can use linux about as well as some 12 year old Russian script kiddies.
I'm a senior studying Computer Science. I'm excited to facilitate the DeCal this semester.
Sophomore studying Astrophysics/CS. Ask me about high-performance computing!