This course will cover the basics of setting up and administering a production-quality Linux server environment. By the end of this course, we expect you to:
The course will be taught in two sections: a “Beginner” section for students with minimal background in GNU/Linux or system administration, and an “Advanced” section for students with more experience.
While we expect many students will have a CS background, the only real prerequisite is a desire to learn about new and unfamiliar technologies, which is a critical skill for sysadmins. The Beginner 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.
Week | Date | Lecture Title | Lecturer | Lab | Lab Due Date |
---|---|---|---|---|---|
0 | Tue. 09/08 | Infosession (slides) | - | Lab 0 | Sat. 09/12 |
0 | Thu. 09/10 | Infosession (slides) | - | Lab 0 | Sat. 09/12 |
1 | Tue. 09/15 | History of UNIX, intro to shell, FOSS (slides) | Ben Cuan <bencuan> | Lab b1 | Tue. 09/22 |
2 | Tue. 09/22 | Core Shell (slides) | Nikhil Jha <njha> | Lab b2 | Tue. 09/29 |
3 | Tue. 09/29 | Shell Scripting (slides) | Richard Huang <rihu> | Lab b3 | Tue. 10/06 |
4 | Tue. 10/06 | Compiling, Distros, and Packaging (slides) | Ethan Smith <ethanhs> | Lab b4 | Tue. 10/13 |
5 | Tue. 10/13 | Networking 101 (slides) | Tony Lian <longlian> | Lab b5 | Tue. 10/20 |
6 | Tue. 10/20 | Processes (slides) | Ryan Chan <rrchan> | Lab b6 | Tue. 10/27 |
7 | Tue. 10/27 | Services (slides) | Kevin Mo <kmo> | Lab b7 | Thu. 11/05 |
8 | Tue. 11/03 | Security Fundamentals (slides) | Stefan Kuklinsky <skuklinsky> | Lab b8 | Tue. 11/10 |
9 | Tue. 11/10 | Version Control and Backups (slides) | Edric Xiang <exiang> | Lab b9 | Tue. 11/17 |
10 | Tue. 11/17 | Cloud, Containers, and Config Management (slides) | Richard Huang <rihu> | Lab b10 | Tue. 12/15 |
11 | Thu. 11/26 | No Lecture - Thanksgiving Week | - | - | |
12 | Thu. 12/03 | TBD | TBA | - |
Week | Date | Lecture Title | Lecturer | Lab | Lab Due Date |
---|---|---|---|---|---|
0 | Tue. 09/08 | Infosession (slides) | - | Lab 0 | Sat. 09/12 |
0 | Thu. 09/10 | Infosession (slides) | - | Lab 0 | Sat. 09/12 |
1 | Thu. 09/17 | Advanced Introduction to UNIX (slides) | Bernard Zhao <bernardzhao> | Lab a1 | Thu. 09/24 |
2 | Thu. 09/24 | Packages (slides) | Daniel Kessler <dkessler> | Lab a2 | Thu. 10/01 |
3 | Thu. 10/01 | DIY Linux Pre-Install (slides) | Edric Xiang <exiang> | Lab a3 | Thu. 10/08 |
4 | Thu. 10/08 | Linux Post-Install (slides) | Ben Cuan <bencuan> | Lab a4 | Thu. 10/15 |
5 | Thu. 10/15 | Processes and Services (slides) | Christopher Cooper <cooperc> | Lab a5 | Thu. 10/22 |
6 | Thu. 10/22 | Networking 102 (slides) | Abizer Lokhandwala <abizer> | Lab a6 | Thu. 10/29 |
7 | Thu. 10/29 | Networked Services (slides) | Loren McIntyre <mcint> | Lab a7 | Thu. 11/05 |
8 | Thu. 11/05 | Config Management (slides) | Ja (Thanakul) Wattanawong <jaw> | Lab a8 | Thu. 11/12 |
9 | Thu. 11/12 | Advanced Security (slides) | Mathew Cha <mdcha> | Lab a9 | Thu. 11/19 |
10 | Thu. 11/19 | Virtualization, Containers, Distributed Architecture (slides) | Benjamin Zhang <bzh> | Lab a10 | Tue. 12/15 |
11 | Tue. 11/24 | No Lecture - Thanksgiving Week | - | - | |
12 | Thu. 12/03 | TBD | TBA | - |
This is a 2 unit DeCal. Since it is a DeCal, the course is P/NP. You must attend an infosession and complete Lab 0 to apply. If you are selected for the course, we will send you a course enrollment code by September 14.
Lectures are scheduled for Tuesdays for the Beginner section and Thursdays for the Advanced section, from 8 to 9pm. Due to the online nature of this semester, we will hold lectures over Zoom or a comparable streaming platform (to be announced). Additionally, lecture recordings will be made available on this website.
While we normally mandate attendance, this will no longer be a requirement for Fall 2020 given the remote nature of the course. Nonetheless, students will be expected to view all lectures, as knowledge of their content will be assumed in lab assignments.
Lecture will double as office hours for students to come in and ask questions about lab work or covered material. The one-hour lecture slot will include some lecturing but will also include time to to work on the lab assignment with the help of present facilitators.
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.
Each lecture corresponds with a lab, labeled by a “b” or “a” (for Beginner or Advanced) and the week number. Except for b1 and a1, labs will general be released about a week ahead of the corresponding lecture. You are highly encouraged to look over the lab, and try to start it, before coming to lecture each week. This will allow you to better utilize the help of the facilitators, and will help you understand the lecture in a concrete way.
Each lab will be due before the following lecture. For example, lab a1 will be due by 8pm on Thursday, 9/24 which is when Lecture a2 will be held. Please stay on top of lab work! If extenuating circumstances prevent you from completing your lab on time, please let us know as soon as possible and we will try to be accommodating.
You must complete all labs to receive credit for taking the course. However, we will allow two unexcused late labs to be turned in before the semester ends.
It is very likely that the DeCal will be back next semester! Fill out the interest form to get updates!
When we are open for enrollment, Lab 0 will be published on this site. We will send enrollment codes to those who complete Lab 0 by the deadline. Do note that we often have more applicants than space in the course, so getting an enrollment code is unfortunately not guaranteed.
Beginner Track is intended for those who have little to no prior experience of using Linux-based systems. We will be providing an overview to several important concepts in systems administration, such as networking, shell scripting, version control, and security. It’s perfectly OK if you’ve never worked with or heard of these concepts before- but if you’re familiar with them, we recommend you opt for the advanced track. Overall, we welcome everyone to this track!
Advanced Track is intended for those who have used Linux-based systems before and are at least somewhat familiar with some of the concepts mentioned in the beginner track description above. While there are no hard/enforced prerequisites, we do recommend that you have experience with one or more of the following:
apt
or pacman
If you are still unsure about which track to choose, you can email us at decal@ocf.berkeley.edu.
We are working hard to get all of our materials online this semester for everyone to access! Since we are no longer bound by physical constraints, feel free to attend any of our scheduled lectures or complete any of the labs on your own. (You will need your own Linux VM though- you can install one locally or get one from a provider such as DigitalOcean.)
The best way to get support with course content is to either join our Slack channel at #decal-general, our Discord channel at #decal-general, or ask us during scheduled lecture times.
Email us at decal@ocf.berkeley.edu.
Junior CS major. Looking forward to teaching this semester!
sentient table learning to tame computers
They tryna be cray
your friendly neighborhood panda
reincarnation of wittl here to bring balance to the universe
This person has existed and hopefully is existing in the world.
I'm the one who wears the 12-year old penguin costume
master of copying commands from the internet
the sleeper must awaken
i use arch btw
A very average person
Doer of things
i dont do much but im here anyways
None of these things are comprehensible to you
The inner machinations of my mind are an enigma
Resident OCF weirdo.
Apparently penguins do have knees.
hi