Semester: winter 2022/23
Lectures: Tuesday, 10:40 - 12:10, S9 (David Čepelík, Ondřej Hrubý)
Labs:
  Monday, 9:00 - 10:30, SW2 (David Čepelík, Ondřej Hrubý)
  Thursday, 9:00 - 10:30, SU2 (David Čepelík, Ondřej Hrubý)
Page in SIS: NSWI106
Grading: Graded credit

News

  • 2022-10-06: the deadline of the 0th homework was moved for the Thursday group to the deadline of the Monday group. Both groups now have a deadline on Monday 2022-10-10 at 9:00 Prague time. Rationale: synchronization of the two groups.
  • 2022-10-06: there will be an extra class for the Thursday group on Tuesday 2022-10-11 at 9:00 Prague time. Other are welcome to join. Meet us in front of SU2. Rationale: synchronization of the two groups.
  • 2022-11-06: exercises 03–05 in homework #5 have been finalized. Due to the delay (on my part), I have extended the deadline of the Thursday group to the Monday deadline (for all the tasks).

About this course

Linux is everywhere: it runs on supercomputers, embedded systems, IoT devices, mobile phones, laptops, spaceships, dashcams—you name it. It makes a great operating system to build your digital life around, and it is the platform of choice for computer science research. Companies from startups to multi-billion-dollar corporations rely on it for their day-to-day operations. This course explores what makes Linux tick, and how to manage Linux servers with confidence and security.

The course starts roughly where we left in Introduction to Linux. You will learn:

  • How to use hardware-assisted virtualization to run virtual machines at near-native speed with KVM+QEMU
  • How to install an Arch Linux-based server from scratch
  • How to keep daemons in check with systemd
  • How to use lightweight container-based virtualization (Docker, Podman, systemd-nspawn)
  • How to use advanced file systems such as Btrfs and build powerful snapshot-based backups
  • How to monitor a running system
  • How to set up networking - from the very basics to fairly advanced topics such as BGP routing
  • How to deploy IPv6
  • How to run various networked services (mail, DNS, web, VPNs) securely
  • How to debug and repair broken systems and automate boring tasks
  • … and much more!

We will try to establish a fairly advanced yet manageable baseline for everybody to follow, but we won’t shy away from more advanced topics through various optional assignments for extra points.

Course organization

  • Before-class reading will be provided for most lectures. You are expected to read and understand the material (or ask questions).
  • Lectures will expand on the material and/or discuss topics which didn’t make it to the before class reading.
  • Every week during the labs, we will present a set of tasks and help get you started working on them.
  • Homework is the most important part of the class. Usually, your homework will be to finish the week’s tasks and answer some questions.
  • Upon request, we can discuss anything you like related to Linux. If we don’t have the answers, we can figure it out together. Don’t be shy to ask.

Grading

(Update 2022-10-04: accept high-quality feedback only, added grade thresholds, stretch deadlines for practical homework assignments to 2 weeks)

  • You can earn a total of 1300 points for homework during the semester. There are 13 topics explored in 13 weeks, so roughly 100 per week on average. But some topics are more difficult than others, and the points attainable in any given week will reflect that. We will try to keep the variance to a minimum.
  • There are dependencies between the topics, so it’s not always possible to completely bail on a given assignment. Therefore, every week, you’ll have one week two weeks to finish the assignment. Always aim to get the tasks done until the next labs, the other week is just a safety net in case you get sick or deadlines are looming in other classes. The deadlines are strict.
  • Of the roughly 100 points you can earn every week, 10 points (so 10 % of the grade) will be awarded for providing feedback to your teachers along with the homework.
  • You can earn up to 130 points (10 % of the grade) for providing high-quality feedback. You can find details in the homework assignments.
  • On top of the 1300 regular points, there will be at least 300 extra points to be had for optional assignments. These count toward your total points. We will likely assign a combination of optional weekly homework assignments, and possibly larger optional task(s) at the end of semester. We only guarantee the possibility to earn at least 300 points on top of the regular assignments, but cannot make any promises as to their distribution during the semester (as it will largely depend on our ability to grade the regular assignments) or their difficulty. Please keep that in mind.
  • Your grade will be a function of your total score:
    • ≥ 75 %: credit + grade 1
    • ≥ 60 %: credit + grade 2
    • ≥ 45 %: credit + grade 3
    • < 45 %: no credit
  • The assignments will be presented during the labs and always on this website as well. It is therefore possible to obtain credit without going to the classes and labs. It just may be too difficult, and active participation is very much recommended.

Previous years

You can take a look at the course content from previous semesters. The course will be slightly updated from previous years.