Semester: winter 2020/21
Lectures: Wednesday, 15:40 - 17:10, S4 Distant Learning (Vojtěch Aschenbrenner)
Labs:
  Thursday, 12:20 - 13:50, SU1 Distant Learning (Vojtěch Aschenbrenner)
  Thursday, 14:00 - 15:30, SU1 Distant Learning (Vojtěch Aschenbrenner)
  Monday, 12:20 - 13:50, SU2 Distant Learning (Vojtěch Aschenbrenner)
Page in SIS: NSWI106
Grading: Graded credit
Mailing list: nswi106@d3s.mff.cuni.cz | Registration | Archive

Distant Learning

This course will be completely tought in distant learning mode. The official schedule of the course will not be followed and you will organize the time schedule on your own. This means you can enroll this course even if it collides with other courses.

News

  • There is Agenda page with all the information about work during this semester.
  • There is Philosophy page describing this course philosophy.
  • Please register to the mailing list. It will be the primary communication channel. If you enrolled to the course later, please check the archive.

About

In the Introduction to Linux course you learned the absolute essentials for becoming a modern programmer. In this course you will learn topics, where Linux is the most advanced operating system in the world and why/where is used by companies like Google, Facebook, Microsoft, Twitter and simply said everyone.

  • Management of running daemons and services (systemd, runit). Logging, repeated tasks, process limiting (cgroups).
  • Block layer (device-mapper, md-raid, drbd, b-cache). You can do really exciting things with Linux Block Layer, e.g. encryption, caching or translational layers.
  • Advanced Filesystems (btrfs, zfs) with cool features like snapshots, checksums, multi device management, compression etc. Distributed filesystems for exa-byte storage.
  • Powerful networking setup. Firewall in a very broad sense. Servers (DNS, SMTP, IMAP, HTTP, VPN). Routing (BGP). Traffic analysis and monitoring.
  • Virtualization. Full virtualization with QEMU/KVM and containers with Docker/Podman, LXC or systemd-nspawn.
  • Automation with Ansible, Vagrant etc.
  • Powerful tools for debugging almost anything.
  • Advanced usage of BASH for scripting and system automation. Tips for powerful usage of shell.
  • And more, depending on the students' demands and interests.

What to expect from the class

  • We DO NOT require any formal prerequisites. Everything can be learned on the fly however expect higher load if you don’t understand operating systems and networking basics.
  • We DO expect willingness to learn from the beginning of the semester till its end.
  • This course is very time consuming, you will need 2-4 hours every week of your off-school time. On the other side there is no exam, so you will have 6 credits for work during the semester.
  • You will gain practical experience which you will use during your whole professional career. You will boost rapidly your chance for being accepted for a high rated internship or full-time work at top company. A lot of interview questions are from Linux administration topics.
  • There will be mandatory before class preparation before every lecture. You will have to read a paper and/or technology tutorial every week. Understanding is essential.
  • Lectures will be highly interactive. It will be a discussion and brain storming on materials you read. Instead of lectures you will form a study groups and study particular topic together.
  • Labs will be about practical hands-on experience of given topic.

Grading

In total you can get 100 points. Your grade will be computed as following:

  • 91-100 points – excellent (1)
  • 76-90 points – very good (2)
  • 60-75 points – good (3)

Previous year

You can take a look at the course content from winter semester 2019/20. The content will be slightly changed.