СИСТЕМНЕ ПРОГРАМУВАННЯ

[ВТФК · 123 Комп'ютерна інженерія]
● ONLINE  |  VTFK · OK23 · 4 курс, 7 семестр  |  █
{' МАТЕРІАЛИ ДИСЦИПЛІНИ '}

Три межі між програмою і машиною: контейнер · перевірка запозичень Rust · лінійна памʼять WebAssembly.
Почни з Лекції 0 і Лабораторної 0 — вони відкриті завжди. Як потрапити в курс, де взяти робоче місце і що вважається зданою роботою — Як здавати роботи.

Модуль 1 · Ізоляція процесів: межа середовища виконання Л1 → ЛР1 → Л2 → ЛР2 → Л3 → ЛР3
00
Лекція 0 · вступ
ВСТУП ДО ДИСЦИПЛІНИ: ПРОГРАМА, ОРГАНІЗАЦІЯ РОБОТИ, ОЦІНЮВАННЯ
Як влаштований семестр: три межі між програмою й машиною, три рівні робіт і з чого складається оцінка.
▶ СЛАЙДИ + КОНСПЕКТВІДКРИТО→
00
Лабораторна 0 · вступ
Вступ: як влаштований курс, робоче середовище в Docker і здача робіт
Як влаштований курс, три рівні, робоче середовище й порядок здачі. Не оцінюється, відкрито весь семестр.
⟷ сюжет: «Перше ввімкнення»
2 ВЕРСІЇВІДКРИТО→
01
Лекція 1
ТРИ МЕЖІ КУРСУ: ПРОЦЕС, АДРЕСНИЙ ПРОСТІР, СИСТЕМНІ ВИКЛИКИ
Процес — це межа між програмою і машиною. Курс перетинає її тричі: Docker, Rust, WebAssembly.
▶ СЛАЙДИ + КОНСПЕКТ→
01
Лабораторна 1
Контейнер розробника: перша капсула
Підняти контейнер і побачити ізоляцію в числах: усередині PID 1, зовні — чотиризначний.
⟷ сюжет: «Ізоляційна Капсула»
2 ВЕРСІЇ→
02
Лекція 2
ОБРАЗ ЯК ШАРИ, DOCKERFILE, КЕШ, БАГАТОЕТАПНА ЗБІРКА
Образ — це не файл, а стек незмінних шарів. Dockerfile — рецепт, де кожен рядок додає свій шар.
▶ СЛАЙДИ + КОНСПЕКТ→
02
Лабораторна 2
Dockerfile з багатоетапною збіркою і порівнянням розмірів
Впорядкувати Dockerfile під кеш шарів і дійти від «танка» до мінімального образу.
⟷ сюжет: «Кібер-Дієта»
2 ВЕРСІЇ→
03
Лекція 3
ПРОСТОРИ ІМЕН, ГРУПИ КЕРУВАННЯ (CGROUPS), ПРИВІЛЕЇ
Контейнер — не окрема ОС, а звичайний процес: ядро підмінило йому видимість і обмежило апетит.
▶ СЛАЙДИ + КОНСПЕКТ→
03
Лабораторна 3
Простори імен на практиці: два контейнери в ізольованій мережі
Два контейнери у власній мережі, спільний том — і секрет, який не лишає сліду.
⟷ сюжет: «Сліпий Канал»
2 ВЕРСІЇ→
Модуль 2 · Керування пам'яттю: межа безпеки Л4 → ЛР4 → Л5 → ЛР5 → Л6 → ЛР6 → Л7 → ЛР7
04
Лекція 4
ЧОМУ ПРОГРАМИ ПСУЮТЬ ПАМ'ЯТЬ
Помилка керування пам'яттю коштує дорожче, ніж усі перевірки, які її не допускають.
▶ СЛАЙДИ + КОНСПЕКТ→
04
Лабораторна 4
Перший проєкт на Cargo з юніт-тестом
Перший проєкт на Cargo: структура, зовнішній crate і юніт-тест із підміною даних.
⟷ сюжет: «Кування Відмички»
2 ВЕРСІЇ→
05
Лекція 5
ВОЛОДІННЯ І ЗАПОЗИЧЕННЯ
У кожного значення рівно один власник, а позичити його — це скористатися, не забираючи собі.
▶ СЛАЙДИ + КОНСПЕКТ→
05
Лабораторна 5
Набір програм, що не компілюються (borrow checker)
Прочитати, що компілятор каже про володіння, і виправити мінімальною зміною.
⟷ сюжет: «Мертвий Лог»
2 ВЕРСІЇ→
06
Лекція 6
ЗРІЗИ, ЧАСИ ЖИТТЯ І ТИПИ БЕЗ NULL
Зріз — це вікно в чужі дані без володіння, а Option — чесно сказано, що значення може не бути.
▶ СЛАЙДИ + КОНСПЕКТ→
06
Лабораторна 6
Структури і перелічення без null
Змоделювати стани через struct і enum так, щоб некоректний був неможливий.
⟷ сюжет: «Архітектура Ворога»
2 ВЕРСІЇ→
07
Лекція 7
RESULT, ? І ВЛАСНІ ТИПИ ПОМИЛОК
Помилка — це значення, яке компілятор змусить обробити, а не виняток, що летить крізь стек.
▶ СЛАЙДИ + КОНСПЕКТ→
07
Лабораторна 7
Читання файлу з обробкою помилок
Прочитати файл із повною обробкою помилок — без жодної паніки.
⟷ сюжет: «Мінне Поле»
2 ВЕРСІЇ→
Модуль 3 · WebAssembly і асемблер: межа набору інструкцій Л8 → ЛР8 → Л9 → ЛР9 → Л10 → ЛР10
08
Лекція 8
WEBASSEMBLY ЯК ПЕРЕНОСНИЙ АСЕМБЛЕР
WebAssembly — набір інструкцій вигаданої машини, однакової в кожному браузері. Межу видно наживо.
▶ СЛАЙДИ + КОНСПЕКТ→
08
Лабораторна 8
Модуль на WAT вручну
Написати модуль WebAssembly руками, без компілятора, і запустити його в браузері.
⟷ сюжет: «Пряма Ін'єкція»
2 ВЕРСІЇ→
09
Лекція 9
АСЕМБЛЕР x86-64
Асемблер — не складність заради складності, а пряме відображення того, що вміє процесор.
▶ СЛАЙДИ + КОНСПЕКТ→
09
Лабораторна 9
Той самий алгоритм у двох асемблерах
Один алгоритм у x86-64 і WASM — і чесне порівняння в числах.
⟷ сюжет: «Розтин Системи»
2 ВЕРСІЇ→
10
Лекція 10
RUST У WASM, МЕЖА З HOST-СЕРЕДОВИЩЕМ
Останню межу перетинає не рука, що пише .wat, а компілятор: Rust у WASM і міст до JavaScript.
▶ СЛАЙДИ + КОНСПЕКТ→
10
Лабораторна 10
Ядро на Rust у WASM на сторінці з відтворюваною збіркою
Rust у WebAssembly на живій сторінці, зі збіркою, яку можна повторити.
⟷ сюжет: «Звільнення»
2 ВЕРСІЇ→
{' ДОВІДКА ТА ДОДАТКОВІ МАТЕРІАЛИ '}

Робоча програма, силабус, план матеріалів, індекс СРС і сітка ачівок.

Почни звідси
Як здавати роботи
запрошення, свій репозиторій, Codespaces і здача тегом — чотири кроки на початку семестру
⟷ є сюжетна версія
СТАРТ→
Довідка
Робоча програма
90 год · 3 кред · залік
ДОК→
Довідка
Силабус
оцінювання, 3 рівні, дедлайни
ДОК→
Самостійна
СРС — 20 тем ×2
до кожної лекції дві теми: підготовка до захисту та розширення ЛР
СРС→
Методика
План матеріалів
структура курсу, теми, погодинний розподіл
ПЛАН→
Довідник
Коли щось пішло не так
усі помилки з десяти місій в одному місці, з пошуком
🆘 SOS→
Гейміфікація
Сітка ачівок
20 нагород: місії, модулі, особливі
★ АЧІВКИ→
Ординський Олександр
викладач · Software Developer & Educator
ВТФК • Вінниця, Україна

© 2026 ВТФК · Системне програмування · СИСТЕМА АКТИВНА