Перейти до вмісту

Про курс і автора

Курс виріс із лекцій, які я читав студентам освітньої програми «Інтернет речей» у Національному університеті «Львівська політехніка». Аудиторний варіант складався з десяти лекцій, і в нього були свої вади, помітні лише зсередини.

Найпомітніша — перекіс. Понад сорок відсотків матеріалу припадало на управління пам’яттю, причому з відчутними повторами: віртуальна пам’ять пояснювалася двічі, свопінг двічі, фрагментація двічі. Натомість вводу-виводу, дискам, файловим системам і безпеці не діставалося жодної повної лекції. Завантаження описувалося через BIOS і MBR, хоча студенти щодня мають справу з UEFI. Контейнерам був присвячений один слайд.

Тому це не конспект лекцій, викладений у мережу. Матеріал перебудований: вісімнадцять модулів у шести частинах, окремі модулі про підсистему вводу-виводу, диски, файлові системи, захист і віртуалізацію, а розділ про пам’ять стиснуто з чотирьох лекцій до трьох модулів без утрат.

Що змінилося, крім структури

Section titled “Що змінилося, крім структури”

Кожен модуль спирається на залізо. Абстракція подається разом з апаратним обмеженням, заради якого її придумали. Спершу MMU, потім віртуальна пам’ять; спершу переривання від таймера, потім планувальник.

Усе перевіряється на власній машині. У кожному модулі є розділ «як це насправді в Linux» — команди, які студент запускає в себе й бачить справжній вивід. Усі вони прогнані на живих системах, а не написані з голови.

Практики стало більше. Тринадцять лабораторних у двох напрямах: системне програмування на C і адміністрування Linux. Вісім із них мають автоперевірку, яку я перевіряв не лише еталонним розв’язком, а й навмисно зіпсованим — інакше перевірка нічого не варта.

Мене звати Михайло Веселовський. В ІТ я понад двадцять років, з них близько одинадцяти — у технічній підтримці всіх трьох ліній. Працював системним адміністратором, інженером підтримки, QA-інженером і технічним письменником, близько семи років — тимлідом і техлідом. Зараз керую підтримкою в PLVision.

До того були EPAM Systems, Sentia у Данії, Cohaesio, OnApp, VPS.NET і Parallels — здебільшого експлуатація: Linux-сервери, мережа, резервне копіювання, чергування й розбір чужих інцидентів. Паралельно веду BSBR.team, невелику компанію, яка робить DevOps для стартапів.

Це багато що пояснює в самому курсі. Питання «чому воно повільне» і «чому воно впало» тут не вправа наприкінці розділу — це те, чим я займався щодня роками. Звідси й вимога підтверджувати кожне твердження командою на власній машині: у підтримці слово без доказу не варте нічого.

У Львівській політехніці я свого часу закінчив бакалаврат з комп’ютерної інженерії та магістратуру з комп’ютерних мереж і систем, а в 2022–2023 навчальному році читав там лекції студентам «Інтернету речей». Саме з тих лекцій цей курс і виріс.

Тексти курсу поширюються за ліцензією CC BY-SA 4.0, код лабораторних робіт — за MIT. Тобто матеріал можна брати й використовувати у своєму викладанні, зокрема й змінений, за умови посилання на джерело.

Якщо ви берете цей курс за основу для власного, мені буде цікаво про це почути.

  • Easy Tech Blog — легке пояснення складних технічних речей; цей курс живе на його піддомені
  • michael.veselovski.co.uk — нотатки про домашню інфраструктуру й самохостинг
  • LinkedIn

Помилку в матеріалі, неточність у команді чи незрозуміле місце повідомляйте не соромлячись: курс від цього тільки виграє. Кілька фактичних помилок у ньому знайшлися саме тоді, коли я перевіряв власні твердження на реальних системах, і я не думаю, що знайшлися всі.