About the course and the author
Where it came from
Section titled “Where it came from”The course grew out of lectures I gave to students of the Internet of Things degree program at Lviv Polytechnic National University. The classroom version consisted of ten lectures, and it had flaws that were only visible from the inside.
The most visible flaw was imbalance. More than forty percent of the material was about memory management, with noticeable repetition: virtual memory was explained twice, swapping twice, fragmentation twice. Meanwhile I/O, disks, file systems and security did not get a single full lecture. Booting was described through BIOS and MBR, even though students deal with UEFI every day. Containers got one slide.
That is why I never put the lecture notes online. The material has been rebuilt: eighteen modules in six parts, separate modules on the I/O subsystem, disks, file systems, protection and virtualization, and the memory section compressed from four lectures to three modules with nothing lost.
What changed besides the structure
Section titled “What changed besides the structure”Every module rests on the hardware. An abstraction is presented together with the hardware constraint it was invented for. First the MMU, then virtual memory; first the timer interrupt, then the scheduler.
Everything can be checked on your own machine. Every module has a “how it actually works in Linux” section with commands the student runs locally and sees real output. All of them have been run on live systems.
There is more practice. Thirteen labs in two tracks: systems programming in C and Linux administration. Eight of them have automated checks, which I tested not only against a reference solution but also against a deliberately broken one, because otherwise the check is worthless.
The author
Section titled “The author”My name is Michael Veselovski. I have been in IT for over twenty years, about eleven of them in technical support across all three tiers. I have worked as a system administrator, support engineer, QA engineer and technical writer, and for about seven years as a team lead and tech lead. Today I run support at PLVision.
Before that came EPAM Systems, Sentia in Denmark, Cohaesio, OnApp, VPS.NET and Parallels, mostly operations: Linux servers, networking, backups, on-call duty and digging into other people’s incidents. On the side I run BSBR.team, a small company that does DevOps for startups.
This explains a lot about the course itself. “Why is it slow” and “why did it crash” were questions I dealt with every day for years, so here they are more than an exercise at the end of a chapter. It is also where the requirement to back every claim with a command on your own machine comes from, as is customary in support.
At Lviv Polytechnic I earned a bachelor’s degree in computer engineering and a master’s in computer networks and systems, and in the 2022–2023 academic year I lectured there to Internet of Things students.
Terms of use
Section titled “Terms of use”The course texts are distributed under the CC BY-SA 4.0 license, and the lab code under the MIT license. That means you can take the material and use it in your own teaching, including in modified form, as long as you credit the source.
If you use this course as the basis for your own, I would be interested to hear about it.
How to contact me
Section titled “How to contact me”- Easy Tech Blog — plain explanations of complex technical things; this course lives on its subdomain
- michael.veselovski.co.uk — notes on home infrastructure and self-hosting
If you find a mistake in the material, an inaccuracy in a command or a passage that is hard to follow, please report it: the course only gets better for it. Several factual errors turned up in it when I checked my own claims on real systems, and I do not think all of them have been found.